2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-06-07 4aacf43565d374fff53115d3c1112c234f13e2f5
角色
已修改2个文件
87 ■■■■ 文件已修改
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/RoleService.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AdminService.java
@@ -274,36 +274,29 @@
     */
    public List<MenuNode> getUserPermissionList() {
        List<MenuNode> resultList;
        //判断超管与普通管理员
        if (SecurityUtils.getAdministratorIdentity().equals(AdministratorEnums.ADMIN.getCode())) {
            //参数为null时,获取所有的菜单权限
            resultList = SpringContextHolder.getBean(MenuService.class).getUserPermissionListById(null);
        } else {
            //通过用户UserID获取用户角色
            AdminRoleRelation one = SpringContextHolder.getBean(AdminRoleRelationService.class).
                    getOne(Wrappers.lambdaQuery(AdminRoleRelation.class).eq(AdminRoleRelation::getAdminId, SecurityUtils.getUserId()));
            //判空
            if (one == null) {
                throw new BusinessException("该用户未绑定角色");
            }
            //通过RoleID获取MeunId列表
            List<RoleMenuRelation> menuIdList = SpringContextHolder.getBean(RoleMenuRelationService.class)
                    .list(Wrappers.lambdaQuery(RoleMenuRelation.class).eq(RoleMenuRelation::getRoleId, one.getRoleId()));
            //判空
            if (menuIdList.isEmpty()) {
                return new ArrayList<>();
            }
            List<Long> menuIds = new ArrayList<>(menuIdList.size());
            for (RoleMenuRelation bean : menuIdList) {
                menuIds.add(bean.getMenuId());
            }
            resultList = SpringContextHolder.getBean(MenuService.class).getUserPermissionListById(menuIds);
        //通过用户UserID获取用户角色
        AdminRoleRelation one = SpringContextHolder.getBean(AdminRoleRelationService.class).
                getOne(Wrappers.lambdaQuery(AdminRoleRelation.class).eq(AdminRoleRelation::getAdminId, SecurityUtils.getUserId()));
        //判空
        if (one == null) {
            throw new BusinessException("该用户未绑定角色");
        }
        //通过RoleID获取MeunId列表
        List<RoleMenuRelation> menuIdList = SpringContextHolder.getBean(RoleMenuRelationService.class)
                .list(Wrappers.lambdaQuery(RoleMenuRelation.class).eq(RoleMenuRelation::getRoleId, one.getRoleId()));
        //判空
        if (menuIdList.isEmpty()) {
            return new ArrayList<>();
        }
        List<Long> menuIds = new ArrayList<>(menuIdList.size());
        for (RoleMenuRelation bean : menuIdList) {
            menuIds.add(bean.getMenuId());
        }
        resultList = SpringContextHolder.getBean(MenuService.class).getUserPermissionListById(menuIds);
        return resultList;
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/RoleService.java
@@ -142,26 +142,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())) {
                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());
        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("编辑角色失败");
@@ -226,13 +233,6 @@
        }
        List<RoleDetail> list = baseMapper.listRole(roleIdList);
        for (RoleDetail roleDetail : list) {
            if (roleDetail.getId() == 1) {
                roleDetail.setMenuIdList(menuMapper.listMenu());
                break;
            }
        }
        return list;
    }