From a4e5cf9180a6111d9037738c78f167ec3efae8a0 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期日, 30 五月 2021 14:21:17 +0800
Subject: [PATCH] 优化删除合同校验
---
service-store/src/main/java/com/java110/store/bmo/contract/impl/DeleteContractBMOImpl.java | 127 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 124 insertions(+), 3 deletions(-)
diff --git a/service-store/src/main/java/com/java110/store/bmo/contract/impl/DeleteContractBMOImpl.java b/service-store/src/main/java/com/java110/store/bmo/contract/impl/DeleteContractBMOImpl.java
index d882775..3c66c72 100755
--- a/service-store/src/main/java/com/java110/store/bmo/contract/impl/DeleteContractBMOImpl.java
+++ b/service-store/src/main/java/com/java110/store/bmo/contract/impl/DeleteContractBMOImpl.java
@@ -1,19 +1,47 @@
package com.java110.store.bmo.contract.impl;
import com.java110.core.annotation.Java110Transactional;
+import com.java110.dto.RoomDto;
+import com.java110.dto.contractRoom.ContractRoomDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
import com.java110.intf.store.IContractInnerServiceSMO;
+import com.java110.intf.store.IContractRoomInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
import com.java110.po.contract.ContractPo;
+import com.java110.po.owner.OwnerRoomRelPo;
+import com.java110.po.room.RoomPo;
import com.java110.store.bmo.contract.IDeleteContractBMO;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
+
+import java.util.List;
@Service("deleteContractBMOImpl")
public class DeleteContractBMOImpl implements IDeleteContractBMO {
@Autowired
private IContractInnerServiceSMO contractInnerServiceSMOImpl;
+
+ @Autowired
+ private IContractRoomInnerServiceSMO contractRoomInnerServiceSMOImpl;
+
+ @Autowired
+ private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+ @Autowired
+ private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+
+ @Autowired
+ private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
/**
* @param contractPo 鏁版嵁
@@ -24,11 +52,104 @@
int flag = contractInnerServiceSMOImpl.deleteContract(contractPo);
- if (flag > 0) {
- return ResultVo.createResponseEntity(ResultVo.CODE_OK, "淇濆瓨鎴愬姛");
+ if (flag < 1) {
+ return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "淇濆瓨澶辫触");
}
- return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "淇濆瓨澶辫触");
+ deleteContractRoomRel(contractPo);
+
+ return ResultVo.createResponseEntity(ResultVo.CODE_OK, "淇濆瓨鎴愬姛");
+
+ }
+
+
+ private void deleteContractRoomRel(ContractPo contractPo) {
+
+ // 鏌ヨ鍚堝悓鍏宠仈鎴垮眿
+ ContractRoomDto contractRoomDto = new ContractRoomDto();
+ contractRoomDto.setContractId(contractPo.getContractId());
+ contractRoomDto.setStoreId(contractPo.getStoreId());
+ List<ContractRoomDto> contractRoomDtos = contractRoomInnerServiceSMOImpl.queryContractRooms(contractRoomDto);
+
+ if (contractRoomDtos == null || contractRoomDtos.size() < 1) {
+ return;
+ }
+ List<ContractRoomDto> tmpContractRoomDtos = null;
+ OwnerRoomRelPo ownerRoomRelPo = null;
+ for (ContractRoomDto tmpContractRoomDto : contractRoomDtos) {
+
+ //鍒ゆ柇鎴垮眿鏄惁杩樼璁簡鍏朵粬鐨勫悎鍚�
+ contractRoomDto = new ContractRoomDto();
+ contractRoomDto.setRoomId(tmpContractRoomDto.getRoomId());
+ contractRoomDto.setStoreId(contractPo.getStoreId());
+ tmpContractRoomDtos = contractRoomInnerServiceSMOImpl.queryContractRooms(contractRoomDto);
+
+ //杩樻湁鍏朵粬鐨勫悎鍚� 鍏堜笉澶勭悊
+ if (tmpContractRoomDtos != null && tmpContractRoomDtos.size() > 1) {
+ continue;
+ }
+
+ validateRoom(tmpContractRoomDto);
+
+ //鍒蜂笟涓�
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+ ownerRoomRelDto.setRoomId(tmpContractRoomDto.getRoomId());
+ List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+
+ if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) { // 璇存槑鎴垮眿娌℃湁涓氫富
+ continue;
+ }
+
+
+ //淇敼鎴垮眿鐘舵��
+ RoomPo roomPo = new RoomPo();
+ roomPo.setRoomId(ownerRoomRelDtos.get(0).getRoomId());
+ roomPo.setState(RoomDto.STATE_FREE);
+ roomPo.setStatusCd(StatusConstant.STATUS_CD_VALID);
+ roomInnerServiceSMOImpl.updateRooms(roomPo);
+
+ //鍒犻櫎鍏崇郴
+ ownerRoomRelPo = new OwnerRoomRelPo();
+ ownerRoomRelPo.setStatusCd(StatusConstant.STATUS_CD_INVALID);
+ ownerRoomRelPo.setRelId(ownerRoomRelDtos.get(0).getRelId());
+ ownerRoomRelInnerServiceSMOImpl.updateOwnerRoomRels(ownerRoomRelPo);
+
+ //鎻掑叆鍒犻櫎鍏崇郴
+ ownerRoomRelPo = BeanConvertUtil.covertBean(ownerRoomRelDtos.get(0), OwnerRoomRelPo.class);
+ ownerRoomRelPo.setbId("-1");
+ ownerRoomRelPo.setOperate("DEL");
+ ownerRoomRelInnerServiceSMOImpl.saveBusinessOwnerRoomRels(ownerRoomRelPo);
+ }
+
+ }
+
+ /**
+ * 鎴垮眿鏄惁娆犺垂鏍¢獙
+ *
+ * @param tmpContractRoomDto
+ */
+ private void validateRoom(ContractRoomDto tmpContractRoomDto) {
+ //鏍¢獙 鎴垮眿涓婃槸鍚︽湁璐圭敤瀛樺湪
+
+
+ //鍒ゆ柇鎴垮眿鏄惁瀛樺湪
+ RoomDto roomDto = new RoomDto();
+ roomDto.setRoomId(tmpContractRoomDto.getRoomId());
+ roomDto.setCommunityId(tmpContractRoomDto.getCommunityId());
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+ Assert.listOnlyOne(roomDtos, "鎴垮眿涓嶅瓨鍦�");
+
+ //鏌ヨ鎴垮眿鏃跺�欐湁娆犺垂
+ FeeDto feeDto = new FeeDto();
+ feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+ feeDto.setPayerObjId(tmpContractRoomDto.getRoomId());
+ feeDto.setState(FeeDto.STATE_DOING);
+ List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+ if (feeDtos != null && feeDtos.size() > 0) {
+ throw new IllegalArgumentException(roomDtos.get(0).getRoomNum() + "鎴垮眿瀛樺湪鏈粨鏉熺殑璐圭敤 璇峰厛澶勭悊");
+ }
+
}
}
--
Gitblit v1.8.0