From 3d571a3e5ef8e6cc76214b79ea386455afb1bd9d Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 27 十二月 2024 11:02:05 +0800
Subject: [PATCH] 优化代码

---
 service-user/src/main/java/com/java110/user/cmd/owner/SaveOwnerCarCmd.java |   59 +++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 37 insertions(+), 22 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/cmd/owner/SaveOwnerCarCmd.java b/service-user/src/main/java/com/java110/user/cmd/owner/SaveOwnerCarCmd.java
index 199b577..0522670 100644
--- a/service-user/src/main/java/com/java110/user/cmd/owner/SaveOwnerCarCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/owner/SaveOwnerCarCmd.java
@@ -19,14 +19,11 @@
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
 import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
 import com.java110.po.car.OwnerCarPo;
-import com.java110.po.ownerCarAttr.OwnerCarAttrPo;
+import com.java110.po.owner.OwnerCarAttrPo;
 import com.java110.po.parking.ParkingSpacePo;
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.exception.CmdException;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
-import com.java110.utils.util.DateUtil;
-import com.java110.utils.util.StringUtil;
+import com.java110.utils.util.*;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.Date;
@@ -59,24 +56,46 @@
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
-        Assert.jsonObjectHaveKey(reqJson, "communityId", "鏈寘鍚皬鍖篒D");
-        Assert.jsonObjectHaveKey(reqJson, "ownerId", "璇锋眰鎶ユ枃涓湭鍖呭惈ownerId");
-        Assert.jsonObjectHaveKey(reqJson, "carNum", "璇锋眰鎶ユ枃涓湭鍖呭惈carNum");
-        Assert.jsonObjectHaveKey(reqJson, "carBrand", "璇锋眰鎶ユ枃涓湭鍖呭惈carBrand");
-        Assert.jsonObjectHaveKey(reqJson, "carType", "璇锋眰鎶ユ枃涓湭鍖呭惈carType");
-        Assert.jsonObjectHaveKey(reqJson, "carColor", "鏈寘鍚玞arColor");
-        Assert.jsonObjectHaveKey(reqJson, "psId", "鏈寘鍚玴sId");
-        Assert.jsonObjectHaveKey(reqJson, "storeId", "鏈寘鍚玸toreId");
+        Assert.hasKeyAndValue(reqJson, "communityId", "鏈寘鍚皬鍖篒D");
+        Assert.hasKeyAndValue(reqJson, "ownerId", "璇锋眰鎶ユ枃涓湭鍖呭惈ownerId");
+        Assert.hasKeyAndValue(reqJson, "carNum", "璇锋眰鎶ユ枃涓湭鍖呭惈carNum");
+        Assert.hasKeyAndValue(reqJson, "carType", "璇锋眰鎶ユ枃涓湭鍖呭惈carType");
+        Assert.hasKeyAndValue(reqJson, "psId", "鏈寘鍚玴sId");
 
