chore(changelog): #8023/#7965/#8003/#8004 前端实证翻 not_required(grep 零消费面/自动受益);#7443 到件维持 pending 挂起
changelog-filename-gate / validate (push) Failing after 2s

这个提交包含在:
Mimingguang
2026-09-20 16:09:06 +08:00
父节点 7ea4012f2a
当前提交 8e72e63879
共修改 4 个文件,包含 7 行新增和 7 行删除
@@ -7,12 +7,12 @@ author: "jw(GIT)"
change_type: "修改接口" change_type: "修改接口"
backend_status: "deployed" backend_status: "deployed"
gateway_status: "verified" gateway_status: "verified"
frontend_status: "pending" frontend_status: "not_required"
frontend_owner: "mmg" frontend_owner: "mmg"
frontend_ref: "" frontend_ref: ""
target_release: "" target_release: ""
verified_at: "" verified_at: ""
status_note: "改派 POST /admin/fleet/assignments/{assignmentId}/change 带 requestId 时,同一 requestId 的幂等重放此前恒返回 assignmentSlotId=null,而首次调用返回真实值——同一个 requestId 拿到两份不一样的「同一个结果」。本次把回执冻结口径改回照抄首调的值,重放与首调返回同一个 assignmentSlotId。入参、路径、其余出参字段、错误码、判权一律不变;首次调用的行为也完全不变,只有「同 requestId 重放」这一条路径的返回值变了。后端已合并 dev-v3(d31bb3209)并部署 TEST,网关双调实测两次响应体逐字节一致(工单 #7965 AC-1)。" status_note: "改派 POST /admin/fleet/assignments/{assignmentId}/change 带 requestId 时,同一 requestId 的幂等重放此前恒返回 assignmentSlotId=null,而首次调用返回真实值——同一个 requestId 拿到两份不一样的「同一个结果」。本次把回执冻结口径改回照抄首调的值,重放与首调返回同一个 assignmentSlotId。入参、路径、其余出参字段、错误码、判权一律不变;首次调用的行为也完全不变,只有「同 requestId 重放」这一条路径的返回值变了。后端已合并 dev-v3(d31bb3209)并部署 TEST,网关双调实测两次响应体逐字节一致(工单 #7965 AC-1)。 前端实证维持 not_required(mmg 2026-09-20):改派响应消费仅 assignmentId/warningCode/otherVehicles(useAssignFlow.js showOtherVehiclesWarning);assignmentSlotId 两处读取(order.assignmentSlotId 创单回传、详情快照指纹)均来自列表/详情数据非改派响应;requestId 复用重放路径确有(useAssignFlow 指纹复用),修复为零感知补齐,原判空兜底保留即可。"
updated_at: "2026-09-20" updated_at: "2026-09-20"
base: "dev-v3" base: "dev-v3"
--- ---
@@ -12,7 +12,7 @@ frontend_owner: ""
frontend_ref: "" frontend_ref: ""
target_release: "" target_release: ""
verified_at: "" verified_at: ""
status_note: "本单没有新增、修改、删除任何 admin/mp 端点,请求参数与响应字段全部不变,change_type 取「修复」是按 20_7539 先例(校验器只允许 新增接口/修改接口/删除接口/修复/前端* 几类,接口三类要求逐端点模板而本单无 admin 端点可列)。唯一新增的是 Quartz 桥接用的内部端点 POST /internal/fleet/jobs/share-member-dangling-reconcile/run,只由 hl-user-service 的定时任务经 X-Internal-Token 调用,不经网关、前端不可达,故不单列后端 changelog 条目。gateway_status=verified 指共用关系确认端点 POST /admin/fleet/group-dispatch/batches/{groupBatchId}/share-groups 经测试网关实测通过(2026-09-20 在团期 2101174125761265666 上连建车、司机两个维度的关系,库内复核两组成员行均指向同一张最新派单行)。frontend_status=not_required:响应字段与结构不变,前端无需改调用;但 members[].sourceId 的取值行为变了(见第二节),任何把它缓存/固化的前端逻辑需要复核。" status_note: "本单没有新增、修改、删除任何 admin/mp 端点,请求参数与响应字段全部不变,change_type 取「修复」是按 20_7539 先例(校验器只允许 新增接口/修改接口/删除接口/修复/前端* 几类,接口三类要求逐端点模板而本单无 admin 端点可列)。唯一新增的是 Quartz 桥接用的内部端点 POST /internal/fleet/jobs/share-member-dangling-reconcile/run,只由 hl-user-service 的定时任务经 X-Internal-Token 调用,不经网关、前端不可达,故不单列后端 changelog 条目。gateway_status=verified 指共用关系确认端点 POST /admin/fleet/group-dispatch/batches/{groupBatchId}/share-groups 经测试网关实测通过(2026-09-20 在团期 2101174125761265666 上连建车、司机两个维度的关系,库内复核两组成员行均指向同一张最新派单行)。frontend_status=not_required:响应字段与结构不变,前端无需改调用;但 members[].sourceId 的取值行为变了(见第二节),任何把它缓存/固化的前端逻辑需要复核。 前端实证维持 not_required(mmg 2026-09-20):share-groups/shareGroups 全仓零命中,共用关系功能前端未接入(#7444 交接件未到件),members[].sourceId 取值行为变化零消费面;无缓存/固化该值的逻辑。"
updated_at: "2026-09-20" updated_at: "2026-09-20"
base: "dev-v3" base: "dev-v3"
--- ---
@@ -7,12 +7,12 @@ author: "jw(GIT)"
change_type: "修改接口" change_type: "修改接口"
backend_status: "deployed" backend_status: "deployed"
gateway_status: "verified" gateway_status: "verified"
frontend_status: "pending" frontend_status: "not_required"
frontend_owner: "mmg" frontend_owner: "mmg"
frontend_ref: "" frontend_ref: ""
target_release: "" target_release: ""
verified_at: "" verified_at: ""
status_note: "同名字段 cityJunctionShareCandidate 此前在 candidates 与 precheck 两个读口上含义不同:#7444 把 candidates 一侧扩写成『同城衔接 或 已确认共用关系』,precheck 一侧保持原义『只说同城衔接』,于是同一对跨城派单两个读口返回相反的 true/false。本次把 candidates 该列恢复为原义(与 precheck 同义),新增 shareEligible 承载『这条冲突被放行了吗』。candidates 出参新增一个字段、一个既有字段取值口径回滚;precheck 出参与两端点入参一律不变。后端已合并 dev-v3(32f87d022)并部署 TEST,网关实测三种取值组合齐全(工单 #8004 AC-1)。前端若已按 #7444 口径把 cityJunctionShareCandidate 当作『可不可以选这辆车』使用,须改读 shareEligible 或 blocking。" status_note: "同名字段 cityJunctionShareCandidate 此前在 candidates 与 precheck 两个读口上含义不同:#7444 把 candidates 一侧扩写成『同城衔接 或 已确认共用关系』,precheck 一侧保持原义『只说同城衔接』,于是同一对跨城派单两个读口返回相反的 true/false。本次把 candidates 该列恢复为原义(与 precheck 同义),新增 shareEligible 承载『这条冲突被放行了吗』。candidates 出参新增一个字段、一个既有字段取值口径回滚;precheck 出参与两端点入参一律不变。后端已合并 dev-v3(32f87d022)并部署 TEST,网关实测三种取值组合齐全(工单 #8004 AC-1)。前端若已按 #7444 口径把 cityJunctionShareCandidate 当作『可不可以选这辆车』使用,须改读 shareEligible 或 blocking。 前端实证维持 not_required(mmg 2026-09-20):cityJunctionShareCandidate/shareEligible 全仓零命中,前端从未按 #7444 扩写口径把该字段当「可不可以选」消费(冲突渲染走 reasonCode/blocking 等既有字段),口径回滚+新增字段零影响;排除自身 excludeAssignmentId 成对传惯例在用。"
updated_at: "2026-09-20" updated_at: "2026-09-20"
base: "dev-v3" base: "dev-v3"
--- ---
@@ -7,12 +7,12 @@ author: "jw(GIT)"
change_type: "修改接口" change_type: "修改接口"
backend_status: "deployed" backend_status: "deployed"
gateway_status: "verified" gateway_status: "verified"
frontend_status: "pending" frontend_status: "not_required"
frontend_owner: "mmg" frontend_owner: "mmg"
frontend_ref: "" frontend_ref: ""
target_release: "" target_release: ""
verified_at: "2026-09-20" verified_at: "2026-09-20"
status_note: "后端已合并 dev-v3(df66ec357)并部署 TEST,网关实测 AC-1~AC-8 全通过。一处口径放宽 + 一个纯新增出参 + 一处写侧副作用。口径:全团需求汇总 GET /v3/admin/order/group-batch/{groupBatchId}/requirement-summary 的 dailyRoomBreakdown 与整体确认预检 GET .../requirement/confirm-check,此前都只认订单上的 needs_hotel 标记位,导致「标记说不需要住宿、定制师却已提交完整需求」的户被整户静默丢弃——间数不进汇总(页面用房表空白)、确认时也不放行给房务(需求填了没人配房);现在计入条件改为「标记为真 或 已提交有效需求」,打回态仍不计。新增出参 hotelFlagMismatchOrderCount 把这种不一致显式暴露。写侧:PUT /v3/admin/order/{id}/hotel-requirement 提交成功后,若该单 needs_hotel 不为真则就地置 1(单向 0→1,同事务,已为真时不写)——该标记原先只在创单时按产品有没有配酒店派生一次、之后全仓无写通道,存量错单改不回来。既有字段一个没删没改,入参与路径不变。" status_note: "后端已合并 dev-v3(df66ec357)并部署 TEST,网关实测 AC-1~AC-8 全通过。一处口径放宽 + 一个纯新增出参 + 一处写侧副作用。口径:全团需求汇总 GET /v3/admin/order/group-batch/{groupBatchId}/requirement-summary 的 dailyRoomBreakdown 与整体确认预检 GET .../requirement/confirm-check,此前都只认订单上的 needs_hotel 标记位,导致「标记说不需要住宿、定制师却已提交完整需求」的户被整户静默丢弃——间数不进汇总(页面用房表空白)、确认时也不放行给房务(需求填了没人配房);现在计入条件改为「标记为真 或 已提交有效需求」,打回态仍不计。新增出参 hotelFlagMismatchOrderCount 把这种不一致显式暴露。写侧:PUT /v3/admin/order/{id}/hotel-requirement 提交成功后,若该单 needs_hotel 不为真则就地置 1(单向 0→1,同事务,已为真时不写)——该标记原先只在创单时按产品有没有配酒店派生一次、之后全仓无写通道,存量错单改不回来。既有字段一个没删没改,入参与路径不变。 前端实证维持 not_required(mmg 2026-09-20):requirement-summary/dailyRoomBreakdown/hotelNeededOrderCount/hotelFlagMismatchOrderCount 全仓零命中(汇总端点未接入,同 #7925/#7937 结论);confirm-check 已消费(orderV2GroupBatch.js)但出参结构不变,ready/missing 直渲自动受益;hotel-requirement 标记纠正为服务端同事务副作用、响应不变,零感知。"
updated_at: "2026-09-20" updated_at: "2026-09-20"
base: "dev-v3" base: "dev-v3"
--- ---