changelog(order-v2): 管理端行程安排接口变更(聚合接口新增 + vehicleCount 下线)

- 新增 GET /admin/order/{orderId}/itinerary/summary 聚合接口(PR #1064)
- 修复 GET /admin/order/{orderId} 的 hotelAssignmentDetails[].assignmentDate 现算(PR #1064)
- PUT /admin/order/{orderId}/vehicle-assignment 请求 body 删除 vehicleCount(PR #1054)
这个提交包含在:
yaosutu 2026-04-21 15:38:15 +08:00
父节点 43446b0528
当前提交 68c8d61f39
共有 2 个文件被更改,包括 222 次插入0 次删除

查看文件

@ -0,0 +1,149 @@
# 管理端行程安排聚合接口 + 订单详情房间日期补全 — 2026-04-21
> **服务** hl-order-service-v2端口 8094· **类型** feat + fix · **关联** PR #1064
> **使用场景**:管理端订单详情 · 行程安排 Tab · 查看场景一次性加载
> **前端调用路径**:网关(8080) → hl-order-service-v2(8094)
---
## 一、新增聚合接口
### 🆕 `GET /admin/order/{orderId}/itinerary/summary` — 行程安排聚合
**功能**一次返回【行程安排】Tab 所需的 **房间 / 车辆 / 交通** 三段数据,替代前端分别调用
`/hotel-assignment``/vehicle-assignment``/arrival` 的三次并发请求。
原三个接口**保留不动**,编辑场景仍各自调用;查看场景推荐走此聚合接口。
**请求参数**
| 参数 | 位置 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- | --- |
| `orderId` | Path | `Long` | ✅ | 订单ID |
**返回值** `Result<OrderItineraryRespVO>`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `orderId` | `Long` | 订单ID |
| `hotelAssignments` | `List<HotelAssignmentDetailVO>` | 房间安排列表(字段同 `GET /hotel-assignment`,含 `assignmentDate` 现算值) |
| `vehicleAssignments` | `List<VehicleAssignmentVO>` | 车辆安排列表(字段同 `GET /vehicle-assignment`,司机电话脱敏) |
| `transports` | `ArrivalListRespVO` | 交通信息(字段同 `GET /arrival`,按 `ARRIVAL`/`DEPARTURE` 分组) |
> 💡 `transports` 是 VO 包对象而非扁平 List,内部按到达/离开方向拆成 `arrivals` / `departures` 两个子列表,结构与 `GET /arrival` 一致,保留方向分组语义。
**`transports` 子结构**
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `orderId` | `Long` | 订单ID |
| `arrivals` | `List<ArrivalPlanRespVO>` | 到达批次(`direction=ARRIVAL` |
| `departures` | `List<ArrivalPlanRespVO>` | 离开批次(`direction=DEPARTURE` |
**响应示例**
```json
{
"code": 200,
"data": {
"orderId": 700001,
"hotelAssignments": [
{
"assignmentId": 800001,
"orderId": 700001,
"familyIndex": 1,
"hotelId": 500001,
"hotelName": "香格里拉",
"roomTypeId": 500101,
"roomType": "大床房",
"dayNumber": 1,
"assignmentDate": "2026-07-01",
"upgradePrice": null,
"remark": null
}
],
"vehicleAssignments": [
{
"assignmentId": 900001,
"orderId": 700001,
"vehicleType": "丰田普拉多",
"vehicleCount": 1,
"plateNumber": "蒙A·A1234",
"driverName": "李师傅",
"driverPhone": "138****1234",
"remark": null,
"createTime": "2026-04-20 10:00:00"
}
],
"transports": {
"orderId": 700001,
"arrivals": [
{
"planId": 800001,
"orderId": 700001,
"direction": "ARRIVAL",
"directionLabel": "到达",
"transportType": "FLIGHT",
"transportTypeLabel": "飞机",
"transportNo": "CZ6255"
}
],
"departures": []
}
}
}
```
> 💡 三段子项**都带主键**`hotelAssignments[].assignmentId` / `vehicleAssignments[].assignmentId` / `transports.arrivals[].planId`,从查看态进入编辑态的路径完全通畅。
---
## 二、现有接口字段修复
### 🐛 `GET /admin/order/{orderId}` — 订单详情
**修复**`hotelAssignmentDetails[].assignmentDate` 之前返回 `null`(由于字段存储方式改为 `dayNumber`),现已由后端按 `order.departureDate + dayNumber - 1` 现算填充。
前端若此前已降级为展示 `-` 或基于 `dayNumber` 自行计算日期,可在本次迭代后恢复直接读取 `assignmentDate`。其他字段保持不变。
---
## 三、与已有接口关系
| 接口 | 作用 | 状态 |
| --- | --- | --- |
| `GET /admin/order/{orderId}/hotel-assignment` | 查酒店分配 | 已有(未变,仍可单独调) |
| `GET /admin/order/{orderId}/vehicle-assignment` | 查车辆分配 | 已有(未变,仍可单独调) |
| `GET /admin/order/{orderId}/arrival` | 查到达批次(按方向分组) | 已有(未变,仍可单独调) |
| `GET /admin/order/{orderId}/itinerary/summary` | 一次返回上述三段 | **本期新增** |
聚合接口与三个独立接口**并存**
- **查看态**:推荐走 `/itinerary/summary`,一次请求拿全。
- **编辑态**:仍各自调子接口,减少无关数据传输。
---
## 四、数据库变更
**无**。纯服务层聚合,数据源均是既有表。
---
## 五、错误码
HTTP 始终返回 200,错误码在 `Result.code` 中。
| code | 触发 | 说明 |
| --- | --- | --- |
| 200 | 正常 | 成功(无分配数据返回空列表/空子对象) |
| 400 | 订单不存在 | `BusinessException` |
---
## 六、关联
- PR: [wx/HL#1064](https://git.1814.love:8443/wx/HL/pulls/1064)(已合并到 dev
- 相关接口:
- `GET /admin/order/{orderId}/hotel-assignment` · `GET /admin/order/{orderId}/vehicle-assignment` — 见 `2026-04-20_order-v2_admin-assignment-get.md`
- `GET /admin/order/{orderId}/arrival` — 见 `2026-04-20_order-v2_arrival.md`C 端,管理端字段结构一致)
- `PUT /admin/order/{orderId}/hotel-assignment` `date → dayNumber` 破坏性变更 — 见 `2026-04-21_order-v2_hotel-assignment-day-number.md`

查看文件

@ -0,0 +1,73 @@
# 管理端配车接口下线 vehicleCount 字段 — 2026-04-21
> **服务** hl-order-service-v2端口 8094· **类型** refactor · **关联** Issue #1053 / PR #1054
> **破坏性变更**:请求 body 字段 `vehicleCount` 删除,前端不再传,后端固定写 1
---
## 一、影响接口
### ✏️ `PUT /admin/order/{orderId}/vehicle-assignment` — 分配车辆(管理端)
**请求参数变更**`VehicleAssignmentReqVO` 移除 `vehicleCount` 字段。当前阶段每单车辆数固定为 1,后端直接写入,前端无需传递。
**变更对比**
| 字段 | 状态 | 说明 |
| --- | --- | --- |
| ~~`vehicleCount`~~ | **已删除** | 前端传入将被忽略JSON 未知字段不报错) |
**保留字段**
| JSON 字段 | Java 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- | --- |
| `vehicleModel` | `vehicleType` | `String` | ✅ ≤100 | 车型(`@JsonProperty("vehicleModel")` 对齐前端契约) |
| `plateNumber` | `plateNumber` | `String` | 否 ≤20 | 车牌号 |
| `driverName` | `driverName` | `String` | 否 ≤50 | 司机姓名 |
| `driverPhone` | `driverPhone` | `String` | 否 ≤20 | 司机电话 |
| `remark` | `remark` | `String` | 否 ≤500 | 备注 |
**新请求示例**
```json
PUT /admin/order/700001/vehicle-assignment
{
"vehicleModel": "商务车",
"plateNumber": "京A12345",
"driverName": "张三",
"driverPhone": "13800000000",
"remark": ""
}
```
**返回值** `Result<Void>``code=200` 即成功)。
---
### `GET /admin/order/{orderId}/vehicle-assignment` — 查车辆分配(未变)
返回值 `VehicleAssignmentVO` 仍然包含 `vehicleCount` 字段(当前版本固定为 `1`),为后续多车扩展预留。
---
## 二、数据库变更
**无**。`order_vehicle_assignment` 表未改。
---
## 三、错误码
HTTP 始终返回 200,错误码在 `Result.code` 中。
| code | 触发 | 说明 |
| --- | --- | --- |
| 200 | 正常 | 成功 |
| 400 | `vehicleModel` 缺失/超长 | 参数校验失败 |
---
## 四、关联
- Issue: [wx/HL#1053](https://git.1814.love:8443/wx/HL/issues/1053)
- PR: [wx/HL#1054](https://git.1814.love:8443/wx/HL/pulls/1054)(已合并到 dev