From 71b96ad0d88610f4198d5aa0fa9d9e6abe94eaac Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Wed, 24 Jun 2026 19:20:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E6=88=BF=E9=80=89=E9=85=92=E5=BA=97?= =?UTF-8?q?=E4=B8=80=E6=AD=A5=E5=AE=9A=E6=88=BF=E5=9E=8B+=E6=88=BF?= =?UTF-8?q?=E9=97=B4=E6=95=B0=EF=BC=9A=E5=90=8E=E7=AB=AF=E5=9B=9E=E6=98=BE?= =?UTF-8?q?=E8=A1=A5=20roomCount=20+=20=E6=8F=90=E4=BA=A4=E5=A5=91?= =?UTF-8?q?=E7=BA=A6=E8=AF=B4=E6=98=8E=EF=BC=88#4367/#4368=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...367_配房选酒店一步定房型房间数_管理后台.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 changelogs-v2/2026-06/24_4367_配房选酒店一步定房型房间数_管理后台.md diff --git a/changelogs-v2/2026-06/24_4367_配房选酒店一步定房型房间数_管理后台.md b/changelogs-v2/2026-06/24_4367_配房选酒店一步定房型房间数_管理后台.md new file mode 100644 index 0000000..f9d48ca --- /dev/null +++ b/changelogs-v2/2026-06/24_4367_配房选酒店一步定房型房间数_管理后台.md @@ -0,0 +1,55 @@ +# 配房「选酒店一步定房型+房间数」(后端提交链路 + 回显已就绪,前端做弹窗交互;已上线测试服) + +> 变更类型:✅ 修改接口(回显补 roomCount,additive)+ 📖 提交契约说明(提交链路本就支持,前端按此对接) +> 端类型:管理后台(房务管家·配房「选择酒店」弹窗) +> 日期:2026-06-24 | 工单:#4367 | PR:#4368 | 服务:hl-order-service-v3 +> 关联:配合产品需求「配房选酒店时选房型+填房间数,一天多酒店多房型,房间数与房型绑定」。 + +--- + +## ⚠️ 关键说明 +- **后端提交链路早就支持**多酒店多房型 + 房间数绑房型,前端按下方契约对接即可;本次后端只补了**回显** `roomCount`(原漏接)。 +- 「房间数与房型绑定」= 提交时 `roomTypeId` 和 `roomCount` 在**同一个 item** 里;一天多酒店多房型 = 一天提交多个 item。 + +## 1. 提交配房方案(房控选酒店实配) +`POST /v3/admin/order/hotel-requirements/{requirementId}/assignments` + +请求体 `AssignmentSubmitReqVO`: +```json +{ + "items": [ + {"dayNumber":1, "hotelId":3001000000000000002, "roomTypeId":3002000000000000002, "roomCategory":"STANDARD", "roomCount":2, "sellPrice":320.00, "remark":"靠湖"}, + {"dayNumber":1, "hotelId":2023714929877450753, "roomTypeId":2023727403196502017, "roomCategory":"STANDARD", "roomCount":1, "sellPrice":320.00, "remark":""} + ] +} +``` +`items[]`(`AssignmentItemReqVO`)字段: + +| 字段 | 类型 | 必填 | 说明 | +|---|---|---|---| +| `dayNumber` | Integer | ✓ | 第几晚(1-based)。**一天多酒店多房型 = 多个 item 用同一 dayNumber** | +| `hotelId` | Long | ✓ | 酒店 ID(取自 hotel-candidates 候选) | +| `roomTypeId` | Long | ✓ | 房型 ID(取自候选的 `roomTypes[].roomTypeId`) | +| `roomCategory` | String | ✓ | 房型字典 code(取 `roomTypes[].roomCategory`,如 STANDARD/TWIN/KING) | +| `roomCount` | Integer | ✓ | **间数(≥1)。与本 item 的 roomTypeId 同行 = 房间数绑房型** | +| `sellPrice` | BigDecimal | ✓ | 售价(元/间·晚) | +| `remark` | String | — | 备注 | + +→ 后端每个 item 落一行 `house_hotel_assignment`(含 room_type_id + room_count)。 + +## 2. 回显(本次后端补 roomCount) +`GET /v3/admin/order/{id}/itinerary` → `data.hotelGroup.assignments[]`(`HotelAssignmentVO`)**新增**: + +| 字段 | 类型 | 说明 | +|---|---|---| +| `roomCount` | Integer | 本晚本酒店本房型的间数(房间数与房型同行绑定回显;原漏接,本次补) | + +(assignments 其余字段 dayNumber/stayDate/hotelName/roomType/plannedCost/remark 不变。) + +## 3. 前端动作(弹窗交互,后端无需再改) +- 「选择酒店」弹窗每个候选酒店行,操作区加: + 1. **房型下拉**:用 `candidate.roomTypes` 生成(展示 name + 协议价 + 可用房;`inventoryStatus≠AVAILABLE` 置灰)。 + 2. **房间数输入**:整数,默认 1。 +- 支持**一天加多行**(同一晚选多个酒店 / 同酒店多房型),每行 = 一个酒店+房型+房间数。 +- 提交时构造 `items[]`(每行一个 item,同晚多行用同 dayNumber),调上面的 assignments 接口。 +- 详情回显读 `assignments[].roomCount` 展示已配间数。