From cca504b84583f8f8289b34e794939b8590a16446 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 23 五月 2023 14:34:22 +0800
Subject: [PATCH] optimzie exit room

---
 service-community/src/main/java/com/java110/community/cmd/parkingSpace/DeleteParkingSpaceCmd.java |   70 ++++++++++++++++++++++++----------
 1 files changed, 49 insertions(+), 21 deletions(-)

diff --git a/service-community/src/main/java/com/java110/community/cmd/parkingSpace/DeleteParkingSpaceCmd.java b/service-community/src/main/java/com/java110/community/cmd/parkingSpace/DeleteParkingSpaceCmd.java
index 4ab4018..84e7afc 100644
--- a/service-community/src/main/java/com/java110/community/cmd/parkingSpace/DeleteParkingSpaceCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/parkingSpace/DeleteParkingSpaceCmd.java
@@ -2,49 +2,80 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
-import com.java110.core.context.DataFlowContext;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
-import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.dto.parking.ParkingSpaceDto;
 import com.java110.intf.community.IParkingSpaceV1InnerServiceSMO;
 import com.java110.po.parking.ParkingSpacePo;
 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 org.springframework.beans.factory.annotation.Autowired;
 
 import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
 
 @Java110Cmd(serviceCode = "parkingSpace.deleteParkingSpace")
 public class DeleteParkingSpaceCmd extends Cmd {
 
     @Autowired
-    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
-
-    @Autowired
     private IParkingSpaceV1InnerServiceSMO parkingSpaceV1InnerServiceSMOImpl;
-
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
-
         Assert.jsonObjectHaveKey(reqJson, "psId", "璇锋眰鎶ユ枃涓湭鍖呭惈psId");
         Assert.jsonObjectHaveKey(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
+        if (!ParkingSpaceDto.STATE_FREE.equals(reqJson.getString("state"))) {
+            throw new CmdException("杞︿綅涓嶆槸绌洪棽锛屼笉鑳藉仛鍒犻櫎");
+        }
+        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+        parkingSpaceDto.setPsId(reqJson.getString("psId"));
+        parkingSpaceDto.setTypeCd(ParkingSpaceDto.TYPE_CD_SON_MOTHER);
+        parkingSpaceDto.setParkingType("2"); //1锛氭櫘閫氳溅浣�  2锛氬瓙姣嶈溅浣�  3锛氳豹鍗庤溅浣�
+        parkingSpaceDto.setCommunityId(reqJson.getString("communityId"));
+        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceV1InnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+        //涓嶆槸瀛愭瘝杞︿綅
+        if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) {
+            return;
+        }
+        List<String> nums = new ArrayList<>();
+        nums.add(parkingSpaceDtos.get(0).getNum());
+        if (parkingSpaceDtos.get(0).getNum().endsWith(ParkingSpaceDto.NUM_MOTHER)) {
+            nums.add(parkingSpaceDtos.get(0).getNum().replace(ParkingSpaceDto.NUM_MOTHER, ""));
+        } else {
+            nums.add(parkingSpaceDtos.get(0).getNum() + ParkingSpaceDto.NUM_MOTHER);
+        }
+        parkingSpaceDto = new ParkingSpaceDto();
+        parkingSpaceDto.setNums(nums.toArray(new String[nums.size()]));
+        parkingSpaceDto.setCommunityId(reqJson.getString("communityId"));
+        parkingSpaceDto.setStates(new String[]{ParkingSpaceDto.STATE_HIRE, ParkingSpaceDto.STATE_SELL});
+        parkingSpaceDto.setParkingType("2"); //1锛氭櫘閫氳溅浣�  2锛氬瓙姣嶈溅浣�  3锛氳豹鍗庤溅浣�
+        int flag = parkingSpaceV1InnerServiceSMOImpl.queryParkingSpacesCount(parkingSpaceDto);
+        if (flag > 0) {
+            throw new CmdException("瀛愭瘝杞︿綅闈炵┖闂�");
+        }
+        reqJson.put("sonMotherNums", nums);
     }
 
     @Override
     public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
-
-        if (reqJson.containsKey("state") && !StringUtil.isEmpty("state") && reqJson.getString("state").equals("F")) {
+        //闈� 瀛愭瘝杞︿綅
+        if (!reqJson.containsKey("sonMotherNums")) {
             deleteParkingSpace(reqJson);
-        } else if (reqJson.containsKey("state") && !StringUtil.isEmpty("state") && reqJson.getString("state").equals("S")) {
-            throw new IllegalArgumentException("杞︿綅宸插嚭鍞紝涓嶈兘鍒犻櫎锛�");
-        } else if (reqJson.containsKey("state") && !StringUtil.isEmpty("state") && reqJson.getString("state").equals("H")) {
-            throw new IllegalArgumentException("杞︿綅宸插嚭绉燂紝涓嶈兘鍒犻櫎锛�");
-        } else {
-            throw new IllegalArgumentException("鏈煡杞︿綅锛�");
+            return;
+        }
+        List<String> nums = reqJson.getObject("sonMotherNums", List.class);
+        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+        parkingSpaceDto.setNums(nums.toArray(new String[nums.size()]));
+        parkingSpaceDto.setCommunityId(reqJson.getString("communityId"));
+        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceV1InnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+        JSONObject paramIn = null;
+        for (ParkingSpaceDto tmpParkingSpaceDto : parkingSpaceDtos) {
+            paramIn = new JSONObject();
+            paramIn.put("psId", tmpParkingSpaceDto.getPsId());
+            deleteParkingSpace(reqJson);
         }
     }
 
@@ -55,16 +86,13 @@
      * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
      */
     public void deleteParkingSpace(JSONObject paramInJson) {
-
         JSONObject businessParkingSpace = new JSONObject();
         businessParkingSpace.put("psId", paramInJson.getString("psId"));
         ParkingSpacePo parkingSpacePo = BeanConvertUtil.covertBean(businessParkingSpace, ParkingSpacePo.class);
+        int flag = parkingSpaceV1InnerServiceSMOImpl.deleteParkingSpace(parkingSpacePo);
 
-        int flag =  parkingSpaceV1InnerServiceSMOImpl.deleteParkingSpace(parkingSpacePo);
-
-        if(flag < 1){
+        if (flag < 1) {
             throw new CmdException("鍒犻櫎杞︿綅澶辫触");
         }
     }
-
 }

--
Gitblit v1.8.0