From 9e29441646434d9f54a2c3e855a724633885d8a4 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 13 八月 2019 19:43:49 +0800
Subject: [PATCH] 缓存开发测试完成

---
 WebService/src/main/java/com/java110/web/smo/impl/FeeServiceSMOImpl.java |  318 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 316 insertions(+), 2 deletions(-)

diff --git a/WebService/src/main/java/com/java110/web/smo/impl/FeeServiceSMOImpl.java b/WebService/src/main/java/com/java110/web/smo/impl/FeeServiceSMOImpl.java
index 944c480..c6789a0 100644
--- a/WebService/src/main/java/com/java110/web/smo/impl/FeeServiceSMOImpl.java
+++ b/WebService/src/main/java/com/java110/web/smo/impl/FeeServiceSMOImpl.java
@@ -32,7 +32,7 @@
     private RestTemplate restTemplate;
 
     @Override
-    public ResponseEntity<String> loadPropertyConfigFee(IPageData pd) {
+    public ResponseEntity<String> loadPropertyConfigFee(IPageData pd, String feeTypeCd) {
         validateLoadPropertyConfigFee(pd);
 
         //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
@@ -51,7 +51,9 @@
         String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
         //鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
         super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
-        paramIn.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_PROPERTY);
+        if (!StringUtil.isEmpty(feeTypeCd)) {
+            paramIn.put("feeTypeCd", feeTypeCd);
+        }
         responseEntity = this.callCenterService(restTemplate, pd, "",
                 ServiceConstant.SERVICE_API_URL + "/api/fee.queryFeeConfig" + mapToUrlParam(paramIn),
                 HttpMethod.GET);
@@ -73,6 +75,170 @@
         }
 
 
+        return responseEntity;
+    }
+
+
+    @Override
+    public ResponseEntity<String> loadParkingSpaceConfigFee(IPageData pd) {
+        validateLoadPropertyConfigFee(pd);
+
+        //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PARKING_SPACE_CONFIG_FEE);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛绫诲瀷澶辫触锛屾湭鍖呭惈storeTypeCd鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                ServiceConstant.SERVICE_API_URL + "/api/fee.queryFeeConfig" + mapToUrlParam(paramIn),
+                HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        JSONArray feeConfigs = JSONArray.parseArray(responseEntity.getBody().toString());
+
+        if (feeConfigs != null && feeConfigs.size() > 1) {
+            responseEntity = new ResponseEntity<String>("鏁版嵁寮傚父锛岃妫�鏌ラ厤缃暟鎹�", HttpStatus.BAD_REQUEST);
+            return responseEntity;
+        }
+
+        if (feeConfigs != null && feeConfigs.size() > 0) {
+            responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(feeConfigs.get(0)), HttpStatus.OK);
+        } else {
+            responseEntity = new ResponseEntity<String>("{}", HttpStatus.OK);
+
+        }
+
+
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> payFee(IPageData pd) {
+        validatePayFee(pd);
+
+        //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PROPERTY_FEE);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛绫诲瀷澶辫触锛屾湭鍖呭惈storeTypeCd鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                ServiceConstant.SERVICE_API_URL + "/api/fee.payFee",
+                HttpMethod.POST);
+
+
+        return responseEntity;
+    }
+
+    /**
+     * 鏌ヨ涓昏垂鐢�
+     *
+     * @param pd 椤甸潰鏁版嵁灏佽瀵硅薄
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> loadFeeByRoomId(IPageData pd) {
+        validateLoadFee(pd);
+
+        //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PROPERTY_CONFIG_FEE);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛绫诲瀷澶辫触锛屾湭鍖呭惈storeTypeCd鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                ServiceConstant.SERVICE_API_URL + "/api/fee.queryFee" + mapToUrlParam(paramIn),
+                HttpMethod.GET);
+        return responseEntity;
+    }
+
+
+    /**
+     * 鏌ヨ涓昏垂鐢�
+     *
+     * @param pd 椤甸潰鏁版嵁灏佽瀵硅薄
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> loadFeeByPsId(IPageData pd) {
+        validateLoadParkingSpaceFee(pd);
+
+        //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PARKING_SPACE);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛绫诲瀷澶辫触锛屾湭鍖呭惈storeTypeCd鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                ServiceConstant.SERVICE_API_URL + "/api/fee.queryFeeByParkingSpace" + mapToUrlParam(paramIn),
+                HttpMethod.GET);
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> loadFeeDetail(IPageData pd) {
+        validateLoadFeeDetail(pd);
+
+        //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PROPERTY_FEE);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛绫诲瀷澶辫触锛屾湭鍖呭惈storeTypeCd鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                ServiceConstant.SERVICE_API_URL + "/api/fee.queryFeeDetail" + mapToUrlParam(paramIn),
+                HttpMethod.GET);
         return responseEntity;
     }
 
@@ -116,6 +282,137 @@
 
 
     /**
+     * @param pd 椤甸潰鏁版嵁灏佽瀵硅薄
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> saveOrUpdateParkingSpaceFeeConfig(IPageData pd) {
+        validateLoadParkingSpaceConfigFee(pd);
+
+        //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PARKING_SPACE_CONFIG_FEE);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛绫诲瀷澶辫触锛屾湭鍖呭惈storeTypeCd鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+
+        if (!paramIn.containsKey("configId") || StringUtil.isEmpty(paramIn.getString("configId"))) {
+            responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                    ServiceConstant.SERVICE_API_URL + "/api/fee.saveFeeConfig",
+                    HttpMethod.POST);
+        } else {
+            responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                    ServiceConstant.SERVICE_API_URL + "/api/fee.updateFeeConfig",
+                    HttpMethod.POST);
+        }
+
+        return responseEntity;
+    }
+
+    @Override
+    public ResponseEntity<String> listArrearsFee(IPageData pd) {
+        validateListFee(pd);
+
+        //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
+        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PARKING_SPACE_CONFIG_FEE);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛绫诲瀷澶辫触锛屾湭鍖呭惈storeTypeCd鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                ServiceConstant.SERVICE_API_URL + "/api/fee.queryArrearsFee" + super.mapToUrlParam(paramIn),
+                HttpMethod.GET);
+
+        return responseEntity;
+    }
+
+
+    private void validateLoadFee(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "roomId", "璇锋眰鎶ユ枃涓湭鍖呭惈roomId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "feeTypeCd", "璇锋眰鎶ユ枃涓湭鍖呭惈feeTypeCd鑺傜偣");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("roomId"), "鎴垮眿ID涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("feeTypeCd"), "璐圭敤绫诲瀷涓嶈兘涓虹┖");
+    }
+
+
+    private void validateLoadParkingSpaceFee(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "psId", "璇锋眰鎶ユ枃涓湭鍖呭惈psId鑺傜偣");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("psId"), "鍋滆溅浣岻D涓嶈兘涓虹┖");
+    }
+
+
+    private void validateListFee(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "feeTypeCd", "璇锋眰鎶ユ枃涓湭鍖呭惈feeTypeCd鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "row", "璇锋眰鎶ユ枃涓湭鍖呭惈row鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "page", "璇锋眰鎶ユ枃涓湭鍖呭惈page鑺傜偣");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("feeTypeCd"), "鍋滆溅浣峟eeTypeCd涓嶈兘涓虹┖");
+        Assert.isInteger(paramIn.getString("row"), "row蹇呴』涓烘暟瀛�");
+        Assert.isInteger(paramIn.getString("page"), "page蹇呴』涓烘暟瀛�");
+    }
+
+
+    /**
+     * 鏍¢獙缂磋垂鍙傛暟
+     *
+     * @param pd
+     */
+    private void validatePayFee(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "cycles", "璇锋眰鎶ユ枃涓湭鍖呭惈cycles鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "receivedAmount", "璇锋眰鎶ユ枃涓湭鍖呭惈receivedAmount鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "feeId", "璇锋眰鎶ユ枃涓湭鍖呭惈feeId鑺傜偣");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("cycles"), "鍛ㄦ湡涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("receivedAmount"), "瀹炴敹閲戦涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("feeId"), "璐圭敤ID涓嶈兘涓虹┖");
+    }
+
+
+    private void validateLoadFeeDetail(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "feeId", "璇锋眰鎶ユ枃涓湭鍖呭惈roomId鑺傜偣");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("feeId"), "璐圭敤ID涓嶈兘涓虹┖");
+    }
+
+    /**
      * 灏忓尯鎴垮眿鏌ヨ鏁版嵁鏍¢獙
      *
      * @param pd 椤甸潰鏁版嵁灏佽瀵硅薄
@@ -128,6 +425,23 @@
     }
 
     /**
+     * 灏忓尯鎴垮眿鏌ヨ鏁版嵁鏍¢獙
+     *
+     * @param pd 椤甸潰鏁版嵁灏佽瀵硅薄
+     */
+    private void validateLoadParkingSpaceConfigFee(IPageData pd) {
+        validateLoadPropertyConfigFee(pd);
+
+        Assert.jsonObjectHaveKey(pd.getReqData(), "feeTypeCd", "璇锋眰鎶ユ枃涓湭鍖呭惈feeTypeCd鑺傜偣");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("feeTypeCd"), "璐圭敤绫诲瀷涓嶈兘涓虹┖");
+
+
+    }
+
+
+    /**
      * 鏍¢獙鏁版嵁鍚堟硶鎬�
      *
      * @param pd

--
Gitblit v1.8.0