From 50a0b28ee00d4510150d93a9411ada0e3d256ac2 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 24 九月 2019 17:43:55 +0800
Subject: [PATCH] 楼栋 单元 批量导入开发完成

---
 WebService/src/main/java/com/java110/web/smo/impl/RoomServiceSMOImpl.java |  214 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 214 insertions(+), 0 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 c3730a6..5b82866 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,6 +1,8 @@
 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;
@@ -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;
 
 /**
  * 鎴垮眿鏈嶅姟瀹炵幇绫�
@@ -89,6 +94,74 @@
         return responseEntity;
     }
 
+    @Override
+    public ResponseEntity<String> listRoomByOwner(IPageData pd) {
+        validateListRoomByOwner(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);
+
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/room.queryRoomsByOwner" + mapToUrlParam(paramIn);
+
+        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;
+    }
+
 
     @Override
     public ResponseEntity<String> listRoomWithOutSell(IPageData pd) {
@@ -114,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,
@@ -177,6 +281,116 @@
         return responseEntity;
     }
 
+    @Override
+    public ResponseEntity<String> sellRoom(IPageData pd) {
+
+        validateSellRoom(pd);
+
+        //鏍¢獙鍛樺伐鏄惁鏈夋潈闄愭搷浣�
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_SELL_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.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涓嶈兘涓虹┖");
+
+    }
+
+    /**
+     * 灏忓尯鎴垮眿鏌ヨ鏁版嵁鏍¢獙
+     *
+     * @param pd 椤甸潰鏁版嵁灏佽瀵硅薄
+     */
+    private void validateSellRoom(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "ownerId", "璇锋眰鎶ユ枃涓湭鍖呭惈ownerId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "roomId", "璇锋眰鎶ユ枃涓湭鍖呭惈roomId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "state", "璇锋眰鎶ユ枃涓湭鍖呭惈state鑺傜偣");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("ownerId"), "ownerId涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("roomId"), "roomId涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("state"), "state涓嶈兘涓虹┖");
+
+    }
+
+    /**
+     * 鏍¢獙鏍规嵁涓氫富鏌ヨ鎴垮眿淇℃伅
+     *
+     * @param pd 椤甸潰鏁版嵁灏佽
+     */
+    private void validateListRoomByOwner(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId鑺傜偣");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "ownerId", "璇锋眰鎶ユ枃涓湭鍖呭惈ownerId鑺傜偣");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("ownerId"), "ownerId涓嶈兘涓虹┖");
+        Assert.hasLength(paramIn.getString("communityId"), "灏忓尯ID涓嶈兘涓虹┖");
+    }
 
     /**
      * 灏忓尯鎴垮眿鏌ヨ鏁版嵁鏍¢獙

--
Gitblit v1.8.0