From 5d15287b2a06f978485ac6af71e33e1a82b43a65 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 15 四月 2020 16:29:55 +0800
Subject: [PATCH] fix  上传后生成版本连接池用完不释放问题

---
 src/main/java/com/highdatas/mdm/controller/MasterAuthorController.java |  115 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 101 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/controller/MasterAuthorController.java b/src/main/java/com/highdatas/mdm/controller/MasterAuthorController.java
index 836c308..9989453 100644
--- a/src/main/java/com/highdatas/mdm/controller/MasterAuthorController.java
+++ b/src/main/java/com/highdatas/mdm/controller/MasterAuthorController.java
@@ -80,16 +80,24 @@
     }
 
     @RequestMapping(value = "/get/{characterId}", method = RequestMethod.GET)
-    public Result get(@PathVariable String characterId, @RequestParam MasterAuthorType type, HttpServletRequest request){
-        List<MasterAuthor> masterAuthorList = authorService.selectList(new EntityWrapper<MasterAuthor>().eq("type", type.name()).eq("character_id", characterId));
+    public Result get(@PathVariable String characterId,@RequestParam boolean isGroup, @RequestParam MasterAuthorType type, HttpServletRequest request){
+
+        List<MasterAuthor> masterAuthorList = authorService.selectList(new EntityWrapper<MasterAuthor>().eq("user_group", isGroup).eq("type", type.name()).eq("character_id", characterId));
         if (type.equals(MasterAuthorType.role) && masterAuthorList.isEmpty()) {
             return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
         }else if (type.equals(MasterAuthorType.user) && masterAuthorList.isEmpty()){
             //user 鑾峰彇瑙掕壊 澶氳剼鑹叉贩鍚�
             String userId = characterId;
-            List<TUserRole> tUserRoles = userRoleService.selectList(new EntityWrapper<TUserRole>().eq(Constant.USERID, userId));
-            List<String> roleIdList = tUserRoles.stream().map(tUserRole -> tUserRole.getRoleId()).collect(Collectors.toList());
-            HashMap<String, MasterAuthor> tableMasterAuthor = authorService.merageRoleAuthor(roleIdList);
+            Set<String> roleIdSet;
+            if (isGroup) {
+                roleIdSet = DbUtils.getRoleByGroup(userId);
+            } else {
+                roleIdSet = DbUtils.getRoleByUser(userId);
+            }
+            if (roleIdSet.isEmpty()) {
+                return Result.success(null);
+            }
+            HashMap<String, MasterAuthor> tableMasterAuthor = authorService.merageRoleAuthor(roleIdSet);
             if (tableMasterAuthor == null) {
                 Result.success(null);
             }
@@ -102,6 +110,9 @@
             Set<String> collect = list.stream().map(masterAuthor -> masterAuthor.getMenuId()).collect(Collectors.toSet());
             LinkedHashSet<String>  menuIds= new LinkedHashSet<>(collect);
             LinkedHashSet<String> byParentId = menuService.getByParentId(menuIds);
+            if (byParentId == null) {
+                return Result.success(object);
+            }
             List<SysMenu> sysMenus = menuService.selectBatchIds(byParentId);
             object.fluentPut("audit",sysMenus);
             return Result.success(object);
@@ -115,13 +126,17 @@
         }
 
         JSONObject object = new JSONObject();
+        object.fluentPut("type", type);
+        object.fluentPut("author",masterAuthorList);
+
         Set<String> collect = masterAuthorList.stream().map(masterAuthor -> masterAuthor.getMenuId()).collect(Collectors.toSet());
         LinkedHashSet<String>  menuIds= new LinkedHashSet<>(collect);
         LinkedHashSet<String> byParentId = menuService.getByParentId(menuIds);
+        if (byParentId == null) {
+            return Result.success(object);
+        }
         List<SysMenu> sysMenus = menuService.selectBatchIds(byParentId);
 
-        object.fluentPut("type", MasterAuthorType.user);
-        object.fluentPut("author",masterAuthorList);
         object.fluentPut("audit",sysMenus);
         return Result.success(object);
     }
@@ -189,18 +204,90 @@
         }
     }
 
