# 作废需求详情冻结作废时配房快照 ## 目标前端 - 端类型:管理后台(Web) - 目标仓库:`mmg/hl-ui`(`https://git.1814.love:8443/mmg/hl-ui.git`) - 联调/验收环境:`http://192.168.100.160:9527` - 小程序、H5 及其他前端:无需处理 ## 业务规则 订单调整生成新住宿需求时,旧需求详情必须展示“该需求作废当时”的配房事实,不能复用当前订单的新日期、新行程地点或当前配房。历史数据严格只读,不能恢复或执行任何业务操作。 ## 接口 ```text GET /admin/house/orders/{orderId}?requirementId={作废需求ID} ``` 历史详情的 `itinerary[].assignments[]` 明确返回冻结字段: ```json { "dayNumber": 1, "stayDate": "2026-07-28", "assignments": [ { "assignmentId": "2079188886726098945", "hotelId": "2023714929877450753", "hotelName": "呼伦贝尔香格里拉大酒店", "roomTypeId": "2023727403196502017", "roomTypeName": "普通标间", "roomCategory": "STANDARD", "confirmStatus": "CONFIRMED", "confirmStatusLabel": "已确认", "roomCount": 1, "protoPrice": "280.00", "settlementPrice": "279.00", "settleType": "sign", "sellPrice": "280.00", "deductInventory": false } ] } ``` `stayDate`、酒店、房型、数量、价格、支付方式、库存口径和确认状态均来自作废时快照。后续删除/修改当前配房、资源酒店改名或价格调整,不影响历史详情。 ## 管理后台处理要求 1. 作废详情按 `itinerary[]` 展示旧日期;每条配房至少显示酒店、`roomTypeName`、`roomCount` 和 `confirmStatusLabel`。 2. 房型名称优先使用 `roomTypeName`;部署前没有可信名称快照的旧数据才允许回退 `roomCategoryLabel`,不得按 ID 或列表位置猜测。 3. `historicalRequirement=true` 或 `voided=true` 时保持严格只读:仅允许查看、关闭、查看车务;不得出现联系、转单、配房、删除、清空、驳回、最终确认等房务写操作。 4. 禁止用当前订单出发日期推算历史 `stayDate`,禁止调用当前资源结果覆盖后端返回的历史酒店/房型快照。 5. ID 字段按字符串处理,禁止转换为 JavaScript `number`。 ## 兼容与验收证据 - 变更为 additive,当前生效需求的接口结构不变。 - 测试订单:`HL20260719151313174`,`orderId=2078739922130243586`。 - 作废需求:`requirementId=2079181505287897090`。 - 测试环境返回 3 晚旧配房:2026-07-28/29/30,酒店“呼伦贝尔香格里拉大酒店”,房型“普通标间”,数量 1/2/3,状态均为“已确认”。 - 浏览器验收使用仓库 CDP 脚本完成,页面无 console error 或 failed request。