diff --git a/src/main/java/cn/yinlihupo/controller/system/RoleController.java b/src/main/java/cn/yinlihupo/controller/system/RoleController.java index 19bad12..56f9604 100644 --- a/src/main/java/cn/yinlihupo/controller/system/RoleController.java +++ b/src/main/java/cn/yinlihupo/controller/system/RoleController.java @@ -87,25 +87,40 @@ public class RoleController { } /** - * 查询角色的权限列表 + * 查询角色的权限列表(返回完整权限信息) */ @SaCheckPermission("system:role:view") @GetMapping("/{id}/permissions") - public BaseResponse> getRolePermissions(@PathVariable Long id) { + public BaseResponse> getRolePermissions(@PathVariable Long id) { SysRole role = roleMapper.selectById(id); if (role == null || role.getDeleted() == 1) { return ResultUtils.error("角色不存在"); } + // 查询角色的所有权限关联 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SysRolePermission::getRoleId, id); - List list = rolePermissionMapper.selectList(wrapper); + List rolePermissions = rolePermissionMapper.selectList(wrapper); - List permissionIds = list.stream() + if (rolePermissions.isEmpty()) { + return ResultUtils.success("查询成功", List.of()); + } + + // 获取权限ID列表 + List permissionIds = rolePermissions.stream() .map(SysRolePermission::getPermissionId) .collect(Collectors.toList()); - return ResultUtils.success("查询成功", permissionIds); + // 查询完整的权限信息 + LambdaQueryWrapper permissionWrapper = new LambdaQueryWrapper<>(); + permissionWrapper.in(SysPermission::getId, permissionIds) + .eq(SysPermission::getDeleted, 0) + .eq(SysPermission::getStatus, 1) + .orderByAsc(SysPermission::getSortOrder); + + List permissions = permissionMapper.selectList(permissionWrapper); + + return ResultUtils.success("查询成功", permissions); } /**