hl-api-changelog/changelogs/2026-03/2026-03-25_1358_96c4b97_feat.md

324 行
13 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 接口变更记录 — 2026-03-25 13:58
> **提交** `96c4b97` · **作者** wx · **时间** 2026-03-25 13:58:29 +0800
>
> feat: 订单交通信息(接送站)— 对接飞常准航班/火车实时动态
## 变更总览
- **hl-transport-service**
- 🆕 InternalTransport (+2 接口)
- **小程序聚合服务**
- 🆕 MpOrderTransport (+2 接口)
- **订单服务**
- 🆕 AdminOrderTransport (+5 接口)
- 🆕 InternalOrderTransport (+2 接口)
---
## hl-transport-service
### 🆕 新增: InternalTransport
### 📌 `GET` /internal/transport/flight — 按航班号查询航班动态
**参数**
- `flightNo` (`String`) — 查询参数
- `date` (`String`) — 查询参数
**响应** `Result<List<FlightVO>>`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `flightNo` | `String` | 航班号 |
| `airline` | `String` | 航空公司名称 |
| `category` | `String` | 航班属性:国内/国际/地区 |
| `departAirportCode` | `String` | 出发机场三字码 |
| `arriveAirportCode` | `String` | 到达机场三字码 |
| `departAirport` | `String` | 出发机场名称 |
| `arriveAirport` | `String` | 到达机场名称 |
| `departCity` | `String` | 出发城市 |
| `arriveCity` | `String` | 到达城市 |
| `planDepartTime` | `String` | 计划起飞时间yyyy-MM-dd HH:mm:ss |
| `planArriveTime` | `String` | 计划到达时间yyyy-MM-dd HH:mm:ss |
| `actualDepartTime` | `String` | 实际起飞时间yyyy-MM-dd HH:mm:ss |
| `actualArriveTime` | `String` | 实际到达时间yyyy-MM-dd HH:mm:ss |
| `status` | `String` | 航班状态:计划/起飞/到达/延误/取消/返航/备降等 |
| `stopFlag` | `String` | 是否经停0不经停,1经停1次,n经停n次 |
| `shareFlag` | `String` | 是否共享航班0否,1是 |
| `shareFlightNo` | `String` | 共享航班号(实际承运航班号) |
| `departTerminal` | `String` | 出发航站楼 |
| `arriveTerminal` | `String` | 到达航站楼 |
| `boardGate` | `String` | 登机口 |
| `arriveExit` | `String` | 到达出口 |
| `departTimezone` | `String` | 出发时区偏移(秒) |
| `arriveTimezone` | `String` | 到达时区偏移(秒) |
### 📌 `GET` /internal/transport/train — 按车次查询火车动态
**参数**
- `trainNo` (`String`) — 查询参数
- `date` (`String`) — 查询参数
**响应** `Result<List<TrainVO>>`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `trainNo` | `String` | 车次 |
| `departStation` | `String` | 出发车站 |
| `arriveStation` | `String` | 到达车站 |
| `shutdown` | `String` | 是否停运0否,1是 |
| `planDepartTime` | `String` | 计划出发时间 |
| `planArriveTime` | `String` | 计划到达时间 |
| `estimatedDepartTime` | `String` | 预计出发时间 |
| `estimatedArriveTime` | `String` | 预计到达时间 |
| `actualDepartTime` | `String` | 实际出发时间 |
| `actualArriveTime` | `String` | 实际到达时间 |
| `departStatus` | `String` | 出发状态:计划/正点/晚点/出发 |
| `arriveStatus` | `String` | 到达状态:计划/正点/晚点/到达 |
| `duration` | `Integer` | 运行时长(分钟) |
| `stops` | `List<TrainStopVO>` | 经停站列表 |
---
## 小程序聚合服务
### 🆕 新增: MpOrderTransport
> 📖 **接口文档**: [http://192.168.100.236:8086/doc.html](http://192.168.100.236:8086/doc.html) → 标签 **「小程序-订单交通信息」**
### 📌 `GET` /mp/order/{orderId}/transports — 查看订单交通信息(含实时动态)
> 返回订单的去程/回程交通信息,自动从飞常准查询实时航班/火车状态
**参数**
- `{orderId}` (`Long`) — 路径参数订单ID
**响应** `Result<List<Map<String, Object>>>`
### 📌 `POST` /mp/order/{orderId}/transport — 填写交通信息
> 用户填写去程/回程的航班或火车信息。
**参数**
- `{orderId}` (`Long`) — 路径参数订单ID
**响应** `Result<Map<String, Object>>`
---
## 订单服务
### 🆕 新增: AdminOrderTransport
> 📖 **接口文档**: [http://192.168.100.236:8084/doc.html](http://192.168.100.236:8084/doc.html) → 分组 **「3.1 订单管理」** → 标签 **「订单交通信息(接送站)」**
### 📌 `GET` /admin/order/admin/order
### 📌 `POST` /admin/order/{orderId}/transport — 添加交通信息
> 为订单添加去程/回程的航班或火车信息,用于安排接送站。
**参数**
- `{orderId}` (`Long`) — 路径参数订单ID
**请求体** `OrderTransportRequest`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `legType` | `String` | 行程段OUTBOUND=去程接站, RETURN=回程送站 |
| `transportType` | `String` | 交通类型FLIGHT=航班, TRAIN=火车 |
| `transportNo` | `String` | 航班号或车次 |
| `departureStation` | `String` | 出发站/机场 |
| `arrivalStation` | `String` | 到达站/机场 |
| `travelDate` | `LocalDate` | 乘坐日期 |
| `remark` | `String` | 备注 |
**响应** `Result<OrderTransportVO>`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `transportId` | `String` | 交通信息ID |
| `orderId` | `String` | 订单ID |
| `legType` | `String` | 行程段OUTBOUND=去程接站, RETURN=回程送站 |
| `transportType` | `String` | 交通类型FLIGHT=航班, TRAIN=火车 |
| `transportNo` | `String` | 航班号或车次 |
| `departureStation` | `String` | 出发站/机场 |
| `arrivalStation` | `String` | 到达站/机场 |
| `travelDate` | `LocalDate` | 乘坐日期 |
| `remark` | `String` | 备注 |
| `createdByType` | `String` | 填写人类型ADMIN/USER |
| `createdAt` | `LocalDateTime` | 创建时间 |
| `planDepartTime` | `String` | 计划出发时间 |
| `planArriveTime` | `String` | 计划到达时间 |
| `actualDepartTime` | `String` | 实际/预计出发时间 |
| `actualArriveTime` | `String` | 实际/预计到达时间 |
| `liveStatus` | `String` | 状态(如:计划/起飞/到达/延误/晚点) |
| `extraInfo` | `Map<String, String>` | 航班额外信息:航站楼/登机口/出口等 |
### 📌 `PUT` /admin/order/transport/{transportId} — 编辑交通信息
**参数**
- `{transportId}` (`Long`) — 路径参数交通信息ID
**请求体** `OrderTransportRequest`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `legType` | `String` | 行程段OUTBOUND=去程接站, RETURN=回程送站 |
| `transportType` | `String` | 交通类型FLIGHT=航班, TRAIN=火车 |
| `transportNo` | `String` | 航班号或车次 |
| `departureStation` | `String` | 出发站/机场 |
| `arrivalStation` | `String` | 到达站/机场 |
| `travelDate` | `LocalDate` | 乘坐日期 |
| `remark` | `String` | 备注 |
**响应** `Result<OrderTransportVO>`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `transportId` | `String` | 交通信息ID |
| `orderId` | `String` | 订单ID |
| `legType` | `String` | 行程段OUTBOUND=去程接站, RETURN=回程送站 |
| `transportType` | `String` | 交通类型FLIGHT=航班, TRAIN=火车 |
| `transportNo` | `String` | 航班号或车次 |
| `departureStation` | `String` | 出发站/机场 |
| `arrivalStation` | `String` | 到达站/机场 |
| `travelDate` | `LocalDate` | 乘坐日期 |
| `remark` | `String` | 备注 |
| `createdByType` | `String` | 填写人类型ADMIN/USER |
| `createdAt` | `LocalDateTime` | 创建时间 |
| `planDepartTime` | `String` | 计划出发时间 |
| `planArriveTime` | `String` | 计划到达时间 |
| `actualDepartTime` | `String` | 实际/预计出发时间 |
| `actualArriveTime` | `String` | 实际/预计到达时间 |
| `liveStatus` | `String` | 状态(如:计划/起飞/到达/延误/晚点) |
| `extraInfo` | `Map<String, String>` | 航班额外信息:航站楼/登机口/出口等 |
### 📌 `DELETE` /admin/order/transport/{transportId} — 删除交通信息
**参数**
- `{transportId}` (`Long`) — 路径参数交通信息ID
**响应** `Result<Void>`
### 📌 `GET` /admin/order/{orderId}/transports — 查询订单交通信息(含实时动态)
> 返回订单的去程/回程交通信息,自动从飞常准API查询实时航班/火车状态。
**参数**
- `{orderId}` (`Long`) — 路径参数订单ID
**响应** `Result<List<OrderTransportVO>>`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `transportId` | `String` | 交通信息ID |
| `orderId` | `String` | 订单ID |
| `legType` | `String` | 行程段OUTBOUND=去程接站, RETURN=回程送站 |
| `transportType` | `String` | 交通类型FLIGHT=航班, TRAIN=火车 |
| `transportNo` | `String` | 航班号或车次 |
| `departureStation` | `String` | 出发站/机场 |
| `arrivalStation` | `String` | 到达站/机场 |
| `travelDate` | `LocalDate` | 乘坐日期 |
| `remark` | `String` | 备注 |
| `createdByType` | `String` | 填写人类型ADMIN/USER |
| `createdAt` | `LocalDateTime` | 创建时间 |
| `planDepartTime` | `String` | 计划出发时间 |
| `planArriveTime` | `String` | 计划到达时间 |
| `actualDepartTime` | `String` | 实际/预计出发时间 |
| `actualArriveTime` | `String` | 实际/预计到达时间 |
| `liveStatus` | `String` | 状态(如:计划/起飞/到达/延误/晚点) |
| `extraInfo` | `Map<String, String>` | 航班额外信息:航站楼/登机口/出口等 |
### 🆕 新增: InternalOrderTransport
> 📖 **接口文档**: [http://192.168.100.236:8084/doc.html](http://192.168.100.236:8084/doc.html) → 标签 **「【内部接口】订单交通信息Feign调用」**
### 📌 `GET` /internal/order/transport/{orderId} — 查询订单交通信息(含实时动态)
**参数**
- `{orderId}` (`Long`) — 路径参数
**响应** `Result<List<OrderTransportVO>>`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `transportId` | `String` | 交通信息ID |
| `orderId` | `String` | 订单ID |
| `legType` | `String` | 行程段OUTBOUND=去程接站, RETURN=回程送站 |
| `transportType` | `String` | 交通类型FLIGHT=航班, TRAIN=火车 |
| `transportNo` | `String` | 航班号或车次 |
| `departureStation` | `String` | 出发站/机场 |
| `arrivalStation` | `String` | 到达站/机场 |
| `travelDate` | `LocalDate` | 乘坐日期 |
| `remark` | `String` | 备注 |
| `createdByType` | `String` | 填写人类型ADMIN/USER |
| `createdAt` | `LocalDateTime` | 创建时间 |
| `planDepartTime` | `String` | 计划出发时间 |
| `planArriveTime` | `String` | 计划到达时间 |
| `actualDepartTime` | `String` | 实际/预计出发时间 |
| `actualArriveTime` | `String` | 实际/预计到达时间 |
| `liveStatus` | `String` | 状态(如:计划/起飞/到达/延误/晚点) |
| `extraInfo` | `Map<String, String>` | 航班额外信息:航站楼/登机口/出口等 |
### 📌 `POST` /internal/order/transport/{orderId} — 添加交通信息(小程序用户)
**参数**
- `{orderId}` (`Long`) — 路径参数
- `userId` (`Long`) — 查询参数
**响应** `Result<OrderTransportVO>`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `transportId` | `String` | 交通信息ID |
| `orderId` | `String` | 订单ID |
| `legType` | `String` | 行程段OUTBOUND=去程接站, RETURN=回程送站 |
| `transportType` | `String` | 交通类型FLIGHT=航班, TRAIN=火车 |
| `transportNo` | `String` | 航班号或车次 |
| `departureStation` | `String` | 出发站/机场 |
| `arrivalStation` | `String` | 到达站/机场 |
| `travelDate` | `LocalDate` | 乘坐日期 |
| `remark` | `String` | 备注 |
| `createdByType` | `String` | 填写人类型ADMIN/USER |
| `createdAt` | `LocalDateTime` | 创建时间 |
| `planDepartTime` | `String` | 计划出发时间 |
| `planArriveTime` | `String` | 计划到达时间 |
| `actualDepartTime` | `String` | 实际/预计出发时间 |
| `actualArriveTime` | `String` | 实际/预计到达时间 |
| `liveStatus` | `String` | 状态(如:计划/起飞/到达/延误/晚点) |
| `extraInfo` | `Map<String, String>` | 航班额外信息:航站楼/登机口/出口等 |
---
<details>
<summary>📁 全部变更文件 (点击展开)</summary>
```
A hl-mp-service/src/main/java/com/hulalv/mp/controller/MpOrderTransportController.java
M hl-mp-service/src/main/java/com/hulalv/mp/feign/MpOrderFeignClient.java
M hl-mp-service/src/main/java/com/hulalv/mp/feign/MpOrderFeignFallbackFactory.java
A hl-order-service/src/main/java/com/hulalv/order/controller/AdminOrderTransportController.java
A hl-order-service/src/main/java/com/hulalv/order/controller/InternalOrderTransportController.java
A hl-order-service/src/main/java/com/hulalv/order/dto/OrderTransportRequest.java
A hl-order-service/src/main/java/com/hulalv/order/entity/OrderTransport.java
A hl-order-service/src/main/java/com/hulalv/order/feign/TransportFeignClient.java
A hl-order-service/src/main/java/com/hulalv/order/feign/TransportFeignFallbackFactory.java
A hl-order-service/src/main/java/com/hulalv/order/mapper/OrderTransportMapper.java
A hl-order-service/src/main/java/com/hulalv/order/service/OrderTransportService.java
A hl-order-service/src/main/java/com/hulalv/order/vo/OrderTransportVO.java
A hl-transport-service/src/main/java/com/hulalv/transport/controller/InternalTransportController.java
A sql/order_transport.sql
```
</details>