From c007f0ca1785db093d48f4846cda82fe8e955765 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 27 五月 2020 09:59:29 +0800
Subject: [PATCH] merage

---
 src/main/java/com/highdatas/mdm/util/UserRoleClient.java |  175 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 140 insertions(+), 35 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/util/UserRoleClient.java b/src/main/java/com/highdatas/mdm/util/UserRoleClient.java
index 883cf5b..2a559b1 100644
--- a/src/main/java/com/highdatas/mdm/util/UserRoleClient.java
+++ b/src/main/java/com/highdatas/mdm/util/UserRoleClient.java
@@ -6,55 +6,72 @@
 import com.highdatas.mdm.entity.TRole;
 import com.highdatas.mdm.entity.TUser;
 import com.highdatas.mdm.entity.TUserGroup;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Component;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
 import org.springframework.util.StringUtils;
 
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 
 @ConfigurationProperties(prefix = "user")
 @Component
+@Slf4j
 public class UserRoleClient {
 
     @Value("${user.url}")
     String url;
 
     String prefix ;
+    @Autowired
+    RedisClient redisClient;
 
-    private UserRoleClient() {
+    public UserRoleClient() {
         this.prefix = "/api/datacvg/";
     }
 
     public TUser getTUserById(String userId) {
+        Object redisValObj = redisClient.getRedisValObj(RedisClient.getRealRedisKey(userId));
+        if (redisValObj != null) {
+            JSONObject object = (JSONObject) redisValObj;
+            TUser user = JSONObject.parseObject(object.toJSONString(), TUser.class);
+            return user;
+        }
         String url = this.url + prefix + "user/selectUser";
-        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
-        params.set("userId",userId);
+        Map<String, String> params = new LinkedHashMap<>();
+        params.put("userId",userId);
         String s = HttpUtils.HttpRestClient(url, HttpMethod.POST, params, MediaType.APPLICATION_JSON);
+        log.info(s);
         JSONObject result = (JSONObject) JSON.parse(s);
         String sucess = result.getString(Constant.Success);
         if (StringUtils.isEmpty(sucess) || !Boolean.valueOf(sucess)) {
             return null;
         }else {
             JSONObject data = result.getJSONObject(Constant.Data);
+            data = data.getJSONObject(Constant.userDO);
             TUser user = JSON.toJavaObject(data, TUser.class);
             if (user == null){
                 return null;
             }
+            redisClient.putRedisValObj(RedisClient.getRealRedisKey(userId), user);
             return user;
         }
     }
 
     public TRole getRoleByRoleId(String roleId) {
+        Object redisValObj = redisClient.getRedisValObj(RedisClient.getRealRedisKey(roleId));
+        if (redisValObj != null) {
+            JSONObject object = (JSONObject) redisValObj;
+            TRole user = JSONObject.parseObject(object.toJSONString(), TRole.class);
+            return user;
+        }
         try {
             String url =  this.url + prefix + "role/selectRole";
-            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
-            params.set("roleId", roleId);
+            Map<String, String> params = new LinkedHashMap<>();
+            params.put("roleId", roleId);
             String s = HttpUtils.HttpRestClient(url, HttpMethod.POST, params, MediaType.APPLICATION_JSON);
             JSONObject result = (JSONObject) JSON.parse(s);
             String sucess = result.getString(Constant.Success);
@@ -66,6 +83,7 @@
                 if (role == null){
                     return null;
                 }
+                redisClient.putRedisValObj(RedisClient.getRealRedisKey(roleId), role);
                 return role;
             }
         }catch (Exception e){
@@ -76,10 +94,24 @@
     }
 
     public  List<TUserGroup> getUserGroupByUserId(String userId) {
+
+        String key = RedisClient.getRealRedisKey(userId + "-getUserGroupByUserId");
+        List<Object> redisList = redisClient.getRedisList(key);
+        if (redisList != null && !redisList.isEmpty()) {
+            List<TUserGroup> result = new ArrayList<>();
+            for (Object o : redisList) {
+                JSONObject object = (JSONObject) o;
+                TUserGroup menu = JSONObject.parseObject(object.toJSONString(), TUserGroup.class);
+                result.add(menu);
+            }
+            return result;
+        }
+
         String url =  this.url + prefix + "group/userGroupInfo";
-        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
-        params.set("userId",userId);
-        String s = HttpUtils.HttpRestClient(url, HttpMethod.POST, params, MediaType.APPLICATION_JSON);
+        Map<String, Object> params = new LinkedHashMap<>();
+        params.put("userId",userId);
+        String urlParamsByMap = HttpUtils.getUrlParamsByMap(params);
+        String s = HttpUtils.HttpRestClient(url, HttpMethod.POST, null,urlParamsByMap, MediaType.APPLICATION_JSON);
         JSONObject result = (JSONObject) JSON.parse(s);
         String sucess = result.getString(Constant.Success);
         if (StringUtils.isEmpty(sucess) || !Boolean.valueOf(sucess)) {
@@ -90,36 +122,61 @@
             if (tUserGroups == null || tUserGroups.isEmpty()) {
                 return null;
             }
+            redisClient.putRedisList(key, (tUserGroups));
             return tUserGroups;
         }
     }
 
     public  List<TRole> getTRoleListByUserId(String userId) {
-        String url =  this.url + prefix + "userRole/selectUserRole";
-        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
-        params.set("userId",userId);
+
+        String key = RedisClient.getRealRedisKey(userId + "-getTRoleListByUserId");
+        List<Object> redisList = redisClient.getRedisList(key);
+        if (redisList != null && !redisList.isEmpty()) {
+            List<TRole> result = new ArrayList<>();
+            for (Object o : redisList) {
+                JSONObject object = (JSONObject) o;
+                TRole menu = JSONObject.parseObject(object.toJSONString(), TRole.class);
+                result.add(menu);
+            }
+            return result;
+        }
+        String url =  this.url + prefix + "userRole/selectUserRoleList";
+        Map<String, String> params = new LinkedHashMap<>();
+        params.put("userId",userId);
         String s = HttpUtils.HttpRestClient(url, HttpMethod.POST, params, MediaType.APPLICATION_JSON);
         JSONObject result = (JSONObject) JSON.parse(s);
         String sucess = result.getString(Constant.Success);
         if (StringUtils.isEmpty(sucess) || !Boolean.valueOf(sucess)) {
             return null;
         }else {
-            JSONObject data = result.getJSONObject(Constant.Data);
-            JSONArray groupArray = data.getJSONArray("Unauthorized");
+            JSONArray groupArray = result.getJSONArray(Constant.Data);
             List<TRole> tRoles = JSONArray.parseArray(groupArray.toJSONString(), TRole.class);
             if (tRoles == null || tRoles.isEmpty()) {
                 return null;
             }
+            redisClient.putRedisList(key, tRoles);
             return tRoles;
         }
     }
 
     public List<TRole> getRoleListByGroupId(String groupId) {
+        String key = RedisClient.getRealRedisKey(groupId + "-getTRoleListByUserId");
+        List<Object> redisList = redisClient.getRedisList(key);
+        if (redisList != null && !redisList.isEmpty()) {
+            List<TRole> result = new ArrayList<>();
+            for (Object o : redisList) {
+                JSONObject object = (JSONObject) o;
+                TRole menu = JSONObject.parseObject(object.toJSONString(), TRole.class);
+                result.add(menu);
+            }
+            return result;
+        }
         try {
             String url =  this.url + prefix + "group/groupRoleInfo";
-            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
-            params.set("groupId", groupId);
-            String s = HttpUtils.HttpRestClient(url, HttpMethod.POST, params, MediaType.APPLICATION_JSON);
+            Map<String, Object> params = new LinkedHashMap<>();
+            params.put("groupId", groupId);
+            String urlParamsByMap = HttpUtils.getUrlParamsByMap(params);
+            String s = HttpUtils.HttpRestClient(url, HttpMethod.POST, null,urlParamsByMap, MediaType.APPLICATION_JSON);
             JSONObject result = (JSONObject) JSON.parse(s);
             String sucess = result.getString(Constant.Success);
             if (StringUtils.isEmpty(sucess) || !Boolean.valueOf(sucess)) {
@@ -130,6 +187,7 @@
                 if (role == null || role.isEmpty()){
                     return null;
                 }
+                redisClient.putRedisList(key, role);
                 return role;
             }
         }catch (Exception e){
@@ -142,10 +200,10 @@
     public boolean addRoleByUser(String userId, List<String> roleIds, String userName) {
         try {
             String url =  this.url + prefix + "userRole/addRoleUser";
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.set("userId", userId);
-            params.set("listRoleId", roleIds);
-            params.set("createUser", userId);
+            Map<String, Object> params = new LinkedHashMap<>();
+            params.put("userId", userId);
+            params.put("listRoleId", roleIds);
+            params.put("createUser", userId);
             String s = HttpUtils.HttpRestClientByObjectParams(url, HttpMethod.POST, params, null, null,MediaType.APPLICATION_JSON);
             JSONObject result = (JSONObject) JSON.parse(s);
             String sucess = result.getString(Constant.Success);
@@ -161,13 +219,12 @@
         }
     }
 
-    public boolean deleteRoleByUser(String userId, List<String> roleIds, String userName) {
+    public boolean deleteRoleByUser(String userId, List<String> roleIds) {
         try {
             String url =  this.url + prefix + "userRole/deleteRoleUsers";
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.set("userId", userId);
-            params.set("listRoleId", roleIds);
-            params.set("createUser", userId);
+            Map<String, Object> params = new LinkedHashMap<>();
+            params.put("userId", userId);
+            params.put("listRoleId", roleIds);
             String s = HttpUtils.HttpRestClientByObjectParams(url, HttpMethod.POST, params, null, null,MediaType.APPLICATION_JSON);
             JSONObject result = (JSONObject) JSON.parse(s);
             String sucess = result.getString(Constant.Success);
@@ -190,9 +247,9 @@
             HashMap<String, String> headerMap = new HashMap<>();
             headerMap.put("userId", userId);
 
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.set("groupId", groupId);
-            params.set("roleIdList", roleIds);
+            Map<String, Object> params = new LinkedHashMap<>();
+            params.put("groupId", groupId);
+            params.put("roleIdList", roleIds);
             String s = HttpUtils.HttpRestClientByObjectParams(url, HttpMethod.POST, params, null,headerMap,MediaType.APPLICATION_JSON);
             JSONObject result = (JSONObject) JSON.parse(s);
             String sucess = result.getString(Constant.Success);
@@ -206,13 +263,31 @@
         }
     }
 
+    public List<TUser> listUserRoleGroup() {
+        try {
+            String url =  this.url + prefix + "user/listUserRoleGroup";
+            String s = HttpUtils.HttpRestClientByObjectParams(url, HttpMethod.POST, null, null,null,MediaType.APPLICATION_JSON);
+            JSONObject result = (JSONObject) JSON.parse(s);
+            String sucess = result.getString(Constant.Success);
+            if (StringUtils.isEmpty(sucess) || !Boolean.valueOf(sucess)) {
+                return null;
+            }
+            JSONArray jsonArray = result.getJSONArray(Constant.Data);
+            List<TUser> tUsers = JSONObject.parseArray(jsonArray.toJSONString(), TUser.class);
+            return tUsers;
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
+        }
+    }
+
 
     public boolean deleteRoleByGroupId(List<String> roleIds, String groupId) {
         try {
             String url =  this.url + prefix + "group/delGroupRole";
-            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
-            params.set("groupId", groupId);
-            params.set("roleIdList", roleIds);
+            Map<String, Object> params = new LinkedHashMap<>();
+            params.put("groupId", groupId);
+            params.put("roleIdList", roleIds);
             String s = HttpUtils.HttpRestClientByObjectParams(url, HttpMethod.POST, params, null,null,MediaType.APPLICATION_JSON);
             JSONObject result = (JSONObject) JSON.parse(s);
             String sucess = result.getString(Constant.Success);
@@ -225,4 +300,34 @@
             return false;
         }
     }
+
+    public List<String> getUserListByRole(String roleId) {
+        String key = RedisClient.getRealRedisKey(roleId + "-getUserListByRole");
+        List<Object> redisList = redisClient.getRedisList(key);
+        if (redisList != null && !redisList.isEmpty()) {
+            List<String> result = new ArrayList<>();
+            for (Object o : redisList) {
+                result.add(o.toString());
+            }
+            return result;
+        }
+        try {
+            String url =  this.url + prefix + "userRole/selectUserMap";
+            Map<String, Object> params = new LinkedHashMap<>();
+            params.put("roleId", roleId);
+            String s = HttpUtils.HttpRestClientByObjectParams(url, HttpMethod.POST, params, null,null,MediaType.APPLICATION_JSON);
+            JSONObject result = (JSONObject) JSON.parse(s);
+            String sucess = result.getString(Constant.Success);
+            if (StringUtils.isEmpty(sucess) || !Boolean.valueOf(sucess)) {
+                return null;
+            }
+            List<String> array = result.getObject(Constant.Data, List.class);
+
+            redisClient.putRedisList(key,array);
+            return array;
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
+        }
+    }
 }

--
Gitblit v1.8.0