From d7923523b0116c8055a3d3008a2fb1c29e57e81d Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 15 九月 2019 11:24:44 +0800
Subject: [PATCH] 优化 车位出售问题

---
 WebService/src/main/java/com/java110/web/smo/impl/CarServiceSMOImpl.java |   72 +++++++++++++++++++++++++++---------
 1 files changed, 54 insertions(+), 18 deletions(-)

diff --git a/WebService/src/main/java/com/java110/web/smo/impl/CarServiceSMOImpl.java b/WebService/src/main/java/com/java110/web/smo/impl/CarServiceSMOImpl.java
index 762bf65..e55477d 100644
--- a/WebService/src/main/java/com/java110/web/smo/impl/CarServiceSMOImpl.java
+++ b/WebService/src/main/java/com/java110/web/smo/impl/CarServiceSMOImpl.java
@@ -106,13 +106,18 @@
         //鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
         super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
 
-        JSONObject viewSelectParkingSpace = this.getObj(infos,"viewSelectParkingSpace");
-        JSONObject viewOwnerInfo = this.getObj(infos,"viewOwnerInfo");
-        JSONObject addCar = this.getObj(infos,"addCar");
-        JSONObject hireParkingSpaceFee = this.getObj(infos,"hireParkingSpaceFee");
+        JSONObject viewSelectParkingSpace = this.getObj(infos, "viewSelectParkingSpace");
+        JSONObject viewOwnerInfo = this.getObj(infos, "viewOwnerInfo");
+        JSONObject addCar = this.getObj(infos, "addCar");
+        JSONObject parkingSpaceFee = null;
+        if(hasThisFlowComponent(infos, "hireParkingSpaceFee")) {
+            parkingSpaceFee = this.getObj(infos, "hireParkingSpaceFee");
+        }else{
+            parkingSpaceFee = this.getObj(infos, "sellParkingSpaceFee");
+        }
         JSONObject newParamIn = new JSONObject();
         newParamIn.putAll(addCar);
-        newParamIn.putAll(hireParkingSpaceFee);
+        newParamIn.putAll(parkingSpaceFee);
         newParamIn.put("communityId", communityId);
         newParamIn.put("ownerId", viewOwnerInfo.getString("ownerId"));
         newParamIn.put("psId", viewSelectParkingSpace.getString("psId"));
@@ -240,7 +245,7 @@
 
         JSONArray infos = info.getJSONArray("data");
 