-        Assert.hasLength(reqJson.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
-        Assert.hasLength(reqJson.getString("ownerId"), "ownerId涓嶈兘涓虹┖");
-        Assert.hasLength(reqJson.getString("psId"), "psId涓嶈兘涓虹┖");
+        if (OwnerCarDto.LEASE_TYPE_MONTH.equals(reqJson.getString("leaseType"))) {
+            Assert.hasKeyAndValue(reqJson, "startTime", "璇锋眰鎶ユ枃涓湭鍖呭惈寮�濮嬫椂闂�");
+            Assert.hasKeyAndValue(reqJson, "endTime", "璇锋眰鎶ユ枃涓湭鍖呭惈缁撴潫鏃堕棿");
+            Assert.isDate(reqJson.getString("startTime"),DateUtil.DATE_FORMATE_STRING_B,"寮�濮嬫椂闂存牸寮忛敊璇�");
+            Assert.isDate(reqJson.getString("endTime"),DateUtil.DATE_FORMATE_STRING_B,"缁撴潫鏃堕棿鏍煎紡閿欒");
+        }
 
+        String startTime = reqJson.getString("startTime");
+        String endTime = reqJson.getString("endTime");
+        if(StringUtil.isEmpty(startTime)){
+            startTime = DateUtil.getFormatTimeString(new Date(), DateUtil.DATE_FORMATE_STRING_B);
+            reqJson.put("startTime",startTime);
+        }
+        if(StringUtil.isEmpty(endTime)){
+            endTime = "2050-01-01";
+            reqJson.put("endTime",endTime);
+        }
+
+        //妫�鏌ヨ溅浣嶆槸鍚︽槸绌洪棽鐘舵��
+        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+        parkingSpaceDto.setPsId(reqJson.getString("psId"));
+        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+        Assert.listOnlyOne(parkingSpaceDtos, "鏌ヨ杞︿綅閿欒锛�");
+        //鑾峰彇杞︿綅鐘舵��
+        String state = parkingSpaceDtos.get(0).getState();
+        if (StringUtil.isEmpty(state) || !ParkingSpaceDto.STATE_FREE.equals(state)) {
+            throw new IllegalArgumentException("璇ヨ溅浣嶄笉鏄┖闂茬姸鎬侊紒");
+        }
 
         //鏍¢獙杞︾墝鍙锋槸鍚﹀瓨鍦�
         OwnerCarDto ownerCarDto = new OwnerCarDto();
         ownerCarDto.setCommunityId(reqJson.getString("communityId"));
         ownerCarDto.setCarNum(reqJson.getString("carNum"));
+        ownerCarDto.setPaIds(new String[]{parkingSpaceDtos.get(0).getPaId()});
         ownerCarDto.setCarTypeCds(new String[]{OwnerCarDto.CAR_TYPE_PRIMARY, OwnerCarDto.CAR_TYPE_MEMBER}); // 涓存椂杞﹂櫎澶�
         int count = ownerCarInnerServiceSMOImpl.queryOwnerCarsCount(ownerCarDto);
 
@@ -104,7 +123,7 @@
         carInoutDto.setCarNum(reqJson.getString("carNum"));
         carInoutDto.setStates(new String[]{CarInoutDto.STATE_PAY, CarInoutDto.STATE_IN, CarInoutDto.STATE_REPAY});
         List<CarInoutDto> carInoutDtos = carInoutInnerServiceSMOImpl.queryCarInouts(carInoutDto);
-        if (carInoutDtos != null && carInoutDtos.size() > 0) {
+        if (!ListUtil.isNull(carInoutDtos)) {
             throw new CmdException("杞﹁締鍦ㄥ満锛岃鍑哄満鍚庡啀鍔炵悊鏈堢杞�");
         }
     }
@@ -116,10 +135,6 @@
             reqJson.put("leaseType", OwnerCarDto.LEASE_TYPE_MONTH);
         }
 
-        if (!OwnerCarDto.LEASE_TYPE_MONTH.equals(reqJson.getString("leaseType"))) {
-            reqJson.put("startTime", DateUtil.getFormatTimeString(new Date(), DateUtil.DATE_FORMATE_STRING_B));
-            reqJson.put("endTime", "2037-01-01");
-        }
         JSONObject businessOwnerCar = new JSONObject();
         businessOwnerCar.putAll(reqJson);
         businessOwnerCar.put("memberId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_carId));
@@ -157,8 +172,8 @@
         JSONObject businessParkingSpace = new JSONObject();
 
         businessParkingSpace.putAll(BeanConvertUtil.beanCovertMap(parkingSpaceDto));
-        businessParkingSpace.put("state", reqJson.getString("carNumType"));
         ParkingSpacePo parkingSpacePo = BeanConvertUtil.covertBean(businessParkingSpace, ParkingSpacePo.class);
+        parkingSpacePo.setState("H"); //S 鍑哄敭  H 鍑虹  F 绌洪棽
         flag = parkingSpaceV1InnerServiceSMOImpl.updateParkingSpace(parkingSpacePo);
         if (flag < 1) {
             throw new CmdException("淇敼杞︿綅鐘舵�佸け璐�");

--
Gitblit v1.8.0