2021与蓝度共同重构项目,服务端
liuhaonan
2022-10-25 d495f9b8cdc83663e4189bc3cc72ac9543ff5555
ximon-admin/src/main/java/com/sandu/ximon/admin/service/RoleService.java
@@ -56,8 +56,8 @@
            throw new BusinessException("当前用户没有角色");
        }
        List<Long> roleIdList = roles.stream().map(Role::getId).collect(Collectors.toList());
        List<Long> menuIdList = roleMenuRelationService.list(Wrappers.lambdaQuery(RoleMenuRelation.class).in(RoleMenuRelation::getRoleId, roleIdList).select(RoleMenuRelation::getMenuId))
                .stream().map(RoleMenuRelation::getMenuId).distinct().collect(Collectors.toList());
        List<Long> menuIdList = roleMenuRelationService.list(Wrappers.lambdaQuery(RoleMenuRelation.class).in(RoleMenuRelation::getRoleId, roleIdList)
                        .select(RoleMenuRelation::getMenuId)).stream().map(RoleMenuRelation::getMenuId).distinct().collect(Collectors.toList());
        Set<String> menuPermissions = new HashSet<>();
        // 菜单权限
@@ -81,7 +81,8 @@
     */
    public List<Role> listByAdminId(Long adminId) {
        // 获取管理员的角色id
        List<AdminRoleRelation> list = adminRoleRelationService.list(Wrappers.lambdaQuery(AdminRoleRelation.class).eq(AdminRoleRelation::getAdminId, adminId).select(AdminRoleRelation::getRoleId));
        List<AdminRoleRelation> list = adminRoleRelationService.list(Wrappers.lambdaQuery(AdminRoleRelation.class)
                .eq(AdminRoleRelation::getAdminId, adminId).select(AdminRoleRelation::getRoleId));
        List<Long> roleIdList = list.stream().map(AdminRoleRelation::getRoleId).collect(Collectors.toList());
        if (CollectionUtil.isEmpty(roleIdList)) {
            return null;
@@ -113,11 +114,13 @@
        //设置角色权限等级
        if (param.getLevel() != null) {
            if (param.getLevel().equals(RoleLevelStatus.SUPER.getCode())) {
                role.setLevel(RoleLevelStatus.SUPER.getCode());
                throw new BusinessException("无法添加超级管理员角色");
            } else if (param.getLevel().equals(RoleLevelStatus.COMMON.getCode())) {
                role.setLevel(RoleLevelStatus.COMMON.getCode());
            } else if (param.getLevel().equals(RoleLevelStatus.NORMAL.getCode())) {
                role.setLevel(RoleLevelStatus.NORMAL.getCode());
            } else if (param.getLevel().equals(RoleLevelStatus.NORMAL2.getCode())) {
                role.setLevel(RoleLevelStatus.NORMAL2.getCode());
            } else {
                role.setLevel(RoleLevelStatus.NORMAL.getCode());
            }
@@ -140,24 +143,33 @@
        if (role == null) {
            throw new BusinessException("找不到角色信息");
        }
        //判断是有权限修改
        assertLevels(role.getLevel());
        role.setName(param.getName());
        role.setRemark(param.getRemark());
        //设置角色权限等级
        if (param.getLevel() != null) {
            if (param.getLevel().equals(RoleLevelStatus.SUPER.getCode())) {
                role.setLevel(RoleLevelStatus.SUPER.getCode());
            } else if (param.getLevel().equals(RoleLevelStatus.COMMON.getCode())) {
                role.setLevel(RoleLevelStatus.COMMON.getCode());
            } else if (param.getLevel().equals(RoleLevelStatus.NORMAL.getCode())) {
                role.setLevel(RoleLevelStatus.NORMAL.getCode());
        if (!role.getLevel().equals(RoleLevelStatus.SUPER.getCode())) {
            //设置角色权限等级
            if (param.getLevel() != null) {
                if (param.getLevel().equals(RoleLevelStatus.SUPER.getCode())) {
                    throw new BusinessException("无法修改成超级管理员角色");
                } else if (param.getLevel().equals(RoleLevelStatus.COMMON.getCode())) {
                    role.setLevel(RoleLevelStatus.COMMON.getCode());
                } else if (param.getLevel().equals(RoleLevelStatus.NORMAL.getCode())) {
                    role.setLevel(RoleLevelStatus.NORMAL.getCode());
                } else if (param.getLevel().equals(RoleLevelStatus.NORMAL2.getCode())) {
                    role.setLevel(RoleLevelStatus.NORMAL2.getCode());
                } else {
                    role.setLevel(RoleLevelStatus.NORMAL.getCode());
                }
            } else {
                role.setLevel(RoleLevelStatus.NORMAL.getCode());
            }
        } else {
            role.setLevel(RoleLevelStatus.NORMAL.getCode());
        } else if (!param.getLevel().equals(RoleLevelStatus.SUPER.getCode())) {
            throw new BusinessException("超级管理员角色等级无法修改!");
        }
        if (!updateById(role)) {
            throw new BusinessException("编辑角色失败");
@@ -222,13 +234,6 @@
        }
        List<RoleDetail> list = baseMapper.listRole(roleIdList);
        for (RoleDetail roleDetail : list) {
            if (roleDetail.getId() == 1) {
                roleDetail.setMenuIdList(menuMapper.listMenu());
                break;
            }
        }
        return list;
    }