From 4348c321dfe200e4cdc430b1dc5b1caef4991261 Mon Sep 17 00:00:00 2001
From: 吴学文 <wuxuewen@wuxuewendeMacBook-Pro.local>
Date: 星期四, 18 四月 2019 23:46:00 +0800
Subject: [PATCH] 入驻小区 和退订开发测试完成

---
 WebService/src/main/java/com/java110/web/smo/impl/CommunityServiceSMOImpl.java |  144 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 143 insertions(+), 1 deletions(-)

diff --git a/WebService/src/main/java/com/java110/web/smo/impl/CommunityServiceSMOImpl.java b/WebService/src/main/java/com/java110/web/smo/impl/CommunityServiceSMOImpl.java
index 43943fd..1e902be 100644
--- a/WebService/src/main/java/com/java110/web/smo/impl/CommunityServiceSMOImpl.java
+++ b/WebService/src/main/java/com/java110/web/smo/impl/CommunityServiceSMOImpl.java
@@ -1,8 +1,11 @@
 package com.java110.web.smo.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.common.cache.MappingCache;
+import com.java110.common.constant.AttrCdConstant;
 import com.java110.common.constant.MappingConstant;
+import com.java110.common.constant.PrivilegeCodeConstant;
 import com.java110.common.constant.ServiceConstant;
 import com.java110.common.util.Assert;
 import com.java110.core.context.IPageData;
@@ -16,6 +19,7 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
+import org.thymeleaf.util.StringUtils;
 
 /**
  * 灏忓尯鏈嶅姟绫�
@@ -33,6 +37,8 @@
     public ResponseEntity<String> listMyCommunity(IPageData pd) {
         ResponseEntity<String> responseEntity = null;
         JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
+        //鏉冮檺鏍¢獙
+        checkUserHasPrivilege(pd,restTemplate, PrivilegeCodeConstant.PRIVILEGE_ENTER_COMMUNITY);
         responseEntity = super.getStoreInfo(pd,restTemplate);
         if(responseEntity.getStatusCode() != HttpStatus.OK){
             return responseEntity;
@@ -51,11 +57,147 @@
         if(responseEntity.getStatusCode() != HttpStatus.OK){
             return responseEntity;
         }
-        responseEntity = new ResponseEntity<String>(JSONObject.parseObject(responseEntity.getBody().toString()).getJSONArray("communitys").toJSONString(),
+        JSONArray tmpCommunitys = JSONObject.parseObject(responseEntity.getBody().toString()).getJSONArray("communitys");
+        freshCommunityAttr(tmpCommunitys);
+        responseEntity = new ResponseEntity<String>(tmpCommunitys.toJSONString(),
                 HttpStatus.OK);
         return responseEntity;
     }
 
+    /**
+     * 鏌ヨ鏈叆椹荤殑灏忓尯
+     * @param pd
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> listNoEnterCommunity(IPageData pd) {
+        ResponseEntity<String> responseEntity = null;
+        JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
+        //鏉冮檺鏍¢獙
+        checkUserHasPrivilege(pd,restTemplate, PrivilegeCodeConstant.PRIVILEGE_ENTER_COMMUNITY);
+        responseEntity = super.getStoreInfo(pd,restTemplate);
+        if(responseEntity.getStatusCode() != HttpStatus.OK){
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(),"storeId","鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        String communityName = !_paramObj.containsKey("communityName")?"":_paramObj.getString("communityName");
+        //淇敼鐢ㄦ埛淇℃伅
+        if(StringUtils.isEmpty(communityName)) {
+            responseEntity = this.callCenterService(restTemplate, pd, "",
+                    ServiceConstant.SERVICE_API_URL + "/api/query.noEnterCommunity.byMember?memberId=" + storeId +
+                            "&memberTypeCd=" + MappingCache.getValue(MappingConstant.DOMAIN_STORE_TYPE_2_COMMUNITY_MEMBER_TYPE, storeTypeCd),
+                    HttpMethod.GET);
+        }else{
+            responseEntity = this.callCenterService(restTemplate, pd, "",
+                    ServiceConstant.SERVICE_API_URL + "/api/query.noEnterCommunity.byMemberAndName?memberId=" + storeId +
+                            "&memberTypeCd=" + MappingCache.getValue(MappingConstant.DOMAIN_STORE_TYPE_2_COMMUNITY_MEMBER_TYPE, storeTypeCd)
+                    +"&name="+communityName,
+                    HttpMethod.GET);
+        }
+
+        if(responseEntity.getStatusCode() != HttpStatus.OK){
+            return responseEntity;
+        }
+
+        JSONArray tmpCommunitys = JSONObject.parseObject(responseEntity.getBody().toString()).getJSONArray("communitys");
+        freshCommunityAttr(tmpCommunitys);
+        responseEntity = new ResponseEntity<String>(tmpCommunitys.toJSONString(),
+                HttpStatus.OK);
+        return responseEntity;
+    }
+
+
+    /**
+     * 鍟嗘埛鍏ラ┗鐢宠鎺ュ彛
+     * @param pd
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> _saveEnterCommunity(IPageData pd) {
+
+        ResponseEntity<String> responseEntity = null;
+        Assert.jsonObjectHaveKey(pd.getReqData(),"communityId","璇锋眰淇℃伅涓湭鍖呭惈communityId");
+        JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
+
+        String communityId = _paramObj.getString("communityId");
+
+        //鏉冮檺鏍¢獙
+        checkUserHasPrivilege(pd,restTemplate, PrivilegeCodeConstant.PRIVILEGE_ENTER_COMMUNITY);
+        responseEntity = super.getStoreInfo(pd,restTemplate);
+        if(responseEntity.getStatusCode() != HttpStatus.OK){
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(),"storeId","鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        _paramObj.put("memberId",storeId);
+        _paramObj.put("memberTypeCd",MappingCache.getValue(MappingConstant.DOMAIN_STORE_TYPE_2_COMMUNITY_MEMBER_TYPE,storeTypeCd));
+
+        responseEntity = this.callCenterService(restTemplate, pd, _paramObj.toJSONString(),
+                ServiceConstant.SERVICE_API_URL + "/api/member.join.community",
+                HttpMethod.POST);
+
+        return responseEntity;
+    }
+
+    /**
+     * 閫�鍑哄皬鍖�
+     * @param pd
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> exitCommunity(IPageData pd) {
+        ResponseEntity<String> responseEntity = null;
+        Assert.jsonObjectHaveKey(pd.getReqData(),"communityId","璇锋眰淇℃伅涓湭鍖呭惈communityId");
+        JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
+
+        String communityId = _paramObj.getString("communityId");
+
+        Assert.hasLength(communityId,"璇锋眰鎶ユ枃涓璫ommunityId涓虹┖");
+
+        //鏉冮檺鏍¢獙
+        checkUserHasPrivilege(pd,restTemplate, PrivilegeCodeConstant.PRIVILEGE_ENTER_COMMUNITY);
+        responseEntity = super.getStoreInfo(pd,restTemplate);
+        if(responseEntity.getStatusCode() != HttpStatus.OK){
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(),"storeId","鏍规嵁鐢ㄦ埛ID鏌ヨ鍟嗘埛ID澶辫触锛屾湭鍖呭惈storeId鑺傜偣");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        JSONObject paramInObj = new JSONObject();
+        paramInObj.put("communityId",communityId);
+        paramInObj.put("memberId",storeId);
+        paramInObj.put("memberTypeCd",MappingCache.getValue(MappingConstant.DOMAIN_STORE_TYPE_2_COMMUNITY_MEMBER_TYPE,storeTypeCd));
+
+        responseEntity = this.callCenterService(restTemplate, pd, paramInObj.toJSONString(),
+                ServiceConstant.SERVICE_API_URL + "/api/member.quit.community",
+                HttpMethod.POST);
+
+        return responseEntity;
+    }
+
+
+    private void freshCommunityAttr(JSONArray community){
+        for(int _communityIndex = 0 ;_communityIndex < community.size();_communityIndex++){
+            JSONObject _community = community.getJSONObject(_communityIndex);
+            if(!_community.containsKey("attrs")){
+                continue;
+            }
+            JSONArray _attrs = _community.getJSONArray("attrs");
+            for(int _cAttrIndex = 0;_cAttrIndex < _attrs.size();_cAttrIndex++){
+                if(AttrCdConstant.SPEC_CD_COMMUNITY_TEL.equals(_attrs.getJSONObject(_cAttrIndex).getString("specCd"))){
+                    _community.put("tel",_attrs.getJSONObject(_cAttrIndex).getString("value"));
+                }
+            }
+
+        }
+
+    }
     public RestTemplate getRestTemplate() {
         return restTemplate;
     }

--
Gitblit v1.8.0