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