feat(system): 新增角色管理控制器及相关接口
- 实现角色列表分页查询功能,支持关键字搜索 - 完成查询所有角色接口,满足下拉选择需求 - 实现根据ID查询角色及角色权限列表功能 - 新增新增角色接口,包含编码唯一性校验 - 实现修改角色接口,支持系统角色情况校验 - 实现角色删除接口,防止删除系统角色并处理权限关联 - 完善角色权限分配接口,支持权限批量绑定与事务管理 - 使用注解权限控制,保障接口访问安全 - 日志记录关键操作,便于审计和排查问题
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user