5.4 KiB
5.4 KiB
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 | 6033 | 住宿安排回配信息回显(hotelGroup.assignments 补全)+ 加急按钮显隐契约 canUrge | admin | wx | 修改接口 | deployed | verified | verified | mmg | 9bd9e23b | 2026-08-18 | 后端完成:PR #6036 已合并 dev-v3(d4288c4941)并部署 TEST(hl-order-service-v3 jar 16:30 更新、双实例重启)。bug1 改走 listActiveHotelAssignmentsByOrderId(INQUIRING∪CONFIRMED)补回显;bug2 新增 hotelGroup.canUrge 显隐契约。2849 测试全绿 + ArchTest 54 绿。网关实测 itinerary 的 assignments 非空 + canUrge=false。 | 2026-08-18 | dev-v3 | 2026-08-18T16:40:00+08:00 |
住宿安排回配信息回显 + 加急按钮显隐契约 canUrge(#6033)
背景
订单详情-行程安排-住宿安排卡片两个回显 bug(对照用车安排卡片的正确模式):
- bug1:住宿安排只显示「用房需求」(每晚房型/酒店需求),不显示具体回配结果——用车安排卡片是「需求 + 具体回配(丰田普拉多/蒙A/司机/日期)」两段都显示,住宿缺了回配段。
- bug2:配房已完成,住宿安排卡片右上角仍显示「⚡加急」按钮(加急是催房务赶紧配用的,配完还显示不合理)。
变更接口
| 接口 | 变更 |
|---|---|
GET /v3/admin/order/{id}/itinerary 的 hotelGroup.assignments |
行为变更。由空数组 [] 改为返回每晚回配明细。根因:原走 listHotelAssignmentsByOrderId(CONFIRMED-only 业务判定语义),配房未完成(INQUIRING 询房候选)时被过滤成空 → 前端只剩需求段。改走 listActiveHotelAssignmentsByOrderId(INQUIRING ∪ CONFIRMED 纯回显中立只读契约)。其余 8 处 CONFIRMED-only 调用方(核单预览/SignVoucher/结算/TerminateRefund 等)语义零改动 |
GET /v3/admin/order/{id}/itinerary 的 hotelGroup.canUrge |
新增字段(Boolean)。加急按钮显隐契约:配房已完成(finalized=true / houseStatus=CONFIRMED)或已加急(manualUrgent=true)时 false,否则 true |
行为口径
- bug1 回显:未完成(INQUIRING 候选)行随 assignments 回显(hotelName/roomTypeName 中文/roomCount/protocolPrice/stayDate/dayNumber),行内
returnStatusLabel/finalized随需求级 houseStatus(未最终确认不显示「已回配」);已完成(CONFIRMED)回显具体回配明细、finalized=true、returnStatusLabel=已回配。 - bug2 canUrge:
canUrge = !finalized && !manualUrgent。前端不要再自行拼接状态判显隐,直接用canUrge控制「⚡加急」按钮显隐;requirement.manualUrgent仍用于显示「已加急」态。
响应示例
GET /v3/admin/order/{id}/itinerary → data.hotelGroup(修复后):
{
"requirement": { "requirementId": "2089598371034505218", "status": "DONE", "totalRoomCount": 2, "manualUrgent": false },
"houseStatus": "CONFIRMED",
"houseStatusLabel": "已完成",
"finalized": true,
"returnStatusLabel": "已回配",
"canUrge": false,
"assignments": [
{
"hotelName": "呼伦贝尔香格里拉大酒店",
"roomTypeName": "标准间",
"roomCount": 1,
"protocolPrice": "280.00",
"stayDate": "2026-08-18",
"dayNumber": 1,
"returnStatusLabel": "已回配",
"finalized": true
}
]
}
| 字段 | 类型 | 说明 |
|---|---|---|
assignments[].hotelName |
String | 回配酒店名 |
assignments[].roomTypeName |
String | 房型中文名(字典翻译,无则 null) |
assignments[].roomCount |
Integer | 房间数 |
assignments[].protocolPrice |
BigDecimal(字符串) | 协议价 |
assignments[].stayDate |
Date | 入住日 |
assignments[].dayNumber |
Integer | 第几晚 |
assignments[].finalized / returnStatusLabel |
Boolean/String | 随需求级状态(完成=已回配/finalized=true) |
canUrge |
Boolean | 加急按钮显隐:false=隐藏(配完/已加急),true=显示可用(未完成且未加急) |
前端动作
- 住宿安排卡片把
assignments每晚回配明细渲染出来(对齐用车卡片「需求 + 具体回配」两段模式)。 - 「⚡加急」按钮显隐直接用
hotelGroup.canUrge,不要自行拼接houseStatus/finalized/manualUrgent。 - 用车安排(vehicleGroup)回显无变化。
验证证据
- 单测:OrderDetailServiceTest +1(INQUIRING 候选传入 converter)、OrderDetailConverterTest +1(canUrge:CONFIRMED→false / 未加急→true / 已加急→false);order.core 全量回归 2849 绿 + ArchTest 54 绿(含 HouseModuleBoundaryArchTest)。
- 部署:PR #6036 squash 合并 dev-v3(merge commit d4288c4941),Deploy Panel 部署 hl-order-service-v3(jar 16:30 更新、双实例重启生效)。
- 网关实测(TEST):itinerary 的
hotelGroup.assignments由空变 2 条(呼伦贝尔香格里拉大酒店 + stayDate 8-18/19 + roomCount + 已回配 + finalized=true),canUrge=false。
关联 / 联系人
- Issue:wx/HL#6033
- PR:wx/HL#6036
- Commit(merge):https://git.1814.love:8443/wx/HL/commit/d4288c4941
- 后端负责人:wx