From 783f0a3125ad9500ff55e6e352dca4da7e8f8c7b Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期日, 19 六月 2022 10:41:57 +0800
Subject: [PATCH] 优化广告调整为cmd 模式

---
 service-common/src/main/java/com/java110/common/cmd/advert/SaveAdvertCmd.java |  118 ++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 72 insertions(+), 46 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/listener/advert/SaveAdvertListener.java b/service-common/src/main/java/com/java110/common/cmd/advert/SaveAdvertCmd.java
old mode 100755
new mode 100644
similarity index 62%
rename from service-api/src/main/java/com/java110/api/listener/advert/SaveAdvertListener.java
rename to service-common/src/main/java/com/java110/common/cmd/advert/SaveAdvertCmd.java
index 76fcf71..63a7872
--- a/service-api/src/main/java/com/java110/api/listener/advert/SaveAdvertListener.java
+++ b/service-common/src/main/java/com/java110/common/cmd/advert/SaveAdvertCmd.java
@@ -1,34 +1,65 @@
-package com.java110.api.listener.advert;
+/*
+ * Copyright 2017-2020 鍚村鏂� and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.common.cmd.advert;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.file.FileDto;
+import com.java110.intf.common.IAdvertItemV1InnerServiceSMO;
+import com.java110.intf.common.IAdvertV1InnerServiceSMO;
 import com.java110.intf.common.IFileInnerServiceSMO;
 import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.po.advert.AdvertItemPo;
 import com.java110.po.advert.AdvertPo;
 import com.java110.po.file.FileRelPo;
 import com.java110.utils.constant.BusinessTypeConstant;
-import com.java110.utils.constant.ServiceCodeAdvertConstant;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
 
 import java.util.Date;
 
 /**
- * 淇濆瓨灏忓尯渚﹀惉
- * add by wuxw 2019-06-30
+ * 绫昏〃杩帮細淇濆瓨
+ * 鏈嶅姟缂栫爜锛歛dvert.saveAdvert
+ * 璇锋眰璺姴锛�/app/advert.SaveAdvert
+ * add by 鍚村鏂� at 2022-06-19 10:07:43 mail: 928255095@qq.com
+ * open source address: https://gitee.com/wuxw7/MicroCommunity
+ * 瀹樼綉锛歨ttp://www.homecommunity.cn
+ * 娓╅Θ鎻愮ず锛氬鏋滄偍瀵规鏂囦欢杩涜淇敼 璇蜂笉瑕佸垹闄ゅ師鏈変綔鑰呭強娉ㄩ噴淇℃伅锛岃琛ュ厖鎮ㄧ殑 淇敼鐨勫師鍥犱互鍙婅仈绯婚偖绠卞涓�
+ * // modify by 寮犱笁 at 2021-09-12 绗�10琛屽湪鏌愮鍦烘櫙涓嬪瓨鍦ㄦ煇绉峛ug 闇�瑕佷慨澶嶏紝娉ㄩ噴10鑷�20琛� 鍔犲叆 20琛岃嚦30琛�
  */
-@Java110Listener("saveAdvertListener")
-public class SaveAdvertListener extends AbstractServiceApiPlusListener {
+@Java110Cmd(serviceCode = "advert.saveAdvert")
+public class SaveAdvertCmd extends Cmd {
+
+    private static Logger logger = LoggerFactory.getLogger(SaveAdvertCmd.class);
+
+    public static final String CODE_PREFIX_ID = "10";
 
     @Autowired
     private IFileInnerServiceSMO fileInnerServiceSMOImpl;
@@ -36,8 +67,14 @@
     @Autowired
     private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
 
+    @Autowired
+    private IAdvertV1InnerServiceSMO advertV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IAdvertItemV1InnerServiceSMO advertItemV1InnerServiceSMOImpl;
+
     @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
         Assert.hasKeyAndValue(reqJson, "adName", "蹇呭~锛岃濉啓骞垮憡鍚嶇О");
         Assert.hasKeyAndValue(reqJson, "adTypeCd", "蹇呭~锛岃閫夋嫨骞垮憡绫诲瀷");
@@ -52,6 +89,7 @@
         if (!hasKeyAndValue(reqJson, "photos") && !hasKeyAndValue(reqJson, "vedioName")) {
             throw new IllegalArgumentException("璇锋眰鎶ユ枃涓病鏈夊寘鍚棰戞垨鍥剧墖");
         }
+
     }
 
     private boolean hasKeyAndValue(JSONObject paramIn, String key) {
@@ -64,28 +102,34 @@
         return true;
     }
 
+
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+
         String advertId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_advertId);
         reqJson.put("advertId", advertId);
         reqJson.put("state", "1000");
         reqJson.put("createTime", new Date());
         reqJson.put("communityId", "9999");
         AdvertPo advertPo = BeanConvertUtil.covertBean(reqJson, AdvertPo.class);
