文件
hl-api-changelog/changelogs-v2/2026-08/23_6210_调整订单弹窗客户自订勾选未回显重交丢失-前端缺陷-管理后台.md
T

4.9 KiB
原始文件 Blame 文件历史

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base generated
hl-changelog/v2 6210 调整订单弹窗「客户自订」勾选未回显,重交后自订标记被静默抹掉 admin kimi(wx) 前端缺陷 deployed verified pending mmg 2026-08-23 前端缺陷:调整订单弹窗酒店 tab 未绑定 days[].customerSelfBooked——快照已返回该字段但「客户自订」勾选框恒不勾,且自订晚被按普通晚渲染默认空段;重交时标记丢失(null 落库),该晚变回「待房务配房」,房务会重复配房。后端读/写/换版链路实证无 bug。修复:回显绑定 + 原样重交该字段。 2026-08-23 dev-v3 2026-08-23T15:45:00+08:00

调整订单弹窗「客户自订」勾选未回显,重交后自订标记被静默抹掉(#6210)

前端缺陷,待前端修复。后端契约完整(快照已返回字段、upsert 原样落库),DB 实测 + 网关实证。

现象(TEST 实证,订单 HL20260823145314586 / 团号 26-7603)

「调整订单」弹窗 → 酒店安排 tab,每晚左侧「客户自订」勾选框(#5838 引入):此前标过自订的晚,打开修改弹窗时框是空的;更严重的是在该弹窗里做任何修改重交后,自订标记被静默抹掉。

证据链(DB + 调整记录 + 网关实测,三证闭环)

该订单 2026-08-27 出行、6 天 5 晚、酒店 6 间:

时间 事件 days JSON 事实
14:57:23 顾问经弹窗提交需求 v1 第 1/3/4/5 晚 customerSelfBooked: true、segments: [];第 2 晚呼伦贝尔香格里拉大酒店
15:18:25 顾问经弹窗再次提交(v2,调整记录仅 HOTEL_REQ 一项,非改期/改人数触发) 全部 5 晚 customerSelfBooked: null;第 1/3/4/5 晚各自多出一个默认空段(roomCount=1 + 空候选)——自订晚被按普通晚渲染的形态
  • order_adjustment_record:两次均为徐莱经弹窗提交的「酒店需求已调整」,无 SCHEDULE/PEOPLE 记录 → 排除后端内部换版丢值。
  • 网关实测(2026-08-23):GET /v3/admin/order/{id}/adjustment/snapshot?scope=HOTEL_REQ 返回 200,hotelRequirement.days[] 每项均含 customerSelfBooked 键(当前值为 null 是因 v2 数据已丢,契约本身完整)。
  • 后端代码链路(origin/dev-v3):快照 AdjustmentService.buildHotelReqFromDb → RequirementService.parseHotelDays 显式读该键(L2927,带防丢注释);upsert 按请求原样落库;改期/改天数换版走同一 parseHotelDays 入口保留标记。读/写/换版三条链路均无 bug。

前端缺陷点(三处,同源)

  1. 回显未绑定:打开弹窗拉快照后,未把 hotelRequirement.days[].customerSelfBooked === true 绑定到对应晚的「客户自订」勾选框。
  2. 自订晚被当普通晚渲染:自订晚(segments 为空)被补了默认空段结构展示(v2 数据形态实证)。
  3. 重交丢字段:提交调整时未带上 days[].customerSelfBooked(快照契约注释明确要求「无损回显 + 原样重交」),null 落库后该晚变回「待房务配房」。

涉及接口(后端契约均无需改动)

接口 说明
GET /v3/admin/order/{id}/adjustment/snapshot?scope=HOTEL_REQ 回显源:hotelRequirement.days[].customerSelfBooked(Boolean,true=该晚客人自订)
POST /v3/admin/order/{id}/adjustment/submit(updates.hotelRequirement.days) 重交时必须原样带回 customerSelfBooked
PUT /v3/admin/order/{id}/hotel-requirement 同字段语义(三分支 upsert)

字段语义(#5838):customerSelfBooked=true → 该晚客人自己订酒店、房务无需配房;不计入配房进度分母、不列「未配房」;自订晚 segments 可为空(可带备注如「客人自订汉庭,勿重复订」)。

修复要求(前端)

  1. 弹窗初始化:days[i].customerSelfBooked === true → 第 i 晚「客户自订」勾选框置勾,且该晚按自订态渲染(候选/段区域禁用或隐藏,与首次标记自订时的交互一致)。
  2. 提交组装:每晚原样带上 customerSelfBooked(勾选=true,未勾=false/null),不得因用户没动过该晚而丢键。
  3. 勾选自订的晚提交时 segments 传空数组(与 #5838 提交形态一致),不要补默认空段。

数据善后(TEST 订单 HL20260823145314586)

v2 已丢第 1/3/4/5 晚自订标记,这 4 晚当前对房务显示为「待配房」。待前端修复部署后,由顾问重新打开调整弹窗把这 4 晚重新勾「客户自订」提交即可走正常业务路径恢复(v3);如需立即恢复可联系后端 SQL 补数(另起数据单,需 wx 确认)。