-        if(infos.size() != 4){
+        if (infos.size() != 4) {
             throw new IllegalArgumentException("鏁版嵁琚鏀�");
         }
 
@@ -250,28 +255,36 @@
         Assert.hasKeyByFlowData(infos, "addCar", "carBrand", "璇锋眰鎶ユ枃涓湭鍖呭惈carBrand");
         Assert.hasKeyByFlowData(infos, "addCar", "carType", "璇锋眰鎶ユ枃涓湭鍖呭惈carType");
         Assert.hasKeyByFlowData(infos, "addCar", "carColor", "鏈寘鍚玞arColor");
-        Assert.hasKeyByFlowData(infos, "hireParkingSpaceFee", "receivedAmount", "鏈寘鍚玶eceivedAmount");
-        Assert.hasKeyByFlowData(infos, "hireParkingSpaceFee", "sellOrHire", "鏈寘鍚玸ellOrHire");
 
-       JSONObject viewSelectParkingSpace = this.getObj(infos,"viewSelectParkingSpace");
-       JSONObject viewOwnerInfo = this.getObj(infos,"viewOwnerInfo");
-       JSONObject addCar = this.getObj(infos,"addCar");
-       JSONObject hireParkingSpaceFee = this.getObj(infos,"hireParkingSpaceFee");
+        JSONObject parkingSpaceFee = null;
+        if (hasThisFlowComponent(infos, "hireParkingSpaceFee")) {
+            Assert.hasKeyByFlowData(infos, "hireParkingSpaceFee", "receivedAmount", "鏈寘鍚玶eceivedAmount");
+            Assert.hasKeyByFlowData(infos, "hireParkingSpaceFee", "sellOrHire", "鏈寘鍚玸ellOrHire");
+             parkingSpaceFee = this.getObj(infos, "hireParkingSpaceFee");
+        }else{
+            Assert.hasKeyByFlowData(infos, "sellParkingSpaceFee", "receivedAmount", "鏈寘鍚玶eceivedAmount");
+            Assert.hasKeyByFlowData(infos, "sellParkingSpaceFee", "sellOrHire", "鏈寘鍚玸ellOrHire");
+            parkingSpaceFee = this.getObj(infos, "sellParkingSpaceFee");
+        }
+
+        JSONObject viewSelectParkingSpace = this.getObj(infos, "viewSelectParkingSpace");
+        JSONObject viewOwnerInfo = this.getObj(infos, "viewOwnerInfo");
+        JSONObject addCar = this.getObj(infos, "addCar");
 
 
         Assert.hasLength(info.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
         Assert.hasLength(viewOwnerInfo.getString("ownerId"), "ownerId涓嶈兘涓虹┖");
         Assert.hasLength(viewSelectParkingSpace.getString("psId"), "psId涓嶈兘涓虹┖");
-        Assert.hasLength(hireParkingSpaceFee.getString("receivedAmount"), "receivedAmount涓嶈兘涓虹┖");
+        Assert.hasLength(parkingSpaceFee.getString("receivedAmount"), "receivedAmount涓嶈兘涓虹┖");
 
-        if(!"H".equals(hireParkingSpaceFee.getString("sellOrHire"))
-                && !"S".equals(hireParkingSpaceFee.getString("sellOrHire"))){
+        if (!"H".equals(parkingSpaceFee.getString("sellOrHire"))
+                && !"S".equals(parkingSpaceFee.getString("sellOrHire"))) {
             throw new IllegalArgumentException("鍏ュ弬閿欒锛屾棤娉曡瘑鍒鎿嶄綔");
         }
 
-        if("H".equals(hireParkingSpaceFee.getString("sellOrHire"))){
-            Assert.jsonObjectHaveKey(hireParkingSpaceFee, "cycles", "鏈寘鍚玞ycles");
-            Assert.hasLength(hireParkingSpaceFee.getString("cycles"), "cycles涓嶈兘涓虹┖");
+        if ("H".equals(parkingSpaceFee.getString("sellOrHire"))) {
+            Assert.jsonObjectHaveKey(parkingSpaceFee, "cycles", "鏈寘鍚玞ycles");
+            Assert.hasLength(parkingSpaceFee.getString("cycles"), "cycles涓嶈兘涓虹┖");
         }
     }
 
@@ -297,6 +310,7 @@
         }
 
     }
+
     /**
      * 鏍¢獙鏌ヨ灏忓尯妤间俊鎭�
      *
@@ -329,6 +343,28 @@
         throw new IllegalArgumentException("鏈壘鍒扮粍浠剁紪鐮佷负銆�" + flowComponent + "銆戞暟鎹�");
     }
 
+    /**
+     * 鏄惁鏈� 杩欎釜缁勪欢
+     *
+     * @param infos                鎵�鏈夌粍浠朵俊鎭�
+     * @param currentFlowComponent 褰撳墠缁勪欢
+     * @return
+     */
+    private boolean hasThisFlowComponent(JSONArray infos, String currentFlowComponent) {
+        JSONObject serviceInfo = null;
+
+        for (int infoIndex = 0; infoIndex < infos.size(); infoIndex++) {
+            serviceInfo = infos.getJSONObject(infoIndex);
+
+            if (currentFlowComponent.equals(serviceInfo.getString("flowComponent"))) {
+                return true;
+            }
+
+        }
+
+        return false;
+    }
+
 
     public RestTemplate getRestTemplate() {
         return restTemplate;

--
Gitblit v1.8.0