Kaynağa Gözat

优化代码

java110 5 yıl önce
ebeveyn
işleme
ae149af8b9

+ 1 - 1
service-api/src/main/java/com/java110/api/listener/notice/SaveNoticeListener.java

@@ -62,7 +62,7 @@ public class SaveNoticeListener extends AbstractServiceApiPlusListener {
     @Override
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
 
-        if (!reqJson.containsKey("isAll") || StringUtil.isEmpty(reqJson.getString("isAll"))) {
+        if (!reqJson.containsKey("isAll") || StringUtil.isEmpty(reqJson.getString("isAll"))|| "N".equals(reqJson.getString("isAll"))) {
             noticeBMOImpl.addNotice(reqJson, context);
             return;
         }

+ 58 - 31
service-community/src/main/java/com/java110/community/listener/notice/SaveNoticeInfoListener.java

@@ -2,20 +2,21 @@ package com.java110.community.listener.notice;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.po.notice.NoticePo;
-import com.java110.utils.constant.BusinessTypeConstant;
-import com.java110.utils.constant.StatusConstant;
-import com.java110.utils.util.Assert;
 import com.java110.community.dao.INoticeServiceDao;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.entity.center.Business;
+import com.java110.po.notice.NoticePo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.util.Assert;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -26,7 +27,7 @@ import java.util.Map;
  */
 @Java110Listener("saveNoticeInfoListener")
 @Transactional
-public class SaveNoticeInfoListener extends AbstractNoticeBusinessServiceDataFlowListener{
+public class SaveNoticeInfoListener extends AbstractNoticeBusinessServiceDataFlowListener {
 
     private static Logger logger = LoggerFactory.getLogger(SaveNoticeInfoListener.class);
 
@@ -45,29 +46,30 @@ public class SaveNoticeInfoListener extends AbstractNoticeBusinessServiceDataFlo
 
     /**
      * 保存通知信息 business 表中
+     *
      * @param dataFlowContext 数据对象
-     * @param business 当前业务对象
+     * @param business        当前业务对象
      */
     @Override
     protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
         JSONObject data = business.getDatas();
-        Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
+        Assert.notEmpty(data, "没有datas 节点,或没有子节点需要处理");
 
         //处理 businessNotice 节点
-        if(data.containsKey(NoticePo.class.getSimpleName())){
+        if (data.containsKey(NoticePo.class.getSimpleName())) {
             Object bObj = data.get(NoticePo.class.getSimpleName());
             JSONArray businessNotices = null;
-            if(bObj instanceof JSONObject){
+            if (bObj instanceof JSONObject) {
                 businessNotices = new JSONArray();
                 businessNotices.add(bObj);
-            }else {
-                businessNotices = (JSONArray)bObj;
+            } else {
+                businessNotices = (JSONArray) bObj;
             }
             //JSONObject businessNotice = data.getJSONObject("businessNotice");
-            for (int bNoticeIndex = 0; bNoticeIndex < businessNotices.size();bNoticeIndex++) {
+            for (int bNoticeIndex = 0; bNoticeIndex < businessNotices.size(); bNoticeIndex++) {
                 JSONObject businessNotice = businessNotices.getJSONObject(bNoticeIndex);
                 doBusinessNotice(business, businessNotice);
-                if(bObj instanceof JSONObject) {
+                if (bObj instanceof JSONObject) {
                     dataFlowContext.addParamOut("noticeId", businessNotice.getString("noticeId"));
                 }
             }
@@ -76,23 +78,46 @@ public class SaveNoticeInfoListener extends AbstractNoticeBusinessServiceDataFlo
 
     /**
      * business 数据转移到 instance
+     *
      * @param dataFlowContext 数据对象
-     * @param business 当前业务对象
+     * @param business        当前业务对象
      */
     @Override
     protected void doBusinessToInstance(DataFlowContext dataFlowContext, Business business) {
         JSONObject data = business.getDatas();
 
         Map info = new HashMap();
-        info.put("bId",business.getbId());
-        info.put("operate",StatusConstant.OPERATE_ADD);
+        info.put("bId", business.getbId());
+        info.put("operate", StatusConstant.OPERATE_ADD);
 
         //通知信息
         List<Map> businessNoticeInfo = noticeServiceDaoImpl.getBusinessNoticeInfo(info);
-        if( businessNoticeInfo != null && businessNoticeInfo.size() >0) {
+
+        //判断是否夸分片处理数据
+        if (businessNoticeInfo != null && businessNoticeInfo.size() > 1) {
+            Map<String, List<Map>> maps = new HashMap<>();
+            for (Map businessNotice : businessNoticeInfo) {
+                if (maps.containsKey(businessNotice.get("communityId"))) {
+                    List<Map> businessNoticeInfos = maps.get(businessNotice.get("communityId"));
+                    businessNoticeInfos.add(businessNotice);
+                    maps.put(businessNotice.get("communityId").toString(), businessNoticeInfos);
+                } else {
+                    List<Map> businessNoticeInfos = new ArrayList<>();
+                    businessNoticeInfos.add(businessNotice);
+                    maps.put(businessNotice.get("communityId").toString(), businessNoticeInfos);
+                }
+            }
+
+            for (String key : maps.keySet()) {
+                reFreshShareColumn(info, maps.get(key).get(0));
+                noticeServiceDaoImpl.saveNoticeInfoInstance(info);
+            }
+            return;
+        }
+        if (businessNoticeInfo != null && businessNoticeInfo.size() > 0) {
             reFreshShareColumn(info, businessNoticeInfo.get(0));
             noticeServiceDaoImpl.saveNoticeInfoInstance(info);
-            if(businessNoticeInfo.size() == 1) {
+            if (businessNoticeInfo.size() == 1) {
                 dataFlowContext.addParamOut("noticeId", businessNoticeInfo.get(0).get("notice_id"));
             }
         }
@@ -117,49 +142,51 @@ public class SaveNoticeInfoListener extends AbstractNoticeBusinessServiceDataFlo
 
         info.put("communityId", businessInfo.get("community_id"));
     }
+
     /**
      * 撤单
+     *
      * @param dataFlowContext 数据对象
-     * @param business 当前业务对象
+     * @param business        当前业务对象
      */
     @Override
     protected void doRecover(DataFlowContext dataFlowContext, Business business) {
         String bId = business.getbId();
         //Assert.hasLength(bId,"请求报文中没有包含 bId");
         Map info = new HashMap();
-        info.put("bId",bId);
-        info.put("statusCd",StatusConstant.STATUS_CD_VALID);
+        info.put("bId", bId);
+        info.put("statusCd", StatusConstant.STATUS_CD_VALID);
         Map paramIn = new HashMap();
-        paramIn.put("bId",bId);
-        paramIn.put("statusCd",StatusConstant.STATUS_CD_INVALID);
+        paramIn.put("bId", bId);
+        paramIn.put("statusCd", StatusConstant.STATUS_CD_INVALID);
         //通知信息
         List<Map> noticeInfo = noticeServiceDaoImpl.getNoticeInfo(info);
-        if(noticeInfo != null && noticeInfo.size() > 0){
+        if (noticeInfo != null && noticeInfo.size() > 0) {
             reFreshShareColumn(paramIn, noticeInfo.get(0));
             noticeServiceDaoImpl.updateNoticeInfoInstance(paramIn);
         }
     }
 
 
-
     /**
      * 处理 businessNotice 节点
-     * @param business 总的数据节点
+     *
+     * @param business       总的数据节点
      * @param businessNotice 通知节点
      */
-    private void doBusinessNotice(Business business,JSONObject businessNotice){
+    private void doBusinessNotice(Business business, JSONObject businessNotice) {
 
-        Assert.jsonObjectHaveKey(businessNotice,"noticeId","businessNotice 节点下没有包含 noticeId 节点");
+        Assert.jsonObjectHaveKey(businessNotice, "noticeId", "businessNotice 节点下没有包含 noticeId 节点");
 
-        if(businessNotice.getString("noticeId").startsWith("-")){
+        if (businessNotice.getString("noticeId").startsWith("-")) {
             //刷新缓存
             //flushNoticeId(business.getDatas());
 
-            businessNotice.put("noticeId",GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_noticeId));
+            businessNotice.put("noticeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_noticeId));
 
         }
 
-        businessNotice.put("bId",business.getbId());
+        businessNotice.put("bId", business.getbId());
         businessNotice.put("operate", StatusConstant.OPERATE_ADD);
         //保存通知信息
         noticeServiceDaoImpl.saveBusinessNoticeInfo(businessNotice);