kimi
2020-04-01 0d831f835708bab1351fa26c7e8aea0a9bf8911e
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;
        }