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; }