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.
16 lines
1.1 KiB
16 lines
1.1 KiB
|
1 month ago
|
# 01 — 祖先补全能力(ISysMenuService)
|
||
|
|
|
||
|
|
**What to build:** 为 ISysMenuService 新增 `getAncestorIds(Collection<Long> menuIds)` 方法,接收一组资源节点 ID,沿 parentId 递归向上遍历,返回包含全部祖先 catalog/menu 节点 ID 的完整集合。实现方式为批量查询 sys_menu 全表构建 ID→parentId 映射,在内存中遍历,避免逐节点查 DB。这是角色权限保存时祖先补全逻辑(ADR-0005)的底层能力,其他 ticket 依赖它。
|
||
|
|
|
||
|
|
**Blocked by:** None — can start immediately
|
||
|
|
|
||
|
|
**Status:** ready-for-agent
|
||
|
|
|
||
|
|
- [ ] ISysMenuService 接口新增 `getAncestorIds(Collection<Long> menuIds)` 方法声明
|
||
|
|
- [ ] SysMenuServiceImpl 实现:批量查全表,构建 ID→parentId 映射,内存遍历补全祖先,返回 Set<Long>
|
||
|
|
- [ ] SysMenuServiceImplTest 覆盖:单链向上遍历(button→menu→catalog→root)
|
||
|
|
- [ ] 多链汇合:两条独立链的叶子节点,返回并集
|
||
|
|
- [ ] 根节点:parentId=0 的 catalog,返回它自己(无祖先可补)
|
||
|
|
- [ ] 空输入:传入空集合,返回空集合
|
||
|
|
- [ ] 已含祖先:传入完整集合,返回相同集合(幂等不重复)
|