From bbb188d3fa5facc4b8b2626c66f94abce53fc38e Mon Sep 17 00:00:00 2001
From: 吴学文 <wuxuewen@wuxuewendeMacBook-Pro.local>
Date: 星期日, 09 六月 2019 21:56:06 +0800
Subject: [PATCH] 加入 车位出租功能
---
WebService/src/main/java/com/java110/web/smo/impl/FeeServiceSMOImpl.java | 209 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 201 insertions(+), 8 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 30fc9f4..cd7b86c 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
@@ -1,15 +1,15 @@
package com.java110.web.smo.impl;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.FeeTypeConstant;
import com.java110.common.constant.PrivilegeCodeConstant;
-import com.java110.common.constant.ResponseConstant;
import com.java110.common.constant.ServiceConstant;
-import com.java110.common.exception.SMOException;
import com.java110.common.util.Assert;
+import com.java110.common.util.StringUtil;
import com.java110.core.context.IPageData;
import com.java110.web.core.BaseComponentSMO;
import com.java110.web.smo.IFeeServiceSMO;
-import com.java110.web.smo.IRoomServiceSMO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -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,16 +51,192 @@
String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
//鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
- paramIn.put("userId", pd.getUserId());
+ paramIn.put("feeTypeCd", feeTypeCd);
+ 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/room.saveRoom",
+ 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;
+ }
+
+ @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; }
+
+ /**
+ * @param pd 椤甸潰鏁版嵁灏佽瀵硅薄
+ * @return
+ */
+ @Override
+ public ResponseEntity<String> saveOrUpdatePropertyFeeConfig(IPageData pd) {
+ validateLoadPropertyConfigFee(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);
+ paramIn.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_PROPERTY);
+ 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;
}
+ 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"), "璐圭敤绫诲瀷涓嶈兘涓虹┖");
+ }
+
+ /**
+ * 鏍¢獙缂磋垂鍙傛暟
+ * @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涓嶈兘涓虹┖");
+ }
/**
* 灏忓尯鎴垮眿鏌ヨ鏁版嵁鏍¢獙
@@ -72,6 +248,25 @@
JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+ }
+
+ /**
+ * 鏍¢獙鏁版嵁鍚堟硶鎬�
+ *
+ * @param pd
+ */
+ private void validateSaveOrUpdatePropertyFeeConfig(IPageData pd) {
+ Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+ Assert.jsonObjectHaveKey(pd.getReqData(), "squarePrice", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+ Assert.jsonObjectHaveKey(pd.getReqData(), "additionalAmount", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+
+
+ JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+ Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+ Assert.isMoney(paramIn.getString("squarePrice"), "涓嶆槸鏈夋晥閲戦鏍煎紡");
+ Assert.isMoney(paramIn.getString("additionalAmount"), "涓嶆槸鏈夋晥閲戦鏍煎紡");
+
+
}
/**
@@ -109,8 +304,6 @@
}
}
-
-
public RestTemplate getRestTemplate() {
--
Gitblit v1.8.0