# 接口变更记录 — 2026-03-18 20:48 > **提交** `a6d360a` · **作者** wx · **时间** 2026-03-18 20:48:58 +0800 > > feat: 订单交通信息管理 + 合同平台选择 + 超时通知 + transport-service ## 变更总览 - **hl-transport-service** - 🆕 AdminTransport (+7 接口) - **合同服务** - AdminContract (+1) - **订单服务** - AdminOrder (+2) - MpOrder (+2) --- ## hl-transport-service ### 🆕 新增: AdminTransport ### 📌 `GET` /admin/transport/flight/by-flight-no — 按航班号查询航班动态 **参数** - `flightNo` (`String`) — 查询参数 - `date` (`String`) — 查询参数 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `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` /admin/transport/flight/by-airport — 按机场三字码查询航班动态 **参数** - `dep` (`String`) — 查询参数 - `arr` (`String`) — 查询参数 - `date` (`String`) — 查询参数 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `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` /admin/transport/flight/by-city — 按城市三字码查询航班动态 **参数** - `depCity` (`String`) — 查询参数 - `arrCity` (`String`) — 查询参数 - `date` (`String`) — 查询参数 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `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` /admin/transport/train/by-train-no-stations — 按车次+出发站+到达站查询火车动态 **参数** - `trainNo` (`String`) — 查询参数 - `dep` (`String`) — 查询参数 - `arr` (`String`) — 查询参数 - `date` (`String`) — 查询参数 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `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` | 经停站列表 | ### 📌 `GET` /admin/transport/train/by-train-no — 按车次查询火车动态(含全部经停站) **参数** - `trainNo` (`String`) — 查询参数 - `date` (`String`) — 查询参数 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `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` | 经停站列表 | ### 📌 `GET` /admin/transport/train/by-station — 按出发站+到达站查询火车车次 **参数** - `dep` (`String`) — 查询参数 - `arr` (`String`) — 查询参数 - `date` (`String`) — 查询参数 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `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` | 经停站列表 | ### 📌 `GET` /admin/transport/train/by-city — 按出发城市+到达城市查询火车车次 **参数** - `depCity` (`String`) — 查询参数 - `arrCity` (`String`) — 查询参数 - `date` (`String`) — 查询参数 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `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` | 经停站列表 | --- ## 合同服务 ### AdminContract > 📖 **接口文档**: [http://192.168.100.236:8095/doc.html](http://192.168.100.236:8095/doc.html) → 标签 **「合同管理」** ### 🆕 `GET` /admin/contract/platforms — 可用合同平台列表 > 返回系统已对接的合同平台列表及可用状态。 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `platformName` | `String` | | | `displayName` | `String` | | | `available` | `boolean` | | --- ## 订单服务 ### AdminOrder > 📖 **接口文档**: [http://192.168.100.236:8084/doc.html](http://192.168.100.236:8084/doc.html) → 分组 **「3.1 订单管理」** → 标签 **「管理端订单接口」** ### 🆕 `PUT` /admin/order/{orderId}/transport — 保存交通信息(航班/车次) > 为订单保存交通信息,支持多条航班和车次。每次提交为全量替换(先删后增)。 **参数** - `{orderId}` (`Long`) — 路径参数:订单ID **请求体** `TransportSegmentRequest` | 字段 | 类型 | 说明 | | --- | --- | --- | | `segments` | `List` | 交通分段列表 | | `transportType` | `String` | 交通类型(字典:transport_type): FLIGHT-航班, TRAIN-火车 | | `transportNo` | `String` | 航班号/车次号 | | `departStation` | `String` | 出发站/出发机场 | | `arriveStation` | `String` | 到达站/到达机场 | | `departTime` | `LocalDateTime` | 出发时间 | | `arriveTime` | `LocalDateTime` | 到达时间 | | `remark` | `String` | 备注 | **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `segmentId` | `Long` | 分段ID | | `orderId` | `Long` | 订单ID | | `transportType` | `String` | 交通类型(字典:transport_type): FLIGHT-航班, TRAIN-火车 | | `transportNo` | `String` | 航班号/车次号 | | `departStation` | `String` | 出发站/出发机场 | | `arriveStation` | `String` | 到达站/到达机场 | | `departTime` | `LocalDateTime` | 出发时间 | | `arriveTime` | `LocalDateTime` | 到达时间 | | `remark` | `String` | 备注 | | `sortOrder` | `Integer` | 排序序号 | | `deletedAt` | `LocalDateTime` | 删除时间(软删除) | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 🆕 `GET` /admin/order/{orderId}/transport — 查询交通信息 > 查询订单的所有交通信息(航班/车次),按排序序号和出发时间升序排列 **参数** - `{orderId}` (`Long`) — 路径参数:订单ID **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `segmentId` | `Long` | 分段ID | | `orderId` | `Long` | 订单ID | | `transportType` | `String` | 交通类型(字典:transport_type): FLIGHT-航班, TRAIN-火车 | | `transportNo` | `String` | 航班号/车次号 | | `departStation` | `String` | 出发站/出发机场 | | `arriveStation` | `String` | 到达站/到达机场 | | `departTime` | `LocalDateTime` | 出发时间 | | `arriveTime` | `LocalDateTime` | 到达时间 | | `remark` | `String` | 备注 | | `sortOrder` | `Integer` | 排序序号 | | `deletedAt` | `LocalDateTime` | 删除时间(软删除) | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### MpOrder > 📖 **接口文档**: [http://192.168.100.236:8084/doc.html](http://192.168.100.236:8084/doc.html) → 标签 **「C端订单接口」** ### 🆕 `PUT` /mp/order/{orderId}/transport — 保存交通信息(航班/车次) > 用户为自己的订单录入交通信息,支持多条航班和车次。每次提交为全量替换。 **参数** - `{orderId}` (`Long`) — 路径参数:订单ID **请求体** `TransportSegmentRequest` | 字段 | 类型 | 说明 | | --- | --- | --- | | `segments` | `List` | 交通分段列表 | | `transportType` | `String` | 交通类型(字典:transport_type): FLIGHT-航班, TRAIN-火车 | | `transportNo` | `String` | 航班号/车次号 | | `departStation` | `String` | 出发站/出发机场 | | `arriveStation` | `String` | 到达站/到达机场 | | `departTime` | `LocalDateTime` | 出发时间 | | `arriveTime` | `LocalDateTime` | 到达时间 | | `remark` | `String` | 备注 | **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `segmentId` | `Long` | 分段ID | | `orderId` | `Long` | 订单ID | | `transportType` | `String` | 交通类型(字典:transport_type): FLIGHT-航班, TRAIN-火车 | | `transportNo` | `String` | 航班号/车次号 | | `departStation` | `String` | 出发站/出发机场 | | `arriveStation` | `String` | 到达站/到达机场 | | `departTime` | `LocalDateTime` | 出发时间 | | `arriveTime` | `LocalDateTime` | 到达时间 | | `remark` | `String` | 备注 | | `sortOrder` | `Integer` | 排序序号 | | `deletedAt` | `LocalDateTime` | 删除时间(软删除) | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 🆕 `GET` /mp/order/{orderId}/transport — 查询交通信息 > 查询自己订单的所有交通信息(航班/车次) **参数** - `{orderId}` (`Long`) — 路径参数:订单ID **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `segmentId` | `Long` | 分段ID | | `orderId` | `Long` | 订单ID | | `transportType` | `String` | 交通类型(字典:transport_type): FLIGHT-航班, TRAIN-火车 | | `transportNo` | `String` | 航班号/车次号 | | `departStation` | `String` | 出发站/出发机场 | | `arriveStation` | `String` | 到达站/到达机场 | | `departTime` | `LocalDateTime` | 出发时间 | | `arriveTime` | `LocalDateTime` | 到达时间 | | `remark` | `String` | 备注 | | `sortOrder` | `Integer` | 排序序号 | | `deletedAt` | `LocalDateTime` | 删除时间(软删除) | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | --- ## 📦 其他数据对象变更 > 以下变更未直接关联到本次接口变更,但可能影响现有接口的请求/响应 ### hl-transport-service #### 🆕 TrainStopVO | 字段 | 类型 | 说明 | | --- | --- | --- | | `stationName` | `String` | 车站名称 | | `arriveTime` | `String` | 到站时间 | | `departTime` | `String` | 发车时间 | ### 合同服务 #### ✏️ CreateContractRequest - 🆕 `platform` (`String`) — 合同平台(字典:contract_platform): 12301-全国旅游监管平台, FADADA-法大大, ESIGN-e签宝, TENCENT_ESS-腾讯电子签。不传则根据模板自动确定 #### ✏️ ReportContractRequest - 🆕 `platform` (`String`) — 合同平台(字典:contract_platform): 12301-全国旅游监管平台, FADADA-法大大, ESIGN-e签宝, TENCENT_ESS-腾讯电子签 ### 订单服务 #### ✏️ OrderDetailVO - 🆕 `transportSegments` (`List`) — 交通信息列表(航班/车次,含transportType/transportNo/departStation/arriveStation/departTime/arriveTime等)
📁 全部变更文件 (点击展开) ``` M hl-contract-service/src/main/java/com/hulalv/contract/controller/AdminContractController.java M hl-contract-service/src/main/java/com/hulalv/contract/dto/CreateContractRequest.java M hl-contract-service/src/main/java/com/hulalv/contract/dto/ReportContractRequest.java M hl-contract-service/src/main/java/com/hulalv/contract/service/ContractService.java M hl-gateway/src/main/resources/application.yml M hl-order-service/src/main/java/com/hulalv/order/controller/AdminOrderController.java M hl-order-service/src/main/java/com/hulalv/order/controller/MpOrderController.java A hl-order-service/src/main/java/com/hulalv/order/dto/TransportSegmentRequest.java A hl-order-service/src/main/java/com/hulalv/order/entity/OrderTransportSegment.java A hl-order-service/src/main/java/com/hulalv/order/mapper/OrderTransportSegmentMapper.java M hl-order-service/src/main/java/com/hulalv/order/service/OrderService.java A hl-order-service/src/main/java/com/hulalv/order/service/OrderTransportSegmentService.java M hl-order-service/src/main/java/com/hulalv/order/vo/OrderDetailVO.java M hl-order-service/src/test/java/com/hulalv/order/service/OrderServiceTest.java A hl-transport-service/pom.xml A hl-transport-service/src/main/java/com/hulalv/transport/TransportServiceApplication.java A hl-transport-service/src/main/java/com/hulalv/transport/config/Knife4jConfig.java A hl-transport-service/src/main/java/com/hulalv/transport/config/RestTemplateConfig.java A hl-transport-service/src/main/java/com/hulalv/transport/config/VariFlightProperties.java A hl-transport-service/src/main/java/com/hulalv/transport/config/WebMvcConfig.java A hl-transport-service/src/main/java/com/hulalv/transport/constant/TransportConstants.java A hl-transport-service/src/main/java/com/hulalv/transport/controller/AdminTransportController.java A hl-transport-service/src/main/java/com/hulalv/transport/interceptor/AdminAuthInterceptor.java A hl-transport-service/src/main/java/com/hulalv/transport/service/FlightService.java A hl-transport-service/src/main/java/com/hulalv/transport/service/TrainService.java A hl-transport-service/src/main/java/com/hulalv/transport/service/VariFlightApiClient.java A hl-transport-service/src/main/java/com/hulalv/transport/vo/FlightVO.java A hl-transport-service/src/main/java/com/hulalv/transport/vo/TrainStopVO.java A hl-transport-service/src/main/java/com/hulalv/transport/vo/TrainVO.java A hl-transport-service/src/main/resources/bootstrap.yml A nacos-config/hl-transport-service-dev.yml M pom.xml A sql/order_transport_segment.sql ```