吴学文 лет назад: 7
Родитель
Сommit
5caede7c05

+ 156 - 0
Api/src/main/java/com/java110/api/listener/unit/DeleteUnitListener.java

@@ -0,0 +1,156 @@
+package com.java110.api.listener.unit;
+
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.common.constant.BusinessTypeConstant;
+import com.java110.common.constant.CommonConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+import com.java110.common.util.Assert;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.floor.IFloorInnerServiceSMO;
+import com.java110.core.smo.unit.IUnitInnerServiceSMO;
+import com.java110.dto.FloorDto;
+import com.java110.dto.UnitDto;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 删除单元信息侦听
+ */
+@Java110Listener("deleteUnitListener")
+public class DeleteUnitListener extends AbstractServiceApiDataFlowListener {
+    private static Logger logger = LoggerFactory.getLogger(SaveUnitListener.class);
+
+    @Autowired
+    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
+
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_DELETE_UNIT;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    public void soService(ServiceDataFlowEvent event) {
+        logger.debug("ServiceDataFlowEvent : {}", event);
+
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        AppService service = event.getAppService();
+
+        String paramIn = dataFlowContext.getReqData();
+
+        //校验数据
+        validate(paramIn);
+        JSONObject paramObj = JSONObject.parseObject(paramIn);
+
+        HttpHeaders header = new HttpHeaders();
+        //dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_USER_ID, "-1");
+        dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+        JSONArray businesses = new JSONArray();
+
+        //添加单元信息
+        businesses.add(editUnit(paramObj, dataFlowContext));
+
+        JSONObject paramInObj = super.restToCenterProtocol(businesses, dataFlowContext.getRequestCurrentHeaders());
+
+        //将 rest header 信息传递到下层服务中去
+        super.freshHttpHeader(header, dataFlowContext.getRequestCurrentHeaders());
+
+        ResponseEntity<String> responseEntity = this.callService(dataFlowContext, service.getServiceCode(), paramInObj);
+
+        dataFlowContext.setResponseEntity(responseEntity);
+    }
+
+    /**
+     * 修改小区楼信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject editUnit(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_UNIT_INFO);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.put("unitId", paramInJson.getString("unitId"));
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessUnit", businessUnit);
+
+        return business;
+    }
+    /**
+     * 数据校验
+     *
+     * @param paramIn "communityId": "7020181217000001",
+     *                "memberId": "3456789",
+     *                "memberTypeCd": "390001200001"
+     */
+    private void validate(String paramIn) {
+        Assert.jsonObjectHaveKey(paramIn, "communityId", "请求报文中未包含communityId节点");
+        Assert.jsonObjectHaveKey(paramIn, "floorId", "请求报文中未包含floorId节点");
+        Assert.jsonObjectHaveKey(paramIn, "unitId", "请求报文中未包含unitId节点");
+        JSONObject reqJson = JSONObject.parseObject(paramIn);
+        FloorDto floorDto = new FloorDto();
+        floorDto.setCommunityId(reqJson.getString("communityId"));
+        floorDto.setFloorId(reqJson.getString("floorId"));
+        //校验小区楼ID和小区是否有对应关系
+        int total = floorInnerServiceSMOImpl.queryFloorsCount(floorDto);
+
+        if (total < 1) {
+            throw new IllegalArgumentException("传入小区楼ID不是该小区的楼");
+        }
+
+        //校验 小区楼ID 和单元ID是否有关系
+        UnitDto unitDto = new UnitDto();
+        unitDto.setFloorId(reqJson.getString("floorId"));
+        unitDto.setUnitId(reqJson.getString("unitId"));
+        total = unitInnerServiceSMOImpl.queryUnitsCount(unitDto);
+        if (total < 1) {
+            throw new IllegalArgumentException("传入单元不是该小区的楼的单元");
+        }
+
+    }
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+    public IFloorInnerServiceSMO getFloorInnerServiceSMOImpl() {
+        return floorInnerServiceSMOImpl;
+    }
+
+    public void setFloorInnerServiceSMOImpl(IFloorInnerServiceSMO floorInnerServiceSMOImpl) {
+        this.floorInnerServiceSMOImpl = floorInnerServiceSMOImpl;
+    }
+
+
+    public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() {
+        return unitInnerServiceSMOImpl;
+    }
+
+    public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) {
+        this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl;
+    }
+}

+ 37 - 0
WebService/src/main/java/com/java110/web/components/unit/DeleteUnitComponent.java

@@ -0,0 +1,37 @@
+package com.java110.web.components.unit;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IUnitServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * 删除小区单元组件
+ */
+@Component("deleteUnit")
+public class DeleteUnitComponent {
+
+    @Autowired
+    private IUnitServiceSMO unitServiceSMOImpl;
+
+
+    /**
+     * 删除小区单元信息
+     *
+     * @param pd 页面数据封装
+     * @return ResponseEntity对象
+     */
+    public ResponseEntity<String> delete(IPageData pd) {
+        return unitServiceSMOImpl.deleteUnit(pd);
+    }
+
+    public IUnitServiceSMO getUnitServiceSMOImpl() {
+        return unitServiceSMOImpl;
+    }
+
+    public void setUnitServiceSMOImpl(IUnitServiceSMO unitServiceSMOImpl) {
+        this.unitServiceSMOImpl = unitServiceSMOImpl;
+    }
+}

