|
|
@@ -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);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|