Просмотр исходного кода

未审核,审核失败得小区新增删除接口

曾成 лет назад: 6
Родитель
Сommit
1d94960292

+ 11 - 2
Api/src/main/java/com/java110/api/listener/community/DeleteCommunityListener.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.community.ICommunityBMO;
 import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.dto.community.CommunityDto;
 import com.java110.utils.constant.*;
 import com.java110.utils.exception.ListenerExecuteException;
 import com.java110.utils.util.Assert;
@@ -47,10 +48,18 @@ public class DeleteCommunityListener extends AbstractServiceApiListener {
         JSONArray businesses = new JSONArray();
 
         AppService service = event.getAppService();
-
+        CommunityDto communityDto = new CommunityDto();
+        communityDto.setCommunityId((String)reqJson.get("communityId"));
+        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
+        if(communityDtos.size() == 0 || communityDtos == null){
+            throw new IllegalArgumentException("没有查询到communityId为:"+communityDto.getCommunityId()+"小区信息");
+        }
+        if("1100".equals(communityDtos.get(0).getState())){
+            throw new IllegalArgumentException("删除失败,该小区已审核通过");
+        }
         //添加单元信息
         businesses.add(communityBMOImpl.deleteCommunity(reqJson, context));
-        businesses.addAll(communityBMOImpl.exitCommunityMember(reqJson));
+        //businesses.addAll(communityBMOImpl.exitCommunityMember(reqJson));
 
 
         ResponseEntity<String> responseEntity = communityBMOImpl.callService(context, service.getServiceCode(), businesses);

+ 11 - 12
Api/src/main/java/com/java110/api/listener/community/ListCommunitysListener.java

@@ -104,19 +104,18 @@ public class ListCommunitysListener extends AbstractServiceApiListener {
         for (ApiCommunityDataVo communityDataVo : communitys) {
             areaCodes.add(communityDataVo.getCityCode());
         }
-
-        AreaDto areaDto = new AreaDto();
-        areaDto.setAreaCodes(areaCodes.toArray(new String[areaCodes.size()]));
-
-        List<AreaDto> areaDtos = areaInnerServiceSMOImpl.getProvCityArea(areaDto);
-
-        for (ApiCommunityDataVo communityDataVo : communitys) {
-            for (AreaDto tmpAreaDto : areaDtos) {
-                if (communityDataVo.getCityCode().equals(tmpAreaDto.getAreaCode())) {
-                    communityDataVo.setCityName(tmpAreaDto.getProvName() + tmpAreaDto.getCityName() + tmpAreaDto.getAreaName());
-                    continue;
+        if(areaCodes.size() > 0){
+            AreaDto areaDto = new AreaDto();
+            areaDto.setAreaCodes(areaCodes.toArray(new String[areaCodes.size()]));
+            List<AreaDto> areaDtos = areaInnerServiceSMOImpl.getProvCityArea(areaDto);
+            for (ApiCommunityDataVo communityDataVo : communitys) {
+                for (AreaDto tmpAreaDto : areaDtos) {
+                    if (communityDataVo.getCityCode().equals(tmpAreaDto.getAreaCode())) {
+                        communityDataVo.setCityName(tmpAreaDto.getProvName() + tmpAreaDto.getCityName() + tmpAreaDto.getAreaName());
+                        continue;
+                    }
+                    communityDataVo.setCityName("未知");
                 }
-                communityDataVo.setCityName("未知");
             }
         }
     }

+ 179 - 0
CommunityService/src/main/java/com/java110/community/listener/community/DeleteCommunityInfoListener.java

@@ -0,0 +1,179 @@
+package com.java110.community.listener.community;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.community.listener.AbstractCommunityBusinessServiceDataFlowListener;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.exception.ListenerExecuteException;
+import com.java110.utils.util.Assert;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.entity.center.Business;
+import com.java110.community.dao.ICommunityServiceDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 删除小区信息 侦听
+ * <p>
+ * 处理节点
+ * 1、businessCommunity:{} 小区基本信息节点
+ * 2、businessCommunityAttr:[{}] 小区属性信息节点
+ * 3、businessCommunityPhoto:[{}] 小区照片信息节点
+ * 4、businessCommunityCerdentials:[{}] 小区证件信息节点
+ * 协议地址 :https://github.com/java110/MicroCommunity/wiki/%E5%88%A0%E9%99%A4%E5%95%86%E6%88%B7%E4%BF%A1%E6%81%AF-%E5%8D%8F%E8%AE%AE
+ * Created by wuxw on 2018/5/18.
+ */
+@Java110Listener("deleteCommunityInfoListener")
+@Transactional
+public class DeleteCommunityInfoListener extends AbstractCommunityBusinessServiceDataFlowListener {
+
+    private final static Logger logger = LoggerFactory.getLogger(DeleteCommunityInfoListener.class);
+    @Autowired
+    ICommunityServiceDao communityServiceDaoImpl;
+
+    @Override
+    public int getOrder() {
+        return 3;
+    }
+
+    @Override
+    public String getBusinessTypeCd() {
+        return BusinessTypeConstant.BUSINESS_TYPE_DELETE_COMMUNITY_INFO;
+    }
+
+    /**
+     * 根据删除信息 查出Instance表中数据 保存至business表 (状态写DEL) 方便撤单时直接更新回去
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
+        JSONObject data = business.getDatas();
+
+        Assert.notEmpty(data, "没有datas 节点,或没有子节点需要处理");
+
+        //处理 businessCommunity 节点
+        if (data.containsKey("businessCommunity")) {
+            //处理 businessCommunity 节点
+            if (data.containsKey("businessCommunity")) {
+                Object _obj = data.get("businessCommunity");
+                JSONArray businessCommunitys = null;
+                if (_obj instanceof JSONObject) {
+                    businessCommunitys = new JSONArray();
+                    businessCommunitys.add(_obj);
+                } else {
+                    businessCommunitys = (JSONArray) _obj;
+                }
+                //JSONObject businessCommunity = data.getJSONObject("businessCommunity");
+                for (int _communityIndex = 0; _communityIndex < businessCommunitys.size(); _communityIndex++) {
+                    JSONObject businessCommunity = businessCommunitys.getJSONObject(_communityIndex);
+                    doBusinessCommunity(business, businessCommunity);
+                    if (_obj instanceof JSONObject) {
+                        dataFlowContext.addParamOut("communityId", businessCommunity.getString("communityId"));
+                    }
+                }
+            }
+        }
+
+
+    }
+
+    /**
+     * 删除 instance数据
+     *
+     * @param dataFlowContext 数据对象
+     * @param business        当前业务对象
+     */
+    @Override
+    protected void doBusinessToInstance(DataFlowContext dataFlowContext, Business business) {
+        String bId = business.getbId();
+        //Assert.hasLength(bId,"请求报文中没有包含 bId");
+
+        //小区信息
+        Map info = new HashMap();
+        info.put("bId", business.getbId());
+        info.put("operate", StatusConstant.OPERATE_DEL);
+
+        //小区信息
+        Map businessCommunityInfo = communityServiceDaoImpl.getBusinessCommunityInfo(info);
+        if (businessCommunityInfo != null && businessCommunityInfo.size() > 0) {
+            for (int _communityIndex = 0; _communityIndex < businessCommunityInfo.size(); _communityIndex++) {
+                flushBusinessCommunityInfo(businessCommunityInfo, StatusConstant.STATUS_CD_INVALID);
+                communityServiceDaoImpl.updateCommunityInfoInstance(businessCommunityInfo);
+                dataFlowContext.addParamOut("communityId", businessCommunityInfo.get("community_id"));
+            }
+        }
+
+    }
+
+    /**
+     * 撤单
+     * 从business表中查询到DEL的数据 将instance中的数据更新回来
+     *
+     * @param dataFlowContext 数据对象
+     * @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_INVALID);
+
+        Map delInfo = new HashMap();
+        delInfo.put("bId", business.getbId());
+        delInfo.put("operate", StatusConstant.OPERATE_DEL);
+        //小区信息
+        Map communityInfo = communityServiceDaoImpl.getCommunityInfo(info);
+        if (communityInfo != null && communityInfo.size() > 0) {
+
+            //小区信息
+            Map businessCommunityInfos = communityServiceDaoImpl.getBusinessCommunityInfo(delInfo);
+            //除非程序出错了,这里不会为空
+            if (businessCommunityInfos == null || businessCommunityInfos.size() == 0) {
+                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_INNER_ERROR, "撤单失败(community),程序内部异常,请检查! " + delInfo);
+            }
+            for (int _communityIndex = 0; _communityIndex < businessCommunityInfos.size(); _communityIndex++) {
+                flushBusinessCommunityInfo(businessCommunityInfos, StatusConstant.STATUS_CD_VALID);
+                communityServiceDaoImpl.updateCommunityInfoInstance(businessCommunityInfos);
+            }
+        }
+    }
+
+
+    /**
+     * 处理 businessCommunity 节点
+     *
+     * @param business          总的数据节点
+     * @param businessCommunity 小区节点
+     */
+    private void doBusinessCommunity(Business business, JSONObject businessCommunity) {
+
+        Assert.jsonObjectHaveKey(businessCommunity, "communityId", "businessCommunity 节点下没有包含 communityId 节点");
+
+        if (businessCommunity.getString("communityId").startsWith("-")) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR, "communityId 错误,不能自动生成(必须已经存在的communityId)" + businessCommunity);
+        }
+        //自动插入DEL
+        autoSaveDelBusinessCommunity(business, businessCommunity);
+    }
+
+    public ICommunityServiceDao getCommunityServiceDaoImpl() {
+        return communityServiceDaoImpl;
+    }
+
+    public void setCommunityServiceDaoImpl(ICommunityServiceDao communityServiceDaoImpl) {
+        this.communityServiceDaoImpl = communityServiceDaoImpl;
+    }
+}

+ 1 - 1
FrontService/src/main/java/com/java110/front/smo/community/impl/DeleteCommunitySMOImpl.java

@@ -40,7 +40,7 @@ public class DeleteCommunitySMOImpl extends AbstractComponentSMO implements IDel
     @Override
     protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
         ResponseEntity<String> responseEntity = null;
-        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+        //super.validateStoreStaffCommunityRelationship(pd, restTemplate);
 
         responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
                 ServiceConstant.SERVICE_API_URL + "/api/community.deleteCommunity",

+ 18 - 46
java110-code-generator/src/main/resources/back/template_1.json

@@ -1,64 +1,36 @@
 {
-  "id": "junkRequirementId",
-  "name": "junkRequirement",
-  "desc": "旧货市场",
+  "id": "communityId",
+  "name": "community",
+  "desc": "小区",
   "shareParam": "communityId",
   "shareColumn": "community_id",
   "newBusinessTypeCd": "BUSINESS_TYPE_SAVE_JUNK_REQUIREMENT",
   "updateBusinessTypeCd": "BUSINESS_TYPE_UPDATE_JUNK_REQUIREMENT",
-  "deleteBusinessTypeCd": "BUSINESS_TYPE_DELETE_JUNK_REQUIREMENT",
+  "deleteBusinessTypeCd": "BUSINESS_TYPE_DELETE_COMMUNITY",
   "newBusinessTypeCdValue": "550200030001",
   "updateBusinessTypeCdValue": "550200040001",
-  "deleteBusinessTypeCdValue": "550200050001",
-  "businessTableName": "business_junk_requirement",
-  "tableName": "junk_requirement",
+  "deleteBusinessTypeCdValue": "500100050011",
+  "businessTableName": "business_community",
+  "tableName": "s_community",
   "param": {
-    "junkRequirementId": "junk_requirement_id",
-    "typeCd": "type_cd",
-    "classification": "classification",
-    "context": "context",
-    "referencePrice": "reference_price",
     "communityId": "community_id",
-    "publishUserId": "publish_user_id",
-    "publishUserName": "publish_user_name",
-    "publishUserLink": "publish_user_link",
+    "b_id": "bId",
+    "name": "name",
+    "address": "address",
+    "cityCode": "city_code",
+    "nearbyLandmarks": "nearby_landmarks",
+    "mapX": "map_x",
+    "mapY": "map_y",
+    "month": "month",
+    "createTime": "create_time",
     "state": "state",
     "statusCd": "status_cd",
-    "operate": "operate",
-    "bId": "b_id"
+    "operate": "operate"
   },
   "required": [
-    {
-      "code": "typeCd",
-      "msg": "类型不能为空"
-    },
-    {
-      "code": "classification",
-      "msg": "分类不能为空"
-    },
     {
       "code": "communityId",
-      "msg": "小区不能为空"
-    },
-    {
-      "code": "context",
-      "msg": "内容不能为空"
-    },
-    {
-      "code": "referencePrice",
-      "msg": "参考价格不能为空"
-    },
-    {
-      "code": "publishUserId",
-      "msg": "发布人ID不能为空"
-    },
-    {
-      "code": "publishUserName",
-      "msg": "发布人名称不能为空"
-    },
-    {
-      "code": "publishUserLink",
-      "msg": "发布人联系电话不能为空"
+      "msg": "小区id不能为空"
     }
   ]
 }

+ 3 - 0
java110-utils/src/main/java/com/java110/utils/constant/BusinessTypeConstant.java

@@ -248,6 +248,9 @@ public class BusinessTypeConstant {
      */
     public static final String BUSINESS_TYPE_SAVE_COMMUNITY_INFO = "500100030001";
 
+    //删除小区
+    public static final String BUSINESS_TYPE_DELETE_COMMUNITY = "500100050011";
+
     /**
      * 小区成员加入信息
      */