chenxing 705cbde7cf
build / build-push (push) Successful in 1m8s
fix(app): 应用列表两处——「全部」视图按 id 正序 + 基石应用不进用户端列表
1) 排序(管理端 GET /AppList):未选应用类型(前端「全部」)统一按 id 正序,最新创建的在最后。
   - SUPER:去掉 @SortDefault(sort="sortNo"),改 categoryId==null ? Sort.by(ASC,"id") : Sort.unsorted();
     类别视图排序改由 Specification 内嵌 orderBy(NULL 沉底 + sortNo + id)——NULL 沉底须 case
     表达式,Sort 表达不了,故该分支必须传 unsorted,否则 Pageable 排序会整体覆盖 spec 的 orderBy。
   - SCHOOL:listSchoolApps 按视图分叉,全部视图走新增 appIdOrder(),选中类型仍走生效排序
     (override sortNo 优先、空回落主表、并列 id 升序),学校拖拽排序管理不回归。
   - 口径:sort_no 是「类型内」序号,跨类型打平无全局意义(服务内注释 + 2026-07-22 记忆)。
2) 基石过滤(oapi GET /oapi/app/list):AppCategoryService.listBoaAppType 补 AppNature.isBaseApp
   过滤,UserBase 自身(appKey<=100000)与 app_nature=BASE(UserHome / 移动门户)不进用户端应用列表。
   根因:findUserAuthorizedAppIds 超管分支返回全量,而该读链全程无基石判定——即
   《消息卡片直批与跳转基址统一方案-20260928》§4.2「一开四关」漏掉的第 6 个触点(现收口为「关」)。
   未动 findUserAuthorizedAppIds(被 /oapi/app/authorized-codes 跳转判权共用,改了会连带把
   「跳到基石应用」判无权限);未动 manage 端口径(仅 isUserbaseSelf,保留基石供重置密钥)。

测试:AppCategoryServiceBaseAppFilterTest(3 用例)+ SchoolAppOverrideServiceListSchoolAppsTest(5 用例)
2026-10-09 12:03:49 +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%