-        super.insert(context, advertPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ADVERT);
+        int flag = advertV1InnerServiceSMOImpl.saveAdvert(advertPo);
+        if(flag < 1){
+            throw new CmdException("淇濆瓨澶辫触");
+        }
         if (hasKeyAndValue(reqJson, "photos") && reqJson.getJSONArray("photos").size() > 0) {
             JSONArray photos = reqJson.getJSONArray("photos");
             for (int _photoIndex = 0; _photoIndex < photos.size(); _photoIndex++) {
-                addAdvertItemPhoto(reqJson, context, photos.getString(_photoIndex));
-                addAdvertFileRel(reqJson, context, "40000");
+                addAdvertItemPhoto(reqJson, cmdDataFlowContext, photos.getString(_photoIndex));
+                addAdvertFileRel(reqJson, cmdDataFlowContext, "40000");
             }
         } else {
-            addAdvertItemVedio(reqJson, context);
-            addAdvertFileRel(reqJson, context, "50000");
+            addAdvertItemVedio(reqJson, cmdDataFlowContext);
+            addAdvertFileRel(reqJson, cmdDataFlowContext, "50000");
         }
     }
 
-    public void addAdvertItemPhoto(JSONObject paramInJson, DataFlowContext dataFlowContext, String photo) {
+    public void addAdvertItemPhoto(JSONObject paramInJson, ICmdDataFlowContext dataFlowContext, String photo) {
         String itemTypeCd = "";
         String url = "";
         FileDto fileDto = new FileDto();
@@ -106,7 +150,10 @@
         advertItemPo.setItemTypeCd(itemTypeCd);
         advertItemPo.setUrl(fileName);
         advertItemPo.setSeq("1");
-        super.insert(dataFlowContext, advertItemPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ADVERT_ITEM);
+        int flag = advertItemV1InnerServiceSMOImpl.saveAdvertItem(advertItemPo);
+        if(flag < 1){
+            throw new CmdException("淇濆瓨骞垮憡澶辫触");
+        }
     }
 
 
@@ -117,7 +164,7 @@
      * @param dataFlowContext 鏁版嵁涓婁笅鏂�
      * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
      */
-    public void addAdvertFileRel(JSONObject paramInJson, DataFlowContext dataFlowContext, String relTypeCd) {
+    public void addAdvertFileRel(JSONObject paramInJson, ICmdDataFlowContext dataFlowContext, String relTypeCd) {
         FileRelPo fileRelPo = new FileRelPo();
         fileRelPo.setRelTypeCd(relTypeCd);
         fileRelPo.setSaveWay("40000".equals(relTypeCd) ? "table" : "ftp");
@@ -125,7 +172,10 @@
         fileRelPo.setObjId(paramInJson.getString("advertId"));
         fileRelPo.setFileRealName(paramInJson.getString("vedioName"));
         fileRelPo.setFileSaveName(paramInJson.getString("vedioName"));
-        super.insert(dataFlowContext, fileRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
+        int flag = fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
+        if(flag < 1){
+            throw new CmdException("淇濆瓨骞垮憡澶辫触");
+        }
     }
 
 
@@ -136,7 +186,7 @@
      * @param dataFlowContext 鏁版嵁涓婁笅鏂�
      * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
      */
-    public void addAdvertItemVedio(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+    public void addAdvertItemVedio(JSONObject paramInJson, ICmdDataFlowContext dataFlowContext) {
         FileRelPo fileRelPo = new FileRelPo();
         fileRelPo.setFileRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_fileRelId));
         fileRelPo.setObjId(paramInJson.getString("advertId"));
@@ -158,29 +208,5 @@
         advertItemPo.setUrl(url);
         advertItemPo.setSeq("1");
         super.insert(dataFlowContext, advertItemPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ADVERT_ITEM);*/
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeAdvertConstant.ADD_ADVERT;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-
-    public IFileInnerServiceSMO getFileInnerServiceSMOImpl() {
-        return fileInnerServiceSMOImpl;
-    }
-
-    public void setFileInnerServiceSMOImpl(IFileInnerServiceSMO fileInnerServiceSMOImpl) {
-        this.fileInnerServiceSMOImpl = fileInnerServiceSMOImpl;
     }
 }

--
Gitblit v1.8.0