chenxing b0a02e56b0
build / build-push (push) Successful in 2m42s
feat(oapi): GetUserMod 下发嵌套模块树,层级经 BoaModule.children 承载
模块表 app_module 是 level<=5 的树,管理端下发时带 children,但开放接口这条链
转成平台 BoaModule 时层级被拍平(且旧 SDK 契约无 children 字段可承载),导致每个
子应用各自复制一份 buildModuleTree 重建父子关系。

现按同目录 BoaGroup.children 的既有口径补齐:findUserModulesForApp 的三个返回点
(超管短路 / 应用无模块 / 正常路径)统一收口到 assembleModuleTree 建树。

语义:顶层只放真根(parentId 为空),兄弟沿用开放接口原有 customId 升序口径(不与
管理端 sortNo+id 统一),叶子 children 为空列表以便前端无判空递归;父模块不在本次已
授权集合内的孤儿子节点连同整枝子孙一并丢弃,并逐条打 warn([oapi:modules] drop
orphan module)避免静默少菜单——授权配置须保证「授权子模块必先授权父模块」。

新增 GroupAuthzServiceModuleTreeTest 9 例:三级嵌套与排序、sortNo 不参与、叶子空
列表、parentId 成环不死循环、全 level-1 时与改造前扁平输出等价、无模块返空、孤儿整
枝丢弃、父子同授权则嵌套、JSON 往返证明层级确实经线格式下发且可反序列化。
2026-09-15 16:20:05 +08:00
2026-09-10 15:00:54 +08:00
2026-08-13 21:30:19 +08:00
2026-09-07 18:17:02 +08:00
2026-08-18 21:51:18 +08:00
2026-08-13 21:30:19 +08:00
ci
2026-09-07 20:12:41 +08:00
S
Description
managed by projman
1.5 MiB
Languages
Java 99.1%
JavaScript 0.6%
Python 0.2%