From 44e6db0adc03b757168ce8a3f3931efe69355f85 Mon Sep 17 00:00:00 2001 From: JiaoTianBo Date: Fri, 27 Mar 2026 20:11:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(system):=20=E6=96=B0=E5=A2=9E=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E7=AE=A1=E7=90=86=E6=8E=A7=E5=88=B6=E5=99=A8=E5=8F=8A?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现角色列表分页查询功能,支持关键字搜索 - 完成查询所有角色接口,满足下拉选择需求 - 实现根据ID查询角色及角色权限列表功能 - 新增新增角色接口,包含编码唯一性校验 - 实现修改角色接口,支持系统角色情况校验 - 实现角色删除接口,防止删除系统角色并处理权限关联 - 完善角色权限分配接口,支持权限批量绑定与事务管理 - 使用注解权限控制,保障接口访问安全 - 日志记录关键操作,便于审计和排查问题 --- .../controller/system/RoleController.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) 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); } /**