From 9ff8eb4c8c74f1b19863066207133d0d4c1d6f9b Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Mon, 20 Jul 2026 18:55:55 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=91=8A=E7=9F=A5=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=A4=84=E7=90=86=E6=94=B9=E6=9C=9F=E6=97=A7?= =?UTF-8?q?=E9=85=8D=E6=88=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...旧日期配房人工清理与最终确认门禁-管理后台.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 changelogs-v2/2026-07/72_5095_改期旧日期配房人工清理与最终确认门禁-管理后台.md diff --git a/changelogs-v2/2026-07/72_5095_改期旧日期配房人工清理与最终确认门禁-管理后台.md b/changelogs-v2/2026-07/72_5095_改期旧日期配房人工清理与最终确认门禁-管理后台.md new file mode 100644 index 0000000..1e55690 --- /dev/null +++ b/changelogs-v2/2026-07/72_5095_改期旧日期配房人工清理与最终确认门禁-管理后台.md @@ -0,0 +1,70 @@ +# 目标前端 + +- 端类型:管理后台(Web) +- 目标仓库:`mmg/hl-ui`(`https://git.1814.love:8443/mmg/hl-ui.git`) +- 联调/验收环境:`http://192.168.100.160:9527` +- 小程序、H5 及其他前端:无需处理 + +# 变更背景 + +订单改出发日期后,原入住日期已经配置的酒店不能静默平移到新日期。房务需要明确核对并逐条删除旧配房;旧配房未清完时禁止最终确认。 + +# 详情接口新增字段 + +`GET /admin/house/orders/{orderId}` 顶层新增: + +```json +{ + "pendingRescheduleAssignments": [ + { + "assignmentId": "99001", + "originalStayDate": "2026-07-22", + "hotelId": "8001", + "hotelName": "示例酒店", + "roomTypeId": "9001", + "roomTypeName": "普通标间", + "roomCategory": "STANDARD", + "roomCategoryLabel": "标间", + "roomCount": 2, + "assignmentStage": "FINAL_CONFIRMED", + "assignmentStageLabel": "最终确认", + "deleteEndpoint": "DELETE /v3/admin/order/assignments/99001" + } + ] +} +``` + +`assignmentStage` 枚举: + +| 值 | 中文 | 含义 | +| --- | --- | --- | +| `UNCONFIRMED` | 未单日确认 | 改期前仍处于询房/候选阶段 | +| `DAY_CONFIRMED` | 单日确认 | 改期前已完成该日确认,但原需求未最终确认 | +| `FINAL_CONFIRMED` | 最终确认 | 改期前所属住宿需求已经最终确认 | + +数组为空表示没有改期旧配房待清理。旧配房不会再出现在当前 `itinerary[].assignments`,也不计入当前配房进度。 + +# 前端交互要求 + +1. 在“订单调整提醒”的改期记录下展示 `pendingRescheduleAssignments`,每行至少显示:原日期、酒店、房型、数量、配房步骤。 +2. 每行提供“删除旧配房”,调用返回的 `deleteEndpoint`;成功后重新拉取详情。 +3. 只要数组非空,不允许用户最终确认,并显示后端 `actions.canFinalize.disabledReason`。 +4. 数组清空后再按后端 `actions.canFinalize.enabled` 决定按钮状态,禁止前端自行推断。 +5. 删除仍可能因领取归属、房务写权限、并发修改或库存释放链路失败而报错,直接展示后端消息并刷新详情。 + +# 最终确认写口门禁 + +`POST /admin/house/assignments/requirements/{requirementId}/finalize` + +若仍有旧日期配房,返回业务错误: + +- code:`808183` +- message:`改期前旧日期配房尚未清理,请逐条删除后再最终确认` + +该门禁由后端强制执行,前端禁用按钮仅用于交互提示。 + +# 兼容说明 + +- 字段为 additive;旧页面忽略新增字段不会影响反序列化。 +- `roomTypeName` 在资源服务降级时可为空,前端回退 `roomCategoryLabel`。 +- `assignmentId`、`hotelId`、`roomTypeId` 按字符串处理,禁止转 JavaScript `number`。