From 0d831f835708bab1351fa26c7e8aea0a9bf8911e Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 01 四月 2020 11:38:30 +0800
Subject: [PATCH] add  usergroup  一半

---
 src/main/java/com/highdatas/mdm/service/impl/MasterAuthorServiceImpl.java |   36 ++++++++++++++++++++++++++++++++++--
 1 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/impl/MasterAuthorServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MasterAuthorServiceImpl.java
index 1af087c..789c6c0 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/MasterAuthorServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/MasterAuthorServiceImpl.java
@@ -71,17 +71,41 @@
     @Override
     public List<SysMenu> getMenu(String userId) {
         List<MasterAuthor> masterAuthors = selectList(new EntityWrapper<MasterAuthor>().eq(Constant.TYPE, MasterAuthorType.user).eq(MasterAuthorController.character_id, userId));
-        if (masterAuthors.size() == 0) {
+        if (masterAuthors.isEmpty()) {
             //user 鑾峰彇role
             List<TUserRole> roles = userRoleService.selectList(new EntityWrapper<TUserRole>().eq("user_id", userId));
             List<String> roleIds = roles.stream().map(tUserRole -> tUserRole.getRoleId()).collect(Collectors.toList());
             masterAuthors = selectList(new EntityWrapper<MasterAuthor>().eq(Constant.TYPE, MasterAuthorType.role).in(MasterAuthorController.character_id, roleIds));
         }
+        List<MasterAuthor> groupAuthors = getUserGroupAuthor(userId);
+        masterAuthors.addAll(groupAuthors);
         List<String> menuIds = masterAuthors.stream().map(masterAuthor -> masterAuthor.getMenuId()).collect(Collectors.toList());
         LinkedHashSet<String> strings = new LinkedHashSet<>(menuIds);
         LinkedHashSet<String> byParentId = menuService.getByParentId(strings);
         List<SysMenu> sysMenus = menuService.selectBatchIds(byParentId);
         return sysMenus;
+    }
+
+    private List<MasterAuthor> getUserGroupAuthor(String userId) {
+        //TODO
+        List<MasterAuthor> result = new ArrayList<>();
+        List<String> groupIds = new ArrayList<>();
+        for (String groupId : groupIds) {
+            List<MasterAuthor> masterAuthors = selectList(
+                    new EntityWrapper<MasterAuthor>()
+                            .eq(Constant.TYPE, MasterAuthorType.user)
+                            .eq("is_group", true)
+                            .eq(MasterAuthorController.character_id, groupId));
+            if (masterAuthors.isEmpty()) {
+                //TODO getRoleList;
+                List<String> roleIds = new ArrayList<>();
+                masterAuthors = selectList(new EntityWrapper<MasterAuthor>().eq("is_group", true).eq(Constant.TYPE, MasterAuthorType.role).in(MasterAuthorController.character_id, roleIds));
+            }
+            result.addAll(masterAuthors);
+        }
+
+        return result;
+
     }
 
     @Override
@@ -109,6 +133,10 @@
             List<String> roleIds = roles.stream().map(tUserRole -> tUserRole.getRoleId()).collect(Collectors.toList());
             masterAuthors = selectList(new EntityWrapper<MasterAuthor>().eq(Constant.TYPE, MasterAuthorType.role).in(MasterAuthorController.character_id, roleIds).eq("maintain_field_id", maintainFieldId));
         }
+
+        List<MasterAuthor> groupAuthors = getUserGroupAuthor(userId);
+        masterAuthors.addAll(groupAuthors);
+
         if (masterAuthors.isEmpty()) {
             return null;
         }
@@ -132,7 +160,7 @@
     }
 
     private boolean checkUnFilterAuthor(String userId, String tableName) {
-        List<MasterAuthor> masterAuthors = selectList(new EntityWrapper<MasterAuthor>().eq(Constant.TYPE, MasterAuthorType.user).eq(MasterAuthorController.character_id, userId).eq("table_name", tableName));
+        List<MasterAuthor> masterAuthors = selectList(new EntityWrapper<MasterAuthor>().eq(Constant.TYPE, MasterAuthorType.user).eq("is_group", false).eq(MasterAuthorController.character_id, userId).eq("table_name", tableName));
         long isAll = masterAuthors.stream().filter(masterAuthor -> masterAuthor.getMaintainFieldId().equalsIgnoreCase(Constant.All)).count();
         if (isAll > 0) {
             return true;
@@ -209,6 +237,10 @@
             List<String> roleIds = roles.stream().map(tUserRole -> tUserRole.getRoleId()).collect(Collectors.toList());
             masterAuthors = selectList(new EntityWrapper<MasterAuthor>().eq("table_name", maintain.getTableName()).eq(Constant.TYPE, MasterAuthorType.role).in(MasterAuthorController.character_id, roleIds).eq("maintain_field_id", maintainFieldId));
         }
+
+        List<MasterAuthor> groupAuthors = getUserGroupAuthor(userId);
+        masterAuthors.addAll(groupAuthors);
+
         if (masterAuthors.isEmpty()){
             return Constant.WHERE_DEFAULTUN;
         }

--
Gitblit v1.8.0