AC-19 要求的三块内容原先在文件里 grep 零命中,校验器也只解析出 4 个端点: - 新增「改造接口」4 节(messages 拉取/投递、read 双侧水位、biz-unread-batch 新增 TEAM_FLEET 取值),每节含方法/路径/路径参数/请求参数/响应/错误码 - 写死「双侧未读要分别取」:车务侧传 unreadScope=TEAM_FLEET、团期管理员侧传 TEAM, 传错不报错、会拿到对方的未读数 - 写明 GROUP_FLEET:{groupBatchId} 与「接送机沟通仍走 FLEET:{orderId}」,两个入口不混同 - 两条 internal 接口的清单编号由 *内部* 改为裸 5/6——校验器对非裸编号的端点标题 是静默跳过的,改前它们根本没进校验 - 补错误码汇总表(281018/281019/600012-600014/809400/809401,文案逐字抄源码) - 六.6「修改前后对比」由 N/A 换成 4 个改造端点的行为级对比 端点数 4 → 10(6 新增 + 4 改造),与工单口径一致。 另留痕一处信源冲突:biz-unread-batch 的 adminId,工单正文写「PERSONAL 时必填」, 而 ChatBizUnreadBatchReqVO.java:23-25 是 @NotNull(恒必填,与 unreadScope 无关)。 交接件按源码写,并在字段说明里标注与旧文档描述不一致、以源码为准。
原文写「菜单可见性授予 SUPER_ADMIN / ADMIN / VEHICLE_MANAGER 三个角色」「权限码 授权 VEHICLE_MANAGER / ADMIN / SUPER_ADMIN」,这两句在 PR #7514 之后已经过时: V20260911_007__fix_group_dispatch_admin_grants.sql 于 2026-09-11 14:04:26 在测试库 收回了 ADMIN 的菜单行(2 行)与权限码授权(1 行),部署后实测两项命中数均为 0。 收回的原因本文件八节末尾那条红字早就写着:/admin/fleet/** 的访问控制是 #5626 的 路径级粗粒度角色门禁,只放行 VEHICLE_MANAGER 与 SUPER_ADMIN,不看权限码。给 ADMIN 菜单等于造一个看得见、点进去必 403 的死入口。也就是说本文件自身前后矛盾——六.8 节 说 ADMIN 有菜单,八节说 ADMIN 调接口必 403。现已统一到后者。 接口契约、错误码与行为均未变,仅授权数据层的描述订正。frontmatter 补 status_note。 前端影响:不要按「ADMIN 能看到团期配车」设计任何菜单可见性或路由逻辑。
6 个新接口:fleet 派单看板三个 admin 读口 + order-v3 两个 internal 读口 + user-service open-group-fleet。本单只读,不含配车写入与派单进度回写。 错误码 7 个:809400/809401(order-v3 内部口自用,经 fleet 侧 fail-closed 统一转 600012, **前端看不到原始码**)、600012/600013/600014(fleet 对外)、281018/281019(会话侧)。 809401 把「分页越界 / 出发日区间倒挂 / keyword 超 50 字符 / dispatchProgress 枚举非法」 合并为一个出口,前端按单码统一提示重填筛选条件。 ⚠️ 访问控制口径:三个 fleet 读口由 #5626 的粗粒度角色门禁把关(必须切到 VEHICLE_MANAGER 或 SUPER_ADMIN),**不看权限码**。实测 ADMIN 角色(已被本单 Flyway 授予 fleet:group-dispatch:view)同样拿到 403,前端不能按「有该权限码就能调」设计。 测试环境已验证:三服务已部署(fleet/order-v3 @ 861ebff0c、user @ 30761683e,差异原因与 契约一致性核验见正文),6 端点逐个网关实测、每条两轮。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>