3.8 KiB
3.8 KiB
酒店分配接口 date → dayNumber — 2026-04-21
服务 hl-order-service-v2(端口 8094)· 类型 refactor · 关联 Issue #1049 / PR #1051 破坏性变更:请求入参字段名由
date改为dayNumber
一、影响接口
✏️ PUT /admin/order/{orderId}/hotel-assignment — 分配酒店(管理端)
请求参数变更:每个 assignments[] 元素的「日期字段」从 date(LocalDate)改为 dayNumber(Integer,第几天,从 1 开始)。
变更对比:
| 旧字段 | 新字段 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
date |
dayNumber |
Integer |
✅ | 第几天(从 1 开始,≥1) |
其他字段保持不变:familyIndex · hotelId · hotelName · roomTypeId · roomType · upgradePrice · remark
新请求示例:
PUT /admin/order/700001/hotel-assignment
{
"assignments": [
{
"familyIndex": 1,
"hotelId": 2023714929877450753,
"hotelName": "呼伦贝尔香格里拉大酒店",
"roomTypeId": 3002000000000000013,
"roomType": "大床房",
"dayNumber": 1,
"remark": ""
},
{
"familyIndex": 1,
"hotelId": 2023714929877450753,
"hotelName": "呼伦贝尔香格里拉大酒店",
"roomTypeId": 3002000000000000013,
"roomType": "大床房",
"dayNumber": 2
}
]
}
⚠️ 真实入住日期由后端按
order.departureDate + dayNumber - 1现算,前端传递时不再需要知道订单出发日期。
✏️ GET /admin/order/{orderId}/hotel-assignment — 查询酒店分配列表(管理端)
返回值字段变更:新增 dayNumber 字段;assignmentDate 字段保留(Service 层按 order.departureDate + dayNumber - 1 现算填充,前端展示逻辑无需改)。
HotelAssignmentDetailVO 字段:
| 字段 | 类型 | 说明 |
|---|---|---|
assignmentId |
Long |
分配ID |
orderId |
Long |
订单ID |
familyIndex |
Integer |
家庭序号(从1开始) |
hotelId |
Long |
酒店ID |
hotelName |
String |
酒店名称 |
roomTypeId |
Long |
房型ID |
roomType |
String |
房型名称 |
dayNumber |
Integer |
新增:第几天(从1开始) |
assignmentDate |
LocalDate |
入住日期(后端现算,保留) |
upgradePrice |
BigDecimal |
手动覆盖升级差价 |
remark |
String |
备注 |
✏️ GET /mp/order/{orderId}/hotels — C 端订单住宿弹窗
MpHotelItemVO 同步新增 dayNumber 字段;assignmentDate 保留(后端现算)。
二、数据库变更
已在测试服执行(本 changelog 生成时):
ALTER TABLE order_hotel_assignment
ADD COLUMN day_number INT NOT NULL COMMENT '第几天(从1开始,与meal/scenic assignment一致)' AFTER room_type;
ALTER TABLE order_hotel_assignment DROP COLUMN assignment_date;
历史数据按 DATEDIFF(assignment_date, order.departure_date) + 1 回填。
生产部署顺序必须 先跑迁移 SQL 再重启服务,否则老代码写入会因
assignment_date列缺失而失败。
三、错误码
HTTP 始终返回 200,错误码在 Result.code 中。
| code | 触发 | 说明 |
|---|---|---|
| 200 | 正常 | 成功 |
| 400 | dayNumber 缺失 |
第几天不能为空 |
| 400 | dayNumber < 1 |
第几天必须大于等于1 |
四、关联
- Issue: wx/HL#1049
- PR: wx/HL#1051(已合并到 dev)
- 前置原因:原
assignment_date在订单出发日变更时需要级联更新,且与order_meal_assignment/order_scenic_assignment的day_number字段设计不一致