曾成
2020-04-24 1d94960292ba494d3bb82cca0f3f71c5d06fbb64
未审核,审核失败得小区新增删除接口
5个文件已修改
1个文件已添加
284 ■■■■ 已修改文件
Api/src/main/java/com/java110/api/listener/community/DeleteCommunityListener.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/community/ListCommunitysListener.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CommunityService/src/main/java/com/java110/community/listener/community/DeleteCommunityInfoListener.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FrontService/src/main/java/com/java110/front/smo/community/impl/DeleteCommunitySMOImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-code-generator/src/main/resources/back/template_1.json 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/constant/BusinessTypeConstant.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/community/DeleteCommunityListener.java
@@ -4,6 +4,7 @@
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 @@
        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);
Api/src/main/java/com/java110/api/listener/community/ListCommunitysListener.java
@@ -104,19 +104,18 @@
        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("未知");
            }
        }
    }
CommunityService/src/main/java/com/java110/community/listener/community/DeleteCommunityInfoListener.java
New file
@@ -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;
    }
}
FrontService/src/main/java/com/java110/front/smo/community/impl/DeleteCommunitySMOImpl.java
@@ -40,7 +40,7 @@
    @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",
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不能为空"
    }
  ]
}
java110-utils/src/main/java/com/java110/utils/constant/BusinessTypeConstant.java
@@ -248,6 +248,9 @@
     */
    public static final String BUSINESS_TYPE_SAVE_COMMUNITY_INFO = "500100030001";
    //删除小区
    public static final String BUSINESS_TYPE_DELETE_COMMUNITY = "500100050011";
    /**
     * 小区成员加入信息
     */