-    @RequestMapping(value = "/addRole/{roleId}", method = RequestMethod.GET)
-    public Result addRole(@PathVariable String roleId, HttpServletRequest request){
+    @RequestMapping(value = "/groupAddRole/{roleId}", method = RequestMethod.GET)
+    public Result addGroupRole(@PathVariable String roleId, @RequestParam String groupId, HttpServletRequest request){
         TUser user = DbUtils.getUser(request);
-        String userId = user.getUserId();
-        List<TUserRole> tUserRoles = userRoleService.selectList(new EntityWrapper<TUserRole>().eq(Constant.USERID, userId));
-        List<String> roleIdList = tUserRoles.stream().map(tUserRole -> tUserRole.getRoleId()).collect(Collectors.toList());
-        roleIdList.add(roleId);
+        if (user == null){
+            return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
+        }
+        ArrayList<String> addRoleList = new ArrayList<>();
+        Set<String> roleIdSet = DbUtils.getRoleByGroup(groupId);
+        addRoleList.addAll(roleIdSet);
+        addRoleList.add(roleId);
+        boolean b = DbUtils.groupAddOneRole(user.getUserId(),groupId, addRoleList);
+        if (!b) {
+            return Result.error(CodeMsg.INSERT_ERROR);
+        }
 
-        HashMap<String, MasterAuthor> tableMasterAuthor = authorService.merageRoleAuthor(roleIdList);
+       roleIdSet.add(roleId);
+
+        HashMap<String, MasterAuthor> tableMasterAuthor = authorService.merageRoleAuthor(roleIdSet);
         if (tableMasterAuthor == null) {
             Result.success(null);
         }
         return Result.success(tableMasterAuthor.values());
     }
+
+    @RequestMapping(value = "/userAddRole/{roleId}", method = RequestMethod.GET)
+    public Result addRole(@PathVariable String roleId, @RequestParam String userId, HttpServletRequest request){
+        TUser user = DbUtils.getUserById(userId);
+        if (user == null){
+            return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
+        }
+        ArrayList<String> addRoleList = new ArrayList<>();
+        Set<String> roleIdSet = DbUtils.getRoleByUser(userId);
+        addRoleList.addAll(roleIdSet);
+        addRoleList.add(roleId);
+        boolean b = DbUtils.addOneRole(user, addRoleList);
+        if (!b) {
+            return Result.error(CodeMsg.INSERT_ERROR);
+        }
+
+        roleIdSet.add(roleId);
+
+        HashMap<String, MasterAuthor> tableMasterAuthor = authorService.merageRoleAuthor(roleIdSet);
+        if (tableMasterAuthor == null) {
+            Result.success(null);
+        }
+        return Result.success(tableMasterAuthor.values());
+    }
+
+
+    @RequestMapping(value = "/userDelRole/{roleId}", method = RequestMethod.GET)
+    public Result delRole(@PathVariable String roleId, @RequestParam String userId, HttpServletRequest request){
+        ArrayList<String> delRoleList = new ArrayList<>();
+
+        delRoleList.add(roleId);
+        boolean b = DbUtils.delOneRole(userId, delRoleList);
+        if (!b) {
+            return Result.error(CodeMsg.INSERT_ERROR);
+        }
+
+        Set<String> roleIdSet = DbUtils.getRoleByUser(userId);
+        HashMap<String, MasterAuthor> tableMasterAuthor = authorService.merageRoleAuthor(roleIdSet);
+        if (tableMasterAuthor == null) {
+            Result.success(null);
+        }
+        return Result.success(tableMasterAuthor.values());
+    }
+
+    @RequestMapping(value = "/groupDelRole/{roleId}", method = RequestMethod.GET)
+    public Result delGroupRole(@PathVariable String roleId, @RequestParam String groupId, HttpServletRequest request){
+        ArrayList<String> delRoleList = new ArrayList<>();
+
+        delRoleList.add(roleId);
+        boolean b = DbUtils.groupDelOneRole(groupId, delRoleList);
+        if (!b) {
+            return Result.error(CodeMsg.INSERT_ERROR);
+        }
+
+        Set<String> roleIdSet = DbUtils.getRoleByGroup(groupId);
+        HashMap<String, MasterAuthor> tableMasterAuthor = authorService.merageRoleAuthor(roleIdSet);
+        if (tableMasterAuthor == null) {
+            Result.success(null);
+        }
+        return Result.success(tableMasterAuthor.values());
+    }
+
+
 }

--
Gitblit v1.8.0