+ 8 - 0
WebService/src/main/java/com/java110/web/smo/IUnitServiceSMO.java

@@ -38,4 +38,12 @@ public interface IUnitServiceSMO {
      * @return ResponseEntity对象
      */
     ResponseEntity<String> updateUnit(IPageData pd);
+
+    /**
+     * 删除小区单元
+     *
+     * @param pd 页面数据封装
+     * @return ResponseEntity对象
+     */
+    ResponseEntity<String> deleteUnit(IPageData pd);
 }

+ 43 - 0
WebService/src/main/java/com/java110/web/smo/impl/UnitServiceSMOImpl.java

@@ -138,6 +138,49 @@ public class UnitServiceSMOImpl extends BaseComponentSMO implements IUnitService
         return responseEntity;
     }
 
+    @Override
+    public ResponseEntity<String> deleteUnit(IPageData pd) {
+        //校验入参
+        validateDeleteUnit(pd);
+
+        //校验用户是否有权限
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_UNIT);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "根据用户ID查询商户类型失败,未包含storeTypeCd节点");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //数据校验是否 商户是否入驻该小区
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/unit.deleteUnit";
+
+        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                apiUrl,
+                HttpMethod.POST);
+        return responseEntity;
+    }
+
+    /**
+     * 删除单元信息校验
+     *
+     * @param pd 页面数据封装
+     */
+    private void validateDeleteUnit(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "请求报文中未包含communityId节点");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "floorId", "请求报文中未包含floorId节点");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "unitId", "请求报文中未包含unitId节点");
+
+    }
+
     /**
      * 校验 保存小区单元参数信息
      *

+ 3 - 2
WebService/src/main/resources/components/delete-unit/deleteUnit.js

@@ -22,8 +22,9 @@
         methods:{
             deleteUnit:function(){
                 var param = {
-                    userId:vc.component.deleteUnitInfo._currentFloorId,
-                    pId:vc.component.deleteUnitInfo._currentUnitId
+                    floorId:vc.component.deleteUnitInfo._currentFloorId,
+                    unitId:vc.component.deleteUnitInfo._currentUnitId,
+                    communityId:vc.getCurrentCommunity().communityId
                 }
                 vc.http.post(
                     'deleteUnit',

+ 1 - 0
docs/_sidebar.md

@@ -25,6 +25,7 @@
   * [查询单元信息](api/unit/queryUnits.md)
   * [保存单元信息](api/unit/saveUnit.md)
   * [修改单元信息](api/unit/updateUnit.md)
+  * [删除单元信息](api/unit/deleteUnit.md)
 
 * 服务端接口协议
 

+ 62 - 0
docs/api/unit/deleteUnit.md

@@ -0,0 +1,62 @@
+
+
+**1\. 删除小区单元信息**
+###### 接口功能
+> 用户通过web端或APP删除单元信息接口
+
+###### URL
+> [http://api.java110.com:8008/api/unit.deleteUnit](http://api.java110.com:8008/api/unit.deleteUnit)
+
+###### 支持格式
+> JSON
+
+###### HTTP请求方式
+> GET
+
+###### 请求参数(header部分)
+|参数名称|约束|类型|长度|描述|取值说明|
+| :-: | :-: | :-: | :-: | :-: | :-:|
+|app_id|1|String|30|应用ID|Api服务分配                      |
+|transaction_id|1|String|30|请求流水号|不能重复 1000000000+YYYYMMDDhhmmss+6位序列 |
+|sign|1|String|-|签名|请参考签名说明|
+|req_time|1|String|-|请求时间|YYYYMMDDhhmmss|
+
+###### 请求参数
+|参数名称|约束|类型|长度|描述|取值说明|
+| :-: | :-: | :-: | :-: | :-: | :-: |
+|floorId|1|String|30|小区楼ID|-|
+|communityId|1|String|30|小区ID|-|
+|unitId|1|String|30|单元ID|-|
+
+###### 返回协议
+
+当http返回状态不为200 时请求处理失败 body内容为失败的原因
+
+当http返回状态为200时请求处理成功,body内容为返回内容,
+
+成功
+
+
+###### 举例
+> 地址:[http://api.java110.com:8008/api/unit.deleteUnit](http://api.java110.com:8008/api/unit.deleteUnit)
+
+``` javascript
+请求头信息:
+Content-Type:application/json
+USER_ID:1234
+APP_ID:8000418002
+TRANSACTION_ID:10029082726
+REQ_TIME:20181113225612
+SIGN:aabdncdhdbd878sbdudn898
+请求报文:
+
+{
+    "floorId":"填写具体值",
+     "communityId":"填写具体值",
+     "unitId":"填写具体值",
+}
+
+返回报文:
+成功
+
+```

+ 4 - 0
java110-common/src/main/java/com/java110/common/constant/ServiceCodeConstant.java

@@ -375,4 +375,8 @@ public class ServiceCodeConstant {
 
     //修改小区单元
     public static final String SERVICE_CODE_UPDATE_UNIT = "unit.updateUnit";
+
+
+    //删除小区单元
+    public static final String SERVICE_CODE_DELETE_UNIT = "unit.deleteUnit";
 }