java110 лет назад: 2
Родитель
Сommit
d67aadf779

+ 0 - 6
java110-db/src/main/resources/mapper/fee/PayFeeDetailNewV1ServiceDaoImplMapper.xml

@@ -116,12 +116,6 @@
         <if test="endTime !=null and endTime != ''">
             , t.end_time= #{endTime}
         </if>
-        <if test="communityId !=null and communityId != ''">
-            , t.community_id= #{communityId}
-        </if>
-        <if test="feeId !=null and feeId != ''">
-            , t.fee_id= #{feeId}
-        </if>
         <if test="payOrderId !=null and payOrderId != ''">
             , t.pay_order_id= #{payOrderId}
         </if>

+ 124 - 2
service-community/src/main/java/com/java110/community/cmd/room/DeleteRoomCmd.java

@@ -3,16 +3,32 @@ package com.java110.community.cmd.room;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.Environment;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.doc.annotation.*;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.fee.PayFeeDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
 import com.java110.dto.unit.UnitDto;
 import com.java110.intf.community.*;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeDetailMonthInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeDetailV1InnerServiceSMO;
+import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
+import com.java110.intf.report.IReportOweFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
+import com.java110.po.fee.PayFeeDetailPo;
+import com.java110.po.fee.PayFeePo;
+import com.java110.po.owner.OwnerRoomRelPo;
+import com.java110.po.payFee.PayFeeDetailMonthPo;
+import com.java110.po.reportFee.ReportOweFeePo;
 import com.java110.po.room.RoomPo;
 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.springframework.beans.factory.annotation.Autowired;
 
@@ -41,11 +57,11 @@ import java.util.List;
 )
 
 @Java110ExampleDoc(
-        reqBody="{\n" +
+        reqBody = "{\n" +
                 "\t\"roomId\": \"123123123123\",\n" +
                 "\t\"communityId\": \"2022121921870161\",\n" +
                 "}",
-        resBody="{\"code\":0,\"msg\":\"成功\"}"
+        resBody = "{\"code\":0,\"msg\":\"成功\"}"
 )
 @Java110Cmd(serviceCode = "room.deleteRoom")
 public class DeleteRoomCmd extends Cmd {
@@ -64,9 +80,25 @@ public class DeleteRoomCmd extends Cmd {
     @Autowired
     private IRoomAttrV1InnerServiceSMO roomAttrV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeDetailV1InnerServiceSMO payFeeDetailV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IReportOweFeeInnerServiceSMO reportOweFeeInnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeDetailMonthInnerServiceSMO payFeeDetailMonthInnerServiceSMOImpl;
+
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+        Environment.isDevEnv();
         Assert.jsonObjectHaveKey(reqJson, "roomId", "请求报文中未包含roomId节点");
         Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId节点");
         Assert.jsonObjectHaveKey(reqJson, "unitId", "请求报文中未包含unitId节点");
@@ -93,8 +125,98 @@ public class DeleteRoomCmd extends Cmd {
         if (flag < 1) {
             throw new CmdException("删除房屋失败");
         }
+
+        // todo 解绑业主
+        unbindOwnerRoomRel(roomPo);
+
+        // todo 删除房屋下的费用 和缴费记录
+        deleteRoomFee(roomPo);
+
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
 
 
+    /**
+     * 自动解绑 业主和房屋
+     *
+     * @param roomPo
+     */
+    private void unbindOwnerRoomRel(RoomPo roomPo) {
+        if (StringUtil.isJsonObject(roomPo.getRoomId())) {
+            throw new CmdException("房屋ID不能为空");
+        }
+
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setRoomId(roomPo.getRoomId());
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+
+        if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
+            return;
+        }
+        OwnerRoomRelPo ownerRoomRelPo = null;
+        for (OwnerRoomRelDto tmpOwnerRoomRelDto : ownerRoomRelDtos) {
+            ownerRoomRelPo = new OwnerRoomRelPo();
+            ownerRoomRelPo.setRelId(tmpOwnerRoomRelDto.getRelId());
+            ownerRoomRelV1InnerServiceSMOImpl.deleteOwnerRoomRel(ownerRoomRelPo);
+        }
+    }
+
+    /**
+     * 删除房屋费用
+     *
+     * @param roomPo
+     */
+    private void deleteRoomFee(RoomPo roomPo) {
+        if (StringUtil.isJsonObject(roomPo.getRoomId())) {
+            throw new CmdException("房屋ID不能为空");
+        }
+        PayFeeDto feeDto = new PayFeeDto();
+        feeDto.setPayerObjId(roomPo.getRoomId());
+        feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+        feeDto.setCommunityId(roomPo.getCommunityId());
+        List<PayFeeDto> feeDtos = payFeeV1InnerServiceSMOImpl.queryPayFees(feeDto);
+
+        if (feeDtos == null || feeDtos.size() < 1) {
+            return;
+        }
+
+        for (PayFeeDto payFeeDto : feeDtos) {
+            doDeleteFee(payFeeDto);
+        }
+
+    }
+
+    /**
+     * @param payFeeDto
+     */
+    private void doDeleteFee(PayFeeDto payFeeDto) {
+        //todo 删除缴费记录
+
+        PayFeeDetailPo payFeeDetailPo = new PayFeeDetailPo();
+        payFeeDetailPo.setFeeId(payFeeDto.getFeeId());
+        payFeeDetailPo.setCommunityId(payFeeDto.getCommunityId());
+        payFeeDetailV1InnerServiceSMOImpl.deletePayFeeDetailNew(payFeeDetailPo);
+
+        //todo 删除费用
+        PayFeePo payFeePo = new PayFeePo();
+        payFeePo.setFeeId(payFeeDto.getFeeId());
+        payFeePo.setCommunityId(payFeeDto.getCommunityId());
+        payFeeV1InnerServiceSMOImpl.deletePayFee(payFeePo);
+
+        //todo 删除欠费
+        ReportOweFeePo reportOweFeePo = new ReportOweFeePo();
+        reportOweFeePo.setFeeId(payFeeDto.getFeeId());
+        reportOweFeePo.setCommunityId(payFeeDto.getCommunityId());
+        reportOweFeeInnerServiceSMOImpl.deleteReportOweFee(reportOweFeePo);
+
+        //todo 删除 离散月数据
+        PayFeeDetailMonthPo payFeeDetailMonthPo = new PayFeeDetailMonthPo();
+        payFeeDetailMonthPo.setFeeId(payFeeDto.getFeeId());
+        payFeeDetailMonthPo.setCommunityId(payFeeDto.getCommunityId());
+        payFeeDetailMonthInnerServiceSMOImpl.deletePayFeeDetailMonth(payFeeDetailMonthPo);
+
+    }
+
+
 }

+ 14 - 1
service-fee/src/main/java/com/java110/fee/cmd/fee/DeleteFeeCmd.java

@@ -2,6 +2,7 @@ package com.java110.fee.cmd.fee;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.Environment;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
@@ -13,8 +14,10 @@ import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
 import com.java110.intf.fee.IPayFeeDetailV1InnerServiceSMO;
 import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
+import com.java110.intf.report.IReportOweFeeInnerServiceSMO;
 import com.java110.po.fee.PayFeeDetailPo;
 import com.java110.po.fee.PayFeePo;
+import com.java110.po.reportFee.ReportOweFeePo;
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
@@ -44,9 +47,13 @@ public class DeleteFeeCmd extends Cmd {
     @Autowired
     private IPayFeeMonth payFeeMonthImpl;
 
+    @Autowired
+    private IReportOweFeeInnerServiceSMO reportOweFeeInnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
-        // super.validatePageInfo(pd);
+        Environment.isDevEnv();
+
         Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
         Assert.hasKeyAndValue(reqJson, "feeId", "未包含feeId");
 
@@ -98,6 +105,12 @@ public class DeleteFeeCmd extends Cmd {
             }
         }
 
+        // todo 删除欠费信息
+        ReportOweFeePo reportOweFeePo = new ReportOweFeePo();
+        reportOweFeePo.setFeeId(payFeePo.getFeeId());
+        reportOweFeePo.setCommunityId(payFeePo.getCommunityId());
+        reportOweFeeInnerServiceSMOImpl.deleteReportOweFee(reportOweFeePo);
+
         //todo 离散的月
         payFeeMonthImpl.deleteFeeMonth(payFeePo.getFeeId(),payFeePo.getCommunityId());
     }

+ 2 - 1
service-user/src/main/java/com/java110/user/cmd/owner/DeleteOwnerCarsCmd.java

@@ -3,6 +3,7 @@ package com.java110.user.cmd.owner;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.Environment;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
@@ -44,7 +45,7 @@ public class DeleteOwnerCarsCmd extends Cmd {
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
+        Environment.isDevEnv();
 
         Assert.hasKeyAndValue(reqJson, "carId", "carId不能为空");
         Assert.hasKeyAndValue(reqJson, "memberId", "memberId不能为空");

+ 2 - 0
service-user/src/main/java/com/java110/user/cmd/owner/DeleteOwnerCmd.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.Environment;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
@@ -79,6 +80,7 @@ public class DeleteOwnerCmd extends Cmd {
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+        Environment.isDevEnv();
         Assert.jsonObjectHaveKey(reqJson, "memberId", "请求报文中未包含memberId");
         Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId");
         if (!"1001".equals(reqJson.getString("ownerTypeCd"))) { //不是业主成员不管