docs(house): 配房行程标记终止未用房晚+异常原因透传(#6111 后端能力)
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
Co-Authored-By: Claude <noreply@anthropic.com>
这个提交包含在:
父节点
afef353fc2
当前提交
9b09336538
@ -0,0 +1,91 @@
|
|||||||
|
---
|
||||||
|
schema: "hl-changelog/v2"
|
||||||
|
ticket: "6111"
|
||||||
|
title: "配房行程标记终止未用房晚+异常原因透传"
|
||||||
|
consumer: "admin"
|
||||||
|
author: "wx"
|
||||||
|
change_type: "修改接口"
|
||||||
|
backend_status: "deployed"
|
||||||
|
gateway_status: "verified"
|
||||||
|
frontend_status: "not_required"
|
||||||
|
frontend_owner: ""
|
||||||
|
frontend_ref: ""
|
||||||
|
target_release: ""
|
||||||
|
verified_at: ""
|
||||||
|
status_note: "后端完成:PR #6116 已合并 dev-v3(squash 3dd65f62d)并部署 TEST(hl-order-service-v3 双实例 8086/8186,2026-08-20 17:49 重启)。行程接口响应 hotelGroup 新增异常原因 2 字段、配房行新增未用标记 2 字段(均可选只读,正常单为 null/不影响既有字段),前端按需取读即可。"
|
||||||
|
updated_at: "2026-08-20"
|
||||||
|
base: "dev-v3"
|
||||||
|
generated: "2026-08-20T17:55:00+08:00"
|
||||||
|
---
|
||||||
|
|
||||||
|
# 配房行程标记终止未用房晚+异常原因透传(#6111)
|
||||||
|
|
||||||
|
## 背景
|
||||||
|
|
||||||
|
订单中止行程后,房务「配房行程」详情页看不到:(1) 哪几晚被运营在终止时勾选为「未用房晚」;(2) 异常桶旁的异常原因文案。本变更为房务侧补上这两个只读字段(纯新增,不影响既有字段)。
|
||||||
|
|
||||||
|
## 变更接口
|
||||||
|
|
||||||
|
| 接口 | 变更 |
|
||||||
|
| --- | --- |
|
||||||
|
| `GET /v3/admin/order/{id}/itinerary`(订单详情-行程安排) | **响应新增字段**(均可选只读,正常单为 null/false,不影响既有任何字段):`hotelGroup.exceptionReason`(String,异常原因,仅 houseStatus=EXCEPTION 时有值)、`hotelGroup.exceptionReasonLabel`(String,同 exceptionReason 中文展示)、`hotelGroup.assignments[].unusedForTerminate`(Boolean,该晚是否终止勾选未用)、`hotelGroup.assignments[].unusedLabel`(String,未用标记文案「未用」,未标记为 null) |
|
||||||
|
|
||||||
|
## 响应示例
|
||||||
|
|
||||||
|
`GET /v3/admin/order/{id}/itinerary` 返回(仅列本次新增字段,其余字段省略):
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"data": {
|
||||||
|
"hotelGroup": {
|
||||||
|
"houseStatus": "EXCEPTION",
|
||||||
|
"exceptionReason": "客户中止",
|
||||||
|
"exceptionReasonLabel": "客户中止",
|
||||||
|
"assignments": [
|
||||||
|
{
|
||||||
|
"assignmentId": "2090093115967733761",
|
||||||
|
"dayNumber": 1,
|
||||||
|
"hotelName": "呼伦贝尔香格里拉大酒店",
|
||||||
|
"unusedForTerminate": true,
|
||||||
|
"unusedLabel": "未用"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"assignmentId": "2090093115976122369",
|
||||||
|
"dayNumber": 2,
|
||||||
|
"hotelName": "呼伦贝尔香格里拉大酒店",
|
||||||
|
"unusedForTerminate": true,
|
||||||
|
"unusedLabel": "未用"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
说明:该单已终止且运营勾选两晚均未用,故两行 `unusedForTerminate=true`、`unusedLabel="未用"`;`houseStatus=EXCEPTION` 故 `exceptionReason` 透出终止原因。正常单(非终止)`exceptionReason/Label` 为 null、`unusedForTerminate=false`、`unusedLabel` 为 null。
|
||||||
|
|
||||||
|
## 行为口径
|
||||||
|
|
||||||
|
- 4 个字段均为**只读、可选**:正常单(未终止)`exceptionReason/Label` 为 null、`unusedForTerminate=false`、`unusedLabel` 为 null,接口不报错。
|
||||||
|
- `unusedForTerminate=true` 的行即终止时运营勾选的「未用房晚」,前端可渲染「未用」标记 + 行级「资源释放」按钮。
|
||||||
|
- **行级资源释放**复用现有 `DELETE /v3/admin/order/assignments/{id}`(软删+恢复库存,CONFIRMED 行自动解冻),前端按该行 `assignmentId` 调即可,**无新端点**。
|
||||||
|
- `exceptionReason` 来源为终止行程原因,仅异常桶(houseStatus=EXCEPTION)有值。
|
||||||
|
|
||||||
|
## 前端动作
|
||||||
|
|
||||||
|
无必须动作。需要展示「未用」标记时读 `assignments[].unusedForTerminate/unusedLabel`;需要显示异常原因时读 `hotelGroup.exceptionReason(Label)`;需要行级释放按钮时对该行调 `DELETE /v3/admin/order/assignments/{assignmentId}`。
|
||||||
|
|
||||||
|
## 验证证据
|
||||||
|
|
||||||
|
- 单测:OrderDetailConverterTest 44 / TerminateRefundServiceTest 8 / OrderDetailServiceTest 88 全绿(新增 7 例覆盖命中/未命中/未终止/null 边界)。
|
||||||
|
- 架构门禁:*ArchTest 44 全绿(跨子聚合走 Service 契约,零违规)。
|
||||||
|
- 部署:PR #6116 squash 合并 dev-v3(merge commit `3dd65f62d`);测试服 hl-order-service-v3 双实例 8086/8186 于 2026-08-20 17:49 滚动重启健康。
|
||||||
|
- 网关实测(TEST,admin token):终止单 `GET /v3/admin/order/2090093100083904514/itinerary` 返 200,`hotelGroup.exceptionReason="客户中止"`,两行配房 `unusedForTerminate=true`/`unusedLabel="未用"`;正常单(CUSTOMIZING)`exceptionReason=null`,符合「异常有值/正常 null」口径。
|
||||||
|
|
||||||
|
## 关联 / 联系人
|
||||||
|
|
||||||
|
- Issue:https://git.1814.love:8443/wx/HL/issues/6111
|
||||||
|
- PR:https://git.1814.love:8443/wx/HL/pulls/6116
|
||||||
|
- Commit(merge):https://git.1814.love:8443/wx/HL/commit/3dd65f62d
|
||||||
|
- 后端负责人:wx
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户