From 931de723fe558cd45a4fd7b8928cc32360dcb909 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 04 二月 2020 13:43:41 +0800
Subject: [PATCH] 优化没有权限报错
---
WebService/src/main/java/com/java110/web/smo/impl/RoomServiceSMOImpl.java | 145 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 134 insertions(+), 11 deletions(-)
diff --git a/WebService/src/main/java/com/java110/web/smo/impl/RoomServiceSMOImpl.java b/WebService/src/main/java/com/java110/web/smo/impl/RoomServiceSMOImpl.java
index ff49b42..b373f7d 100644
--- a/WebService/src/main/java/com/java110/web/smo/impl/RoomServiceSMOImpl.java
+++ b/WebService/src/main/java/com/java110/web/smo/impl/RoomServiceSMOImpl.java
@@ -1,13 +1,15 @@
package com.java110.web.smo.impl;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-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.utils.constant.FeeTypeConstant;
+import com.java110.utils.constant.PrivilegeCodeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.exception.SMOException;
+import com.java110.utils.util.Assert;
import com.java110.core.context.IPageData;
-import com.java110.web.core.BaseComponentSMO;
+import com.java110.core.component.BaseComponentSMO;
import com.java110.web.smo.IRoomServiceSMO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -17,6 +19,9 @@
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
+
+import java.util.HashMap;
+import java.util.Map;
/**
* 鎴垮眿鏈嶅姟瀹炵幇绫�
@@ -117,6 +122,43 @@
responseEntity = this.callCenterService(restTemplate, pd, "",
apiUrl,
HttpMethod.GET);
+
+ //fee.queryFee
+
+ if (responseEntity.getStatusCode() != HttpStatus.OK) {
+ return responseEntity;
+ }
+
+ JSONObject roomInfo = JSONObject.parseObject(responseEntity.getBody().toString());
+ JSONArray rooms = roomInfo.getJSONArray("rooms");
+
+ Map feeMap = null;
+ JSONObject resultFeeInfo = null;
+ JSONObject roomObj = null;
+ for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
+ roomObj = rooms.getJSONObject(roomIndex);
+ feeMap = new HashMap();
+ feeMap.put("communityId", communityId);
+ feeMap.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_PROPERTY);
+ feeMap.put("roomId", roomObj.getString("roomId"));
+ apiUrl = ServiceConstant.SERVICE_API_URL + "/api/fee.queryFee" + mapToUrlParam(feeMap);
+ responseEntity = this.callCenterService(restTemplate, pd, "",
+ apiUrl,
+ HttpMethod.GET);
+
+ if (responseEntity.getStatusCode() != HttpStatus.OK) {
+ //throw new SMOException(ResponseConstant.RESULT_CODE_ERROR, "褰撳墠鎴垮眿[" + roomObj.getString("roomNum") + "]娌℃湁鐗╀笟璐逛俊鎭紝鏁版嵁閿欒");
+
+ continue;
+ }
+
+ resultFeeInfo = JSONObject.parseObject(responseEntity.getBody().toString());
+ roomObj.putAll(resultFeeInfo);
+
+ }
+
+ responseEntity = new ResponseEntity(roomInfo.toJSONString(), HttpStatus.OK);
+
return responseEntity;
}
@@ -145,6 +187,37 @@
super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/room.queryRoomsWithOutSell" + mapToUrlParam(paramIn);
+
+ responseEntity = this.callCenterService(restTemplate, pd, "",
+ apiUrl,
+ HttpMethod.GET);
+ return responseEntity;
+ }
+
+ @Override
+ public ResponseEntity<String> listRoomWithSell(IPageData pd) {
+ validateListRoom(pd);
+
+ //鏍¢獙鐢ㄦ埛鏄惁鏈夋潈闄�
+ super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_ROOM);
+
+ 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);
+
+ String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/room.queryRoomsWithSell" + mapToUrlParam(paramIn);
responseEntity = this.callCenterService(restTemplate, pd, "",
apiUrl,
@@ -230,11 +303,60 @@
//鏁版嵁鏍¢獙鏄惁 鍟嗘埛鏄惁鍏ラ┗璇ュ皬鍖�
super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
paramIn.put("userId", pd.getUserId());
+ paramIn.put("storeId", storeId);
responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
ServiceConstant.SERVICE_API_URL + "/api/room.sellRoom",
HttpMethod.POST);
return responseEntity;
+ }
+
+ @Override
+ public ResponseEntity<String> exitRoom(IPageData pd) {
+
+ validateExitRoom(pd);
+ //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
+ super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_OWNER_ROOM);
+
+ 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("userId", pd.getUserId());
+ paramIn.put("storeId", storeId);
+ responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+ ServiceConstant.SERVICE_API_URL + "/api/room.exitRoom",
+ HttpMethod.POST);
+
+ return responseEntity;
+
+ }
+
+
+ /**
+ * 灏忓尯鎴垮眿鏌ヨ鏁版嵁鏍¢獙
+ *
+ * @param pd 椤甸潰鏁版嵁灏佽瀵硅薄
+ */
+ private void validateExitRoom(IPageData pd) {
+ Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+ Assert.jsonObjectHaveKey(pd.getReqData(), "ownerId", "璇锋眰鎶ユ枃涓湭鍖呭惈ownerId鑺傜偣");
+ Assert.jsonObjectHaveKey(pd.getReqData(), "roomId", "璇锋眰鎶ユ枃涓湭鍖呭惈roomId鑺傜偣");
+
+ JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+ Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+ Assert.hasLength(paramIn.getString("ownerId"), "ownerId涓嶈兘涓虹┖");
+ Assert.hasLength(paramIn.getString("roomId"), "roomId涓嶈兘涓虹┖");
+
}
/**
@@ -258,7 +380,8 @@
/**
* 鏍¢獙鏍规嵁涓氫富鏌ヨ鎴垮眿淇℃伅
- * @param pd
+ *
+ * @param pd 椤甸潰鏁版嵁灏佽
*/
private void validateListRoomByOwner(IPageData pd) {
Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
@@ -303,11 +426,11 @@
Assert.jsonObjectHaveKey(pd.getReqData(), "unitId", "璇锋眰鎶ユ枃涓湭鍖呭惈unitId鑺傜偣");
Assert.jsonObjectHaveKey(pd.getReqData(), "roomNum", "璇锋眰鎶ユ枃涓湭鍖呭惈roomNum鑺傜偣");
Assert.jsonObjectHaveKey(pd.getReqData(), "layer", "璇锋眰鎶ユ枃涓湭鍖呭惈layer鑺傜偣");
- Assert.jsonObjectHaveKey(pd.getReqData(), "section", "璇锋眰鎶ユ枃涓湭鍖呭惈section鑺傜偣");
+ /*Assert.jsonObjectHaveKey(pd.getReqData(), "section", "璇锋眰鎶ユ枃涓湭鍖呭惈section鑺傜偣");*/
Assert.jsonObjectHaveKey(pd.getReqData(), "apartment", "璇锋眰鎶ユ枃涓湭鍖呭惈apartment鑺傜偣");
Assert.jsonObjectHaveKey(pd.getReqData(), "builtUpArea", "璇锋眰鎶ユ枃涓湭鍖呭惈builtUpArea鑺傜偣");
Assert.jsonObjectHaveKey(pd.getReqData(), "state", "璇锋眰鎶ユ枃涓湭鍖呭惈state鑺傜偣");
- Assert.jsonObjectHaveKey(pd.getReqData(), "unitPrice", "璇锋眰鎶ユ枃涓湭鍖呭惈unitPrice鑺傜偣");
+ /*Assert.jsonObjectHaveKey(pd.getReqData(), "unitPrice", "璇锋眰鎶ユ枃涓湭鍖呭惈unitPrice鑺傜偣");*/
JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
Assert.hasLength(reqJson.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
@@ -315,9 +438,9 @@
Assert.isMoney(reqJson.getString("builtUpArea"), "寤虹瓚闈㈢Н鏁版嵁鏍煎紡閿欒");
Assert.isMoney(reqJson.getString("unitPrice"), "鎴垮眿鍗曚环鏁版嵁鏍煎紡閿欒");
- if (!"1010".equals(reqJson.getString("apartment")) && !"2020".equals(reqJson.getString("apartment"))) {
+ /* if (!"1010".equals(reqJson.getString("apartment")) && !"2020".equals(reqJson.getString("apartment"))) {
throw new IllegalArgumentException("涓嶆槸鏈夋晥鎴垮眿鎴峰瀷 浼犲叆鏁版嵁閿欒");
- }
+ }*/
if (!"2001".equals(reqJson.getString("state"))
&& !"2002".equals(reqJson.getString("state"))
--
Gitblit v1.8.0