diff --git a/changelogs-v2/2026-09/21_7444_团期配车就绪门禁与车辆共用关系-修改接口-管理后台.md b/changelogs-v2/2026-09/21_7444_团期配车就绪门禁与车辆共用关系-修改接口-管理后台.md index 5b77bc8c..d8787c24 100644 --- a/changelogs-v2/2026-09/21_7444_团期配车就绪门禁与车辆共用关系-修改接口-管理后台.md +++ b/changelogs-v2/2026-09/21_7444_团期配车就绪门禁与车辆共用关系-修改接口-管理后台.md @@ -7,12 +7,12 @@ author: "wx(GIT)" change_type: "修改接口" backend_status: "deployed" gateway_status: "verified" -frontend_status: "pending" -frontend_owner: "" -frontend_ref: "" -target_release: "" -verified_at: "" -status_note: "gateway_status=verified 的判据(2026-09-21 实测):经网关 https://api.test.1814.love:9443 对本篇 10 个端点中**全部 8 个位于网关面上的 /admin/fleet/** 端点**逐个发起真实请求并记录响应信封的 code —— share-groups 确认(600009 不存在团期)/查询(200 空集)/解除(602110 缺策略、602108 关系不存在)、readiness(200 两档结构完整 ready=false+warned=true+3 类 blocker+WARN_SEAT_SHORTAGE;整团免车团期 602113 失败关闭不降级)、reconfigure(600002 与字段级 400)、precheck(200,conflicts[] 实测带齐 blocking/reasonCode/shareGroupId 三个新字段)、candidates(200 正常分页;缺 orderId 时 400)、restore-cancel(605009 派单不存在),结构与错误码均与正文一致,逐条读数见正文「八、测试环境已验证」8.1。写口一律用零副作用错误路径取证,测试环境未因取证产生业务数据变更。剩余 2 个 internal 端点(/internal/fleet/dispatch/.../release、/v3/internal/group-batch/.../vehicle-ready)**按网关设计就不在网关面上**:hl-gateway JwtAuthFilter 在所有鉴权分支之前对 /internal/**、/v3/internal/** 直接 forbidden('接口不可访问'),实测两者均返回 code=403;它们由服务间 Feign 触发、前端不可调也不需调,故不计入本字段的判定范围(不是失败)。 backend_status=deployed 的判据(2026-09-21 实测):deploy_panel deploy-backend 分别部署 hl-fleet-service 与 hl-order-service-v3,服务端 git sync done: branch=dev-v3 HEAD=bb4091074;fleet 17:14:32 新 jar 111247255 B,实例 8187(PID 1598964)/8087(PID 1599321) 滚动重启并健康检查 UP;order-v3 17:16:07 新 jar 328980166 B,实例 8186(PID 1607261)/8086(PID 1608074) UP;两次任务 exit_code=0。origin/dev-v3 在部署时刻即为 bb4091074,故测试服跑的字节就是本篇定稿点的字节。⚠️ 独立第二判据的局限(照实记):上一次部署点 311dc92ee 与 bb4091074 之间 13 个 fleet 提交里,行为差异(#8061/#8051/#8064/#7994)全部需要一条真实的活跃共用关系作前置才能观测,本次取证未构造该前置;原本可做版本判别的 swagger /hl-*/v2/api-docs 被测试服 nginx 前置 basic auth 401 拦掉(4 个路径变体与 order-v3 同路径一并 401,故是路径规则不是服务问题),actuator 亦被网关按小程序端口径 403。因此第二判据退化为「8 个端点在部署后经网关全部取到与 dev-v3 源码一致的业务读数」,它能证明本篇代码在测试服上活着,但对「本次 17:14 部署 vs 上一次部署」没有分辨力。 本轮对正文做的契约补充(对 19be7f21c..bb4091074 逐提交读码后确认原稿未覆盖):(1) precheck 的 cityJunctionShareCandidate 改写为与 candidates 同名字段逐字同义(#8004 已把两侧拉齐),原稿「两处不要复用同一个渲染判断」的说法与源码相反,已删;(2) precheck 与 candidates 入参表补 excludeAssignmentId(candidates 另补 assignmentGroupId 成对要求),并写明「改派不传即按新建派单处理、不享受共用授权,读数与功能没做一模一样」这一失败形态(#8004 AC-2/AC-3);(3) 接口 3 解除的三种策略范围按 #8061 改写为「只到本关系的成员为止」,并补 #8051「不跨服务日、不跨团期」,收口断言范围同宽;接口 5 clearAll 分支同步标注;(4) 补 #8064:自动收缩 AUTO_SINGLE_MEMBER 此前整段挂在 DUAL_WRITE 分支而环境全为 LEGACY,上线至今零执行,现已补 LEGACY 挂点,前端必须真的渲染这一态;并写明整团解除原因列豁免(AC-10)与 LEGACY 少覆盖的那一种情形;(5) 补 #8013:COST_BEARER_CHANGED 由死枚举转活,改前这类变更被记成 MEMBER_ADDED,且「什么都没变」不再写历史行;(6) 补 #8003:跨维度准入会把其它关系/其它维度里记着同一张旧派单 ID 的活跃成员行一起改绑,故接口 1 成功后 sourceId 的回读范围要扩到其它维度的关系;(7) 接口 5 补一条覆盖边界:602013 属 #7442 既有契约、不在本篇 10 端点变更面内,#7994 的调整不改其对外结构。 六.8「错误码全集(按端点对照)」已按 origin/dev-v3 的 10 个端点 javadoc 逐端点(不是按错误码类)重新核对:覆盖完整、无源码中不存在的码;602100 段实占 602100-602114 共 15 个,其中 GroupDispatchShareErrorCode.SEGMENT_END=602199 是段位预分配上界常量、不是错误码;809205/809206 是 discardCode 取值、正文已标注其非错误码。 本文件是 #7444 的唯一 changelog(2026-09-19 已合并去重同目录旧稿)。PR-1(#7956, d97babc9e)+PR-2a(#7959, 43a5b7153)+PR-2b(#7963, 19be7f21c) 均已合入 dev-v3,其后的契约面修订(#8004/#8003/#8013/#8051/#8061/#8064/#8002)已按上列条目并入正文。" +frontend_status: "verified" +frontend_owner: "mmg" +frontend_ref: "56dc94557738de2c4b301453148e1a685597bc83" +target_release: "v2.1" +verified_at: "2026-09-22" +status_note: "gateway_status=verified 的判据(2026-09-21 实测):经网关 https://api.test.1814.love:9443 对本篇 10 个端点中**全部 8 个位于网关面上的 /admin/fleet/** 端点**逐个发起真实请求并记录响应信封的 code —— share-groups 确认(600009 不存在团期)/查询(200 空集)/解除(602110 缺策略、602108 关系不存在)、readiness(200 两档结构完整 ready=false+warned=true+3 类 blocker+WARN_SEAT_SHORTAGE;整团免车团期 602113 失败关闭不降级)、reconfigure(600002 与字段级 400)、precheck(200,conflicts[] 实测带齐 blocking/reasonCode/shareGroupId 三个新字段)、candidates(200 正常分页;缺 orderId 时 400)、restore-cancel(605009 派单不存在),结构与错误码均与正文一致,逐条读数见正文「八、测试环境已验证」8.1。写口一律用零副作用错误路径取证,测试环境未因取证产生业务数据变更。剩余 2 个 internal 端点(/internal/fleet/dispatch/.../release、/v3/internal/group-batch/.../vehicle-ready)**按网关设计就不在网关面上**:hl-gateway JwtAuthFilter 在所有鉴权分支之前对 /internal/**、/v3/internal/** 直接 forbidden('接口不可访问'),实测两者均返回 code=403;它们由服务间 Feign 触发、前端不可调也不需调,故不计入本字段的判定范围(不是失败)。 backend_status=deployed 的判据(2026-09-21 实测):deploy_panel deploy-backend 分别部署 hl-fleet-service 与 hl-order-service-v3,服务端 git sync done: branch=dev-v3 HEAD=bb4091074;fleet 17:14:32 新 jar 111247255 B,实例 8187(PID 1598964)/8087(PID 1599321) 滚动重启并健康检查 UP;order-v3 17:16:07 新 jar 328980166 B,实例 8186(PID 1607261)/8086(PID 1608074) UP;两次任务 exit_code=0。origin/dev-v3 在部署时刻即为 bb4091074,故测试服跑的字节就是本篇定稿点的字节。⚠️ 独立第二判据的局限(照实记):上一次部署点 311dc92ee 与 bb4091074 之间 13 个 fleet 提交里,行为差异(#8061/#8051/#8064/#7994)全部需要一条真实的活跃共用关系作前置才能观测,本次取证未构造该前置;原本可做版本判别的 swagger /hl-*/v2/api-docs 被测试服 nginx 前置 basic auth 401 拦掉(4 个路径变体与 order-v3 同路径一并 401,故是路径规则不是服务问题),actuator 亦被网关按小程序端口径 403。因此第二判据退化为「8 个端点在部署后经网关全部取到与 dev-v3 源码一致的业务读数」,它能证明本篇代码在测试服上活着,但对「本次 17:14 部署 vs 上一次部署」没有分辨力。 本轮对正文做的契约补充(对 19be7f21c..bb4091074 逐提交读码后确认原稿未覆盖):(1) precheck 的 cityJunctionShareCandidate 改写为与 candidates 同名字段逐字同义(#8004 已把两侧拉齐),原稿「两处不要复用同一个渲染判断」的说法与源码相反,已删;(2) precheck 与 candidates 入参表补 excludeAssignmentId(candidates 另补 assignmentGroupId 成对要求),并写明「改派不传即按新建派单处理、不享受共用授权,读数与功能没做一模一样」这一失败形态(#8004 AC-2/AC-3);(3) 接口 3 解除的三种策略范围按 #8061 改写为「只到本关系的成员为止」,并补 #8051「不跨服务日、不跨团期」,收口断言范围同宽;接口 5 clearAll 分支同步标注;(4) 补 #8064:自动收缩 AUTO_SINGLE_MEMBER 此前整段挂在 DUAL_WRITE 分支而环境全为 LEGACY,上线至今零执行,现已补 LEGACY 挂点,前端必须真的渲染这一态;并写明整团解除原因列豁免(AC-10)与 LEGACY 少覆盖的那一种情形;(5) 补 #8013:COST_BEARER_CHANGED 由死枚举转活,改前这类变更被记成 MEMBER_ADDED,且「什么都没变」不再写历史行;(6) 补 #8003:跨维度准入会把其它关系/其它维度里记着同一张旧派单 ID 的活跃成员行一起改绑,故接口 1 成功后 sourceId 的回读范围要扩到其它维度的关系;(7) 接口 5 补一条覆盖边界:602013 属 #7442 既有契约、不在本篇 10 端点变更面内,#7994 的调整不改其对外结构。 六.8「错误码全集(按端点对照)」已按 origin/dev-v3 的 10 个端点 javadoc 逐端点(不是按错误码类)重新核对:覆盖完整、无源码中不存在的码;602100 段实占 602100-602114 共 15 个,其中 GroupDispatchShareErrorCode.SEGMENT_END=602199 是段位预分配上界常量、不是错误码;809205/809206 是 discardCode 取值、正文已标注其非错误码。 本文件是 #7444 的唯一 changelog(2026-09-19 已合并去重同目录旧稿)。PR-1(#7956, d97babc9e)+PR-2a(#7959, 43a5b7153)+PR-2b(#7963, 19be7f21c) 均已合入 dev-v3,其后的契约面修订(#8004/#8003/#8013/#8051/#8061/#8064/#8002)已按上列条目并入正文。 前端已交付(mmg 2026-09-22, hl-admin 56dc9455):readiness 两档展示(ready/warned 独立共存,602113/602114 失败关闭只出灰态「暂时无法判定」不画红绿黄,shareGroupCount 仅展示);share-groups 面板(ACTIVE 卡片+已解除历史,五 action 与 AUTO_SINGLE_MEMBER/COST_BEARER_CHANGED 真渲染,车牌经 resource-schedule 二次查询兜底 ID;解除 survivorPolicy 必传,602108 提示+关窗重拉,602109/605008 可重试,605075 不给重试引导);reconfigure clearAll 分支(demands 省略,有 ACTIVE 关系 survivorPolicy 前端必填前置,响应四字段展示,pendingReassignSourceIds 醒目);precheck/candidates 实证前端已按 blocking 判定零增量,restore-cancel/precheck 前端零调用方。挂起项:接口1 建关系确认交互——成员候选读口(当日团级配车行 dispatchId 清单+当日逐户接送派单 assignmentId 清单)不在 10 端点契约内,前端无可枚举来源,待后端补读口或确认取数路径后跟进。" updated_at: "2026-09-21" base: "dev-v3" ---