# 接口变更记录 — 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>