chore(changelog): 09-15 房务团期批 5 条前端闭环(#7325/#7325b/#7326 verified,#7327/#7459 not_required)
changelog-filename-gate / validate (push) Failing after 1s

这个提交包含在:
Mimingguang
2026-09-15 16:29:10 +08:00
父节点 31aa1e3eaf
当前提交 6777213ad1
共修改 5 个文件,包含 16 行新增和 16 行删除
@@ -7,12 +7,12 @@ author: "wx(GIT)"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "not_required"
frontend_status: "pending"
frontend_owner: ""
frontend_ref: ""
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "917b1848abed2657ac4aea5a3f88c87b6b36e4d3"
target_release: ""
verified_at: "2026-09-15"
status_note: "PR #7700(Issue #7325)已 squash 合并 dev-v3(合并提交 e7e11cf7d,2026-09-15 09:13)。2026-09-15 09:39-09:47 在测试服部署基线 hl-order-service-v3@40f08d9be(经 git merge-base --is-ancestor 核实为 e7e11cf7d 的后代,含本次改动)上做了真实网关取证:GET confirm-check 两次独立抓包(09:42:39、09:43:26)均命中 outOfRangeOrders[0] 含 tripNights=2、stayDate=2026-12-18、reason=OUT_OF_RANGE,新字段契约坐实。POST finalize 对同一团期三次尝试(户未抢单态、抢单重试、对照户)全部先撞既有守卫 808116(订单未抢单)——团期订单不支持逐户抢单(808650),越界户走不到抢单态,因而本轮未能端到端触达 808632;808632 的正确性目前只有单测 finalize_groupBatchOutOfRangeHousehold_throws808632WithoutAnyWrite 覆盖,非测试服实测。backend_status 记 deployed(代码已部署且核心新字段已实测),808632 分支覆盖情况见八、测试环境已验证。gateway_status=not_required:两个端点均为已有路由,未新增/修改路径或方法。frontend_status=pending:待前端确认 outOfRangeOrders 改为按越界晚一行后,页面渲染的行 key 与去重逻辑是否已按 orderId+stayDate 调整。"
status_note: "PR #7700(Issue #7325)已 squash 合并 dev-v3(合并提交 e7e11cf7d,2026-09-15 09:13)。2026-09-15 09:39-09:47 在测试服部署基线 hl-order-service-v3@40f08d9be(经 git merge-base --is-ancestor 核实为 e7e11cf7d 的后代,含本次改动)上做了真实网关取证:GET confirm-check 两次独立抓包(09:42:39、09:43:26)均命中 outOfRangeOrders[0] 含 tripNights=2、stayDate=2026-12-18、reason=OUT_OF_RANGE,新字段契约坐实。POST finalize 对同一团期三次尝试(户未抢单态、抢单重试、对照户)全部先撞既有守卫 808116(订单未抢单)——团期订单不支持逐户抢单(808650),越界户走不到抢单态,因而本轮未能端到端触达 808632;808632 的正确性目前只有单测 finalize_groupBatchOutOfRangeHousehold_throws808632WithoutAnyWrite 覆盖,非测试服实测。backend_status 记 deployed(代码已部署且核心新字段已实测),808632 分支覆盖情况见八、测试环境已验证。gateway_status=not_required:两个端点均为已有路由,未新增/修改路径或方法。frontend_status=pending:待前端确认 outOfRangeOrders 改为按越界晚一行后,页面渲染的行 key 与去重逻辑是否已按 orderId+stayDate 调整。 前端已闭环(917b1848):BoardDetailModal 越界名单按 orderId 去重计户、每户附越界晚 stayDate 列表、出发日缺失行兜底「出发日缺失」;808632 文案自解释走拦截器透 message 不建字典;BoardDetailModal.spec 3 例。"
updated_at: "2026-09-15"
base: "dev-v3"
---
@@ -7,12 +7,12 @@ author: "wx(GIT)"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "not_required"
frontend_status: "pending"
frontend_owner: ""
frontend_ref: ""
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "0df56c73a2d78e5c7d492733b18c07c7298db9b0"
target_release: ""
verified_at: "2026-09-15"
status_note: "PR #7743(Issue #7325)已合并 dev-v3(合并提交 88cab06dc,2026-09-15 13:54,squash 直接落在 dev-v3 上)。2026-09-15 14:07:35 测试服部署 dev-v3@88cab06dc(含本次改动,经 deploy-status.sh 实测确认),并做了真实网关端到端取证:越界户 O1(团期 2099674449308545025)POST adjustment/submit 提交 departDate=2026-12-16(该团期出发日)返回 200 成功;整团重新确认需求后 confirm-check 的 outOfRangeOrders 变为空数组、blockedByOutOfRange=false;房务补齐分房并确认后 hotelReady=true、ready=true,验证了本单要解决的产品问题(越界户可经这条出口回到团期区间内)全链路打通。但新增的 4 个拒绝错误码 587039-587042 本轮均未触发(实测走的是成功路径),其响应内容取自源码 AdjustmentErrorCode.java 定义,非测试服抓包。backend_status 记 deployed。gateway_status=not_required:改动的端点 POST /v3/admin/order/{orderId}/adjustment/submit 是已有路由,未新增/修改路径。frontend_status=pending:待前端确认订单调整弹窗改期 tab 对团期子订单是否已限制日期选择器只能选团期出发日,以及新错误码 587039-587042 的文案展示。"
status_note: "PR #7743(Issue #7325)已合并 dev-v3(合并提交 88cab06dc,2026-09-15 13:54,squash 直接落在 dev-v3 上)。2026-09-15 14:07:35 测试服部署 dev-v3@88cab06dc(含本次改动,经 deploy-status.sh 实测确认),并做了真实网关端到端取证:越界户 O1(团期 2099674449308545025)POST adjustment/submit 提交 departDate=2026-12-16(该团期出发日)返回 200 成功;整团重新确认需求后 confirm-check 的 outOfRangeOrders 变为空数组、blockedByOutOfRange=false;房务补齐分房并确认后 hotelReady=true、ready=true,验证了本单要解决的产品问题(越界户可经这条出口回到团期区间内)全链路打通。但新增的 4 个拒绝错误码 587039-587042 本轮均未触发(实测走的是成功路径),其响应内容取自源码 AdjustmentErrorCode.java 定义,非测试服抓包。backend_status 记 deployed。gateway_status=not_required:改动的端点 POST /v3/admin/order/{orderId}/adjustment/submit 是已有路由,未新增/修改路径。frontend_status=pending:待前端确认订单调整弹窗改期 tab 对团期子订单是否已限制日期选择器只能选团期出发日,以及新错误码 587039-587042 的文案展示。 前端已闭环(0df56c73):FunItemAdjustModal 团期子订单(groupBatchId 非空或 productType=GROUP)改期日期选择器只放行所属团期出发日(打开拉 getGroupBatchDetail 取 departDate,失败退化仅禁过去),改期 tab 补团期专属提示;587039-587042 走拦截器透 message;时间线 extra.resourceType 新值 RESCHEDULE 前端无映射(EXTRA_KEYS 不含该键)无需动;spec +3 例共 24/24。"
updated_at: "2026-09-15"
base: "dev-v3"
---
@@ -7,12 +7,12 @@ author: "wx(GIT)"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "not_required"
frontend_status: "pending"
frontend_owner: ""
frontend_ref: ""
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "917b1848abed2657ac4aea5a3f88c87b6b36e4d3"
target_release: ""
verified_at: "2026-09-15"
status_note: "PR #7689(Issue #7326 AC-8)已 squash 合并 dev-v3(合并提交 b57413ab8)。2026-09-15 代码已确认部署在测试服(deploy-status.sh 实测),并对 GET status-logs 做了真实网关取证,证实 extra.reopenedOrderIds 字段真实存在(恒为数组)。backend_status 记 deployed:代码已部署且字段契约已实测。⚠️ 如实标注未覆盖范围:取证样本恰好都是空数组,未采到非空(真的退回)场景——该场景目前只有单测覆盖,非测试服端到端验证,详见正文「八」节。gateway_status=not_required:本次涉及的三个端点均为已有路由(/v3/admin/house/group-batches/**、/v3/admin/order/group-batch/**),未新增/修改任何路径或方法。frontend_status=pending:待前端确认「人工微调/重算分房提交后,之前已标记完成的户可能被静默退回处理中」这件事是否需要在结果弹窗提示,或在待配房列表/订单详情页对这类回退做特殊展示,故不定为 not_required。"
status_note: "PR #7689(Issue #7326 AC-8)已 squash 合并 dev-v3(合并提交 b57413ab8)。2026-09-15 代码已确认部署在测试服(deploy-status.sh 实测),并对 GET status-logs 做了真实网关取证,证实 extra.reopenedOrderIds 字段真实存在(恒为数组)。backend_status 记 deployed:代码已部署且字段契约已实测。⚠️ 如实标注未覆盖范围:取证样本恰好都是空数组,未采到非空(真的退回)场景——该场景目前只有单测覆盖,非测试服端到端验证,详见正文「八」节。gateway_status=not_required:本次涉及的三个端点均为已有路由(/v3/admin/house/group-batches/**、/v3/admin/order/group-batch/**),未新增/修改任何路径或方法。frontend_status=pending:待前端确认「人工微调/重算分房提交后,之前已标记完成的户可能被静默退回处理中」这件事是否需要在结果弹窗提示,或在待配房列表/订单详情页对这类回退做特殊展示,故不定为 not_required。 前端已闭环(917b1848):BoardDetailModal onAllocSaved 在 hotelReady=false 时补查 status-logs 取最新 H10/H11 记录 extra.reopenedOrderIds,非空则结果弹窗点名退回户数并升 warning,补查失败不阻塞;StatusLogsPanel extraText 补「退回处理中 N 户」展示(空数组/历史缺键兜住);spec 共 +4 例。"
updated_at: "2026-09-15"
base: "dev-v3"
---
@@ -7,12 +7,12 @@ author: "wx(GIT)"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "not_required"
frontend_status: "pending"
frontend_status: "not_required"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: "2026-09-15"
status_note: "PR #7679(Issue #7327 AC-17)已 squash 合并 dev-v3(合并提交 6169a612a)。2026-09-15 代码已确认部署在测试服(deploy-status.sh 实测),并对 GET /v3/admin/order/todos 做了真实网关取证,证实了字段契约本身(含 2026-09-14 起草时写错的 todoTypeName/groupBatchId 已更正为 todoTypeLabel/teamNo,并补充了此前遗漏的 todoTypes[] 聚合数组)。backend_status 记 deployed:代码已部署且响应字段契约已实测。⚠️ 如实标注未覆盖范围:本单核心修复点(团单户级为空、回落读团级认领人这一分支)本轮未能采到「团单+户级为空+团期已认领+OPEN」四条件同时成立的真实样本,抓到的 REFUND 样本都是户级直接抢单的散客单——该分支目前只有单测覆盖,非测试服端到端验证,详见「八、测试环境已验证」。另需注意 #7459(PR #7731)已把本条讨论的取消触发路径改为约 1 秒的异步 outbox,详见正文「切换状态时的必要动作」更正。PR 正文已记录 2026-09-14 一次测试服实测(取消订单 2099318713927778306 产出 owner_user_id=NULL 的缺陷现象),那是修复前的缺陷复现证据,不是修复后的验证。gateway_status=not_required:受影响的 GET /v3/admin/order/todos 是已有路由,本次未新增/修改任何路径。frontend_status=pending:待前端确认房务待办列表页是否需要对「owner 从广播态变为团级认领人」这类变化做任何界面提示,故不定为 not_required。"
status_note: "PR #7679(Issue #7327 AC-17)已 squash 合并 dev-v3(合并提交 6169a612a)。2026-09-15 代码已确认部署在测试服(deploy-status.sh 实测),并对 GET /v3/admin/order/todos 做了真实网关取证,证实了字段契约本身(含 2026-09-14 起草时写错的 todoTypeName/groupBatchId 已更正为 todoTypeLabel/teamNo,并补充了此前遗漏的 todoTypes[] 聚合数组)。backend_status 记 deployed:代码已部署且响应字段契约已实测。⚠️ 如实标注未覆盖范围:本单核心修复点(团单户级为空、回落读团级认领人这一分支)本轮未能采到「团单+户级为空+团期已认领+OPEN」四条件同时成立的真实样本,抓到的 REFUND 样本都是户级直接抢单的散客单——该分支目前只有单测覆盖,非测试服端到端验证,详见「八、测试环境已验证」。另需注意 #7459(PR #7731)已把本条讨论的取消触发路径改为约 1 秒的异步 outbox,详见正文「切换状态时的必要动作」更正。PR 正文已记录 2026-09-14 一次测试服实测(取消订单 2099318713927778306 产出 owner_user_id=NULL 的缺陷现象),那是修复前的缺陷复现证据,不是修复后的验证。gateway_status=not_required:受影响的 GET /v3/admin/order/todos 是已有路由,本次未新增/修改任何路径。frontend_status=pending:待前端确认房务待办列表页是否需要对「owner 从广播态变为团级认领人」这类变化做任何界面提示,故不定为 not_required。 前端 not_required(grep 实证):todos/index.vue owner 展示为 ownerName || "团队" 通用渲染,字段用 teamNo/todoTypeLabel 与真实契约一致;owner 从 null 变真实 ID 纯取值变化、scope 换桶为服务端行为,前端零改动。"
updated_at: "2026-09-15"
base: "dev-v3"
---
@@ -7,12 +7,12 @@ author: "wx(GIT)"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "not_required"
frontend_status: "pending"
frontend_status: "not_required"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: "2026-09-15"
status_note: "PR #7731(Issue #7459)已 squash 合并 dev-v3(合并提交 4a63bba2b,2026-09-15 10:44),测试服 hl-order-service-v3 部署基线 816b1b522 即已包含该提交(更晚于它),并有真实网关+SQL 联测证据(工单 7459 评论 54437、54430,2026-09-15 实测),故 backend_status 记 deployed。gateway_status=not_required:本次未新增/修改任何路径,cancel/pre-trip 与 todos 均为已有路由。frontend_status=pending:待前端确认取消后的待办轮询/刷新逻辑是否已经假设了同步可见(若之前是取消接口返回即刷新一次列表,现在需要等约 1 秒或改为短轮询/延迟刷新)。"
status_note: "PR #7731(Issue #7459)已 squash 合并 dev-v3(合并提交 4a63bba2b,2026-09-15 10:44),测试服 hl-order-service-v3 部署基线 816b1b522 即已包含该提交(更晚于它),并有真实网关+SQL 联测证据(工单 7459 评论 54437、54430,2026-09-15 实测),故 backend_status 记 deployed。gateway_status=not_required:本次未新增/修改任何路径,cancel/pre-trip 与 todos 均为已有路由。frontend_status=pending:待前端确认取消后的待办轮询/刷新逻辑是否已经假设了同步可见(若之前是取消接口返回即刷新一次列表,现在需要等约 1 秒或改为短轮询/延迟刷新)。 前端 not_required(grep 实证):order-v2 详情域零处查询 order/todos,取消成功后只刷新订单详情;房务待办页为房务角色独立页面,前端无「取消成功同 tick 断言待办已生成」的同步可见假设,无需延迟刷新/短轮询改动。"
updated_at: "2026-09-15"
base: "dev-v3"
---