From bd199ec0fa775f8ec6fbbad0c8ad082394d595db Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 05 八月 2021 14:09:22 +0800
Subject: [PATCH] 优化代码

---
 java110-core/src/main/java/com/java110/core/base/controller/BaseController.java |   90 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 74 insertions(+), 16 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java b/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java
old mode 100644
new mode 100755
index df2869b..255598d
--- a/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java
+++ b/java110-core/src/main/java/com/java110/core/base/controller/BaseController.java
@@ -1,20 +1,22 @@
 package com.java110.core.base.controller;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.core.context.IPageData;
-import com.java110.utils.constant.CommonConstant;
-import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.constant.ServiceConstant;
-import com.java110.utils.exception.NoAuthorityException;
-
-import com.java110.utils.util.StringUtil;
 import com.java110.core.base.AppBase;
 import com.java110.core.context.BusinessServiceDataFlow;
-import com.java110.core.factory.DataFlowFactory;
+import com.java110.core.context.IPageData;
 import com.java110.core.context.PageData;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
+import com.java110.core.factory.DataFlowFactory;
+import com.java110.core.smo.IGetCommunityStoreInfoSMO;
+import com.java110.dto.basePrivilege.BasePrivilegeDto;
+import com.java110.utils.cache.PrivilegeCache;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.NoAuthorityException;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.ui.Model;
 import org.springframework.web.client.RestTemplate;
@@ -28,6 +30,9 @@
  * Created by wuxw on 2017/2/23.
  */
 public class BaseController extends AppBase {
+
+    @Autowired
+    private IGetCommunityStoreInfoSMO getCommunityStoreInfoSMOImpl;
 
 
     /**
@@ -124,8 +129,29 @@
 
         headers.put("IP", getIpAddr(request));
 
-        headers.put("hostName", request.getLocalName());
+        //headers.put("hostName", request.getLocalName()); 杩欓噷瀵艰嚧閮ㄥ垎涓绘満 閫熷害姣旇緝鎱�
+        headers.put("hostName", "localhost");
         headers.put("port", request.getLocalPort() + "");
+
+        //澶勭悊app-id
+        if (headers.containsKey("app-id")) {
+            headers.put("app_id", headers.get("app-id"));
+        }
+
+        //澶勭悊transaction-id
+        if (headers.containsKey("transaction-id")) {
+            headers.put("transaction_id", headers.get("transaction-id"));
+        }
+
+        //澶勭悊req-time
+        if (headers.containsKey("req-time")) {
+            headers.put("req_time", headers.get("req-time"));
+        }
+
+        //澶勭悊req-time
+        if (headers.containsKey("user-id")) {
+            headers.put("user_id", headers.get("user-id"));
+        }
 
     }
 
@@ -261,15 +287,47 @@
             return;
         }
         JSONObject paramIn = new JSONObject();
-        paramIn.put("resource", resource);
+        //paramIn.put("resource", resource);
         paramIn.put("userId", pd.getUserId());
-        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
-                ServiceConstant.SERVICE_API_URL + "/api/basePrivilege.CheckUserHasResourceListener",
-                HttpMethod.POST);
 
-        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+        //鏍¢獙璧勬簮璺姴鏄惁瀹氫箟鏉冮檺
+        List<BasePrivilegeDto> basePrivilegeDtos = PrivilegeCache.getPrivileges();
+        if (basePrivilegeDtos == null || basePrivilegeDtos.size() < 1) {
+            return;
+        }
+        String tmpResource = null;
+        boolean hasPrivilege = false;
+        for (BasePrivilegeDto privilegeDto : basePrivilegeDtos) {
+            if (resource.equals(privilegeDto.getResource())) {
+                hasPrivilege = true;
+            }
+        }
+        if (!hasPrivilege) { //鏉冮檺娌℃湁閰嶇疆锛岀洿鎺ヨ烦杩�
+            return;
+        }
+
+        ResultVo resultVo = getCommunityStoreInfoSMOImpl.checkUserHasResourceListener(restTemplate, pd, paramIn, pd.getUserId());
+        if (resultVo == null || resultVo.getCode() != ResultVo.CODE_OK) {
             throw new UnsupportedOperationException("鐢ㄦ埛娌℃湁鏉冮檺鎿嶄綔");
         }
+        JSONArray privileges = JSONArray.parseArray(resultVo.getMsg());
+
+        hasPrivilege = false;
+        if (privileges == null || privileges.size() < 1) {
+            throw new UnsupportedOperationException("鐢ㄦ埛娌℃湁鏉冮檺鎿嶄綔");
+        }
+        for (int privilegeIndex = 0; privilegeIndex < privileges.size(); privilegeIndex++) {
+            tmpResource = privileges.getJSONObject(privilegeIndex).getString("resource");
+            if (resource.equals(tmpResource)) {
+                hasPrivilege = true;
+                break;
+            }
+        }
+        if (!hasPrivilege) {
+            throw new UnsupportedOperationException("鐢ㄦ埛娌℃湁鏉冮檺鎿嶄綔");
+        }
+
     }
 
+
 }

--
Gitblit v1.8.0