feat(system): 新增角色管理控制器及相关接口

- 实现角色列表分页查询功能,支持关键字搜索
- 完成查询所有角色接口,满足下拉选择需求
- 实现根据ID查询角色及角色权限列表功能
- 新增新增角色接口,包含编码唯一性校验
- 实现修改角色接口,支持系统角色情况校验
- 实现角色删除接口,防止删除系统角色并处理权限关联
- 完善角色权限分配接口,支持权限批量绑定与事务管理
- 使用注解权限控制,保障接口访问安全
- 日志记录关键操作,便于审计和排查问题
This commit is contained in:
2026-03-27 20:11:49 +08:00
parent 10b4a4b3ac
commit 44e6db0adc

View File

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