You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.7 KiB
1.7 KiB
04 — 角色详情 + 权限分配(带祖先补全)
What to build: 在 RoleController 新增角色详情和权限分配两个端点。详情端点返回 RoleDetailVO,其中 resourceIds 为从 sys_role_menu 查出的已补全完整授权集合。权限分配端点接收前端勾选的原始 resourceIds(逗号分隔),调用 ISysMenuService.getAncestorIds 补全祖先后全量替换写入 sys_role_menu。从 SystemController 移除旧的 /api/system/roles/menus 和 /api/system/roles/assign-menus 端点。
Blocked by: 01 — 祖先补全能力(ISysMenuService), 03 — 角色保存 + 列表 + 校验 + RoleController
Status: ready-for-agent
- GET /api/roles/detail — hasAuthority('crm:role:detail'),roleId query 参数,返回 RoleDetailVO
- RoleDetailVO 填充 resourceIds 字段(从 sys_role_menu 查出的完整授权集合,Long 序列化为 String)
- POST /api/roles/assign-resources — hasAuthority('crm:role:assign'),roleId + resourceIds(逗号分隔字符串)表单参数
- ISysRoleService 新增 assignResources 方法:调用 ISysMenuService.getAncestorIds 补全祖先,再先删后插全量替换 sys_role_menu
- ISysRoleService 新增 getRoleDetail 方法:查角色基本信息 + 查 sys_role_menu 得到 resourceIds,组装 RoleDetailVO
- 事务保护:assignResources 在 @Transactional 中执行
- SysRoleServiceImplTest 覆盖:assignResources 调用祖先补全后写库(验证写入的 menuIds 包含祖先)、先删后插全量替换、getRoleDetail 返回 RoleDetailVO 含基本信息和 resourceIds
- SystemController 移除 /api/system/roles/menus 和 /api/system/roles/assign-menus 方法