hl-api-changelog/2026-03/17_0928/hl-order-service.md
2026-03-17 09:28:57 +08:00

3595 行
148 KiB
Markdown

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

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

# 订单服务 API 文档
**服务**: `hl-order-service`
**接口总数**: 90
## 目录
- **工单管理** (8 个接口)
- **早鸟优惠计划管理** (6 个接口)
- **管理端相册接口** (10 个接口)
- **管理端订单接口** (24 个接口)
- **管理端订单行程编辑** (18 个接口)
- **订单待办接口** (7 个接口)
- **订单配置接口** (2 个接口)
- **退款政策管理** (6 个接口)
- **退款管理** (9 个接口)
---
## 工单管理
### `POST` /admin/order/work-order
**创建工单**
创建旅途中的变更工单,需关联订单ID。
可指定处理人,未指定则进入待分配状态。可附带差价信息和资源详情JSON
【关联字典】
- 请求参数 type → 字典work_order_type工单类型
- 请求参数 priority → 字典work_order_priority工单优先级
- 返回字段 status → 字典work_order_status工单状态
- 返回字段 type → 字典work_order_type工单类型
- 返回字段 priority → 字典work_order_priority工单优先级
**请求体** `CreateWorkOrderRequest`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `assigneeAdminId` | `long` | | 指定处理人ID |
| `assigneeName` | `string` | | 指定处理人姓名 |
| `attachmentUrls` | `string` | | 附件URL(JSON数组) |
| `costDifference` | `number` | | 差价(正数=客户需补差价, 负数=需退费给客户) |
| `description` | `string` | 是 | 问题描述 |
| `orderId` | `long` | 是 | 关联订单ID |
| `priority` | `string` | 是 | 优先级: URGENT(紧急,如当天出发需处理)/NORMAL(普通) |
| `resourceDetail` | `string` | | 资源详情JSON(酒店/车辆/景点信息) |
| `type` | `string` | 是 | 工单类型: ROOM_CHANGE(换房)/ROOM_ADD(加房)/CHECKOUT_CHANGE(改退房日期)/HOTEL_ISSUE(酒店问题)/VEHICLE_CHANGE(换车)/SCENIC_ADD(加景点)/SCENIC_REMOVE(减景点)/OTHER(其他) |
**响应** `统一响应结果«WorkOrderVO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `WorkOrderVO` | | 响应数据 |
|   `assigneeAdminId` | `string` | | 处理人ID |
|   `assigneeName` | `string` | | 处理人姓名 |
|   `attachmentUrls` | `string` | | 附件URL(JSON数组) |
|   `costDifference` | `number` | | 差价 |
|   `createTime` | `string` | | 创建时间 |
|   `creatorAdminId` | `string` | | 发起人ID |
|   `creatorName` | `string` | | 发起人姓名 |
|   `description` | `string` | | 问题描述 |
|   `logs` | `工单操作日志VO[]` | | 操作日志列表 |
|     `action` | `string` | | 操作动作 |
|     `actionLabel` | `string` | | 操作动作标签 |
|     `content` | `string` | | 操作内容 |
|     `createdAt` | `string` | | 操作时间 |
|     `logId` | `string` | | 日志ID |
|     `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `string` | | 关联订单ID |
|   `orderNo` | `string` | | 关联订单编号 |
|   `priority` | `string` | | 优先级 |
|   `priorityLabel` | `string` | | 优先级标签 |
|   `rejectReason` | `string` | | 驳回原因 |
|   `resolution` | `string` | | 处理结果 |
|   `resolvedAt` | `string` | | 处理完成时间 |
|   `resourceDetail` | `string` | | 资源详情JSON |
|   `status` | `string` | | 状态 |
|   `statusLabel` | `string` | | 状态标签 |
|   `type` | `string` | | 工单类型 |
|   `typeLabel` | `string` | | 工单类型标签 |
|   `updateTime` | `string` | | 更新时间 |
|   `workOrderId` | `string` | | 工单ID |
|   `workOrderNo` | `string` | | 工单编号 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/work-order/count-by-order/{orderId}
**按订单查工单数量**
返回指定订单关联的工单总数,用于订单详情页展示工单角标
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«int»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `int` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/work-order/list
**工单列表**
分页查询工单,支持按状态/类型/优先级/订单编号/处理人筛选。
工单用于处理旅行中的突发变更需求(如换房、换车、加景点等)
【关联字典】
- 筛选参数 status → 字典work_order_status工单状态
- 筛选参数 type → 字典work_order_type工单类型
- 筛选参数 priority → 字典work_order_priority工单优先级
- 返回字段 status → 字典work_order_status工单状态
- 返回字段 type → 字典work_order_type工单类型
- 返回字段 priority → 字典work_order_priority工单优先级
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `assigneeAdminId` | `integer(int64)` | | 处理人ID | |
| `orderNo` | `string` | | 订单编号(模糊) | |
| `page` | `integer(int32)` | | 页码 | |
| `pageSize` | `integer(int32)` | | 每页条数 | |
| `priority` | `string` | | 优先级: URGENT/NORMAL | |
| `status` | `string` | | 状态: PENDING/PROCESSING/RESOLVED/REJECTED | |
| `type` | `string` | | 类型: ROOM_CHANGE/ROOM_ADD/CHECKOUT_CHANGE/HOTEL_ISSUE/VEHICLE_CHANGE/SCENIC_ADD/SCENIC_REMOVE/OTHER | |
**响应** `统一响应结果«分页结果«WorkOrderVO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `分页结果«WorkOrderVO»` | | 响应数据 |
|   `page` | `int` | | 当前页码 |
|   `pageSize` | `int` | | 每页条数 |
|   `records` | `WorkOrderVO[]` | | 数据列表 |
|     `assigneeAdminId` | `string` | | 处理人ID |
|     `assigneeName` | `string` | | 处理人姓名 |
|     `attachmentUrls` | `string` | | 附件URL(JSON数组) |
|     `costDifference` | `number` | | 差价 |
|     `createTime` | `string` | | 创建时间 |
|     `creatorAdminId` | `string` | | 发起人ID |
|     `creatorName` | `string` | | 发起人姓名 |
|     `description` | `string` | | 问题描述 |
|     `logs` | `工单操作日志VO[]` | | 操作日志列表 |
|     `orderId` | `string` | | 关联订单ID |
|     `orderNo` | `string` | | 关联订单编号 |
|     `priority` | `string` | | 优先级 |
|     `priorityLabel` | `string` | | 优先级标签 |
|     `rejectReason` | `string` | | 驳回原因 |
|     `resolution` | `string` | | 处理结果 |
|     `resolvedAt` | `string` | | 处理完成时间 |
|     `resourceDetail` | `string` | | 资源详情JSON |
|     `status` | `string` | | 状态 |
|     `statusLabel` | `string` | | 状态标签 |
|     `type` | `string` | | 工单类型 |
|     `typeLabel` | `string` | | 工单类型标签 |
|     `updateTime` | `string` | | 更新时间 |
|     `workOrderId` | `string` | | 工单ID |
|     `workOrderNo` | `string` | | 工单编号 |
|   `total` | `int` | | 总记录数 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/work-order/stats
**工单统计**
返回各状态的工单数量和紧急工单数,用于工单管理页面顶部统计卡片
【关联字典】
- 返回字段中的状态key → 字典work_order_status工单状态
**响应** `统一响应结果«Map«string,object»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `object` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/work-order/{workOrderId}
**工单详情**
返回工单完整信息,包括关联订单、资源详情、处理记录和备注列表
【关联字典】
- 返回字段 status → 字典work_order_status工单状态
- 返回字段 type → 字典work_order_type工单类型
- 返回字段 priority → 字典work_order_priority工单优先级
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `workOrderId` | `integer` | | 工单ID |
**响应** `统一响应结果«WorkOrderVO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `WorkOrderVO` | | 响应数据 |
|   `assigneeAdminId` | `string` | | 处理人ID |
|   `assigneeName` | `string` | | 处理人姓名 |
|   `attachmentUrls` | `string` | | 附件URL(JSON数组) |
|   `costDifference` | `number` | | 差价 |
|   `createTime` | `string` | | 创建时间 |
|   `creatorAdminId` | `string` | | 发起人ID |
|   `creatorName` | `string` | | 发起人姓名 |
|   `description` | `string` | | 问题描述 |
|   `logs` | `工单操作日志VO[]` | | 操作日志列表 |
|     `action` | `string` | | 操作动作 |
|     `actionLabel` | `string` | | 操作动作标签 |
|     `content` | `string` | | 操作内容 |
|     `createdAt` | `string` | | 操作时间 |
|     `logId` | `string` | | 日志ID |
|     `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `string` | | 关联订单ID |
|   `orderNo` | `string` | | 关联订单编号 |
|   `priority` | `string` | | 优先级 |
|   `priorityLabel` | `string` | | 优先级标签 |
|   `rejectReason` | `string` | | 驳回原因 |
|   `resolution` | `string` | | 处理结果 |
|   `resolvedAt` | `string` | | 处理完成时间 |
|   `resourceDetail` | `string` | | 资源详情JSON |
|   `status` | `string` | | 状态 |
|   `statusLabel` | `string` | | 状态标签 |
|   `type` | `string` | | 工单类型 |
|   `typeLabel` | `string` | | 工单类型标签 |
|   `updateTime` | `string` | | 更新时间 |
|   `workOrderId` | `string` | | 工单ID |
|   `workOrderNo` | `string` | | 工单编号 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/work-order/{workOrderId}/assign
**指派工单**
将工单分配给指定管理员处理。被指派人将在待办列表中看到该工单
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `workOrderId` | `integer` | | 工单ID |
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `assigneeId` | `integer(int64)` | | 处理人ID | |
| `assigneeName` | `string` | | 处理人姓名 | |
**响应** `统一响应结果«WorkOrderVO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `WorkOrderVO` | | 响应数据 |
|   `assigneeAdminId` | `string` | | 处理人ID |
|   `assigneeName` | `string` | | 处理人姓名 |
|   `attachmentUrls` | `string` | | 附件URL(JSON数组) |
|   `costDifference` | `number` | | 差价 |
|   `createTime` | `string` | | 创建时间 |
|   `creatorAdminId` | `string` | | 发起人ID |
|   `creatorName` | `string` | | 发起人姓名 |
|   `description` | `string` | | 问题描述 |
|   `logs` | `工单操作日志VO[]` | | 操作日志列表 |
|     `action` | `string` | | 操作动作 |
|     `actionLabel` | `string` | | 操作动作标签 |
|     `content` | `string` | | 操作内容 |
|     `createdAt` | `string` | | 操作时间 |
|     `logId` | `string` | | 日志ID |
|     `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `string` | | 关联订单ID |
|   `orderNo` | `string` | | 关联订单编号 |
|   `priority` | `string` | | 优先级 |
|   `priorityLabel` | `string` | | 优先级标签 |
|   `rejectReason` | `string` | | 驳回原因 |
|   `resolution` | `string` | | 处理结果 |
|   `resolvedAt` | `string` | | 处理完成时间 |
|   `resourceDetail` | `string` | | 资源详情JSON |
|   `status` | `string` | | 状态 |
|   `statusLabel` | `string` | | 状态标签 |
|   `type` | `string` | | 工单类型 |
|   `typeLabel` | `string` | | 工单类型标签 |
|   `updateTime` | `string` | | 更新时间 |
|   `workOrderId` | `string` | | 工单ID |
|   `workOrderNo` | `string` | | 工单编号 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/work-order/{workOrderId}/comment
**添加工单备注**
在工单中追加备注信息,用于内部沟通和处理过程记录
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `workOrderId` | `integer` | | 工单ID |
**请求体** `object`
**响应** `统一响应结果«WorkOrderVO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `WorkOrderVO` | | 响应数据 |
|   `assigneeAdminId` | `string` | | 处理人ID |
|   `assigneeName` | `string` | | 处理人姓名 |
|   `attachmentUrls` | `string` | | 附件URL(JSON数组) |
|   `costDifference` | `number` | | 差价 |
|   `createTime` | `string` | | 创建时间 |
|   `creatorAdminId` | `string` | | 发起人ID |
|   `creatorName` | `string` | | 发起人姓名 |
|   `description` | `string` | | 问题描述 |
|   `logs` | `工单操作日志VO[]` | | 操作日志列表 |
|     `action` | `string` | | 操作动作 |
|     `actionLabel` | `string` | | 操作动作标签 |
|     `content` | `string` | | 操作内容 |
|     `createdAt` | `string` | | 操作时间 |
|     `logId` | `string` | | 日志ID |
|     `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `string` | | 关联订单ID |
|   `orderNo` | `string` | | 关联订单编号 |
|   `priority` | `string` | | 优先级 |
|   `priorityLabel` | `string` | | 优先级标签 |
|   `rejectReason` | `string` | | 驳回原因 |
|   `resolution` | `string` | | 处理结果 |
|   `resolvedAt` | `string` | | 处理完成时间 |
|   `resourceDetail` | `string` | | 资源详情JSON |
|   `status` | `string` | | 状态 |
|   `statusLabel` | `string` | | 状态标签 |
|   `type` | `string` | | 工单类型 |
|   `typeLabel` | `string` | | 工单类型标签 |
|   `updateTime` | `string` | | 更新时间 |
|   `workOrderId` | `string` | | 工单ID |
|   `workOrderNo` | `string` | | 工单编号 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/work-order/{workOrderId}/process
**处理工单(解决/驳回)**
解决时需填写处理结果(resolution),驳回时需填写驳回原因(rejectReason)。
可调整差价(costDifference),正数表示加价,负数表示退费
【关联字典】
- 返回字段 status → 字典work_order_status工单状态
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `workOrderId` | `integer` | | 工单ID |
**请求体** `ProcessWorkOrderRequest`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `action` | `string` | 是 | 操作: RESOLVE(解决) / REJECT(驳回) |
| `costDifference` | `number` | | 调整后差价 |
| `rejectReason` | `string` | | 驳回原因(驳回时填写) |
| `resolution` | `string` | | 处理结果(解决时填写) |
**响应** `统一响应结果«WorkOrderVO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `WorkOrderVO` | | 响应数据 |
|   `assigneeAdminId` | `string` | | 处理人ID |
|   `assigneeName` | `string` | | 处理人姓名 |
|   `attachmentUrls` | `string` | | 附件URL(JSON数组) |
|   `costDifference` | `number` | | 差价 |
|   `createTime` | `string` | | 创建时间 |
|   `creatorAdminId` | `string` | | 发起人ID |
|   `creatorName` | `string` | | 发起人姓名 |
|   `description` | `string` | | 问题描述 |
|   `logs` | `工单操作日志VO[]` | | 操作日志列表 |
|     `action` | `string` | | 操作动作 |
|     `actionLabel` | `string` | | 操作动作标签 |
|     `content` | `string` | | 操作内容 |
|     `createdAt` | `string` | | 操作时间 |
|     `logId` | `string` | | 日志ID |
|     `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `string` | | 关联订单ID |
|   `orderNo` | `string` | | 关联订单编号 |
|   `priority` | `string` | | 优先级 |
|   `priorityLabel` | `string` | | 优先级标签 |
|   `rejectReason` | `string` | | 驳回原因 |
|   `resolution` | `string` | | 处理结果 |
|   `resolvedAt` | `string` | | 处理完成时间 |
|   `resourceDetail` | `string` | | 资源详情JSON |
|   `status` | `string` | | 状态 |
|   `statusLabel` | `string` | | 状态标签 |
|   `type` | `string` | | 工单类型 |
|   `typeLabel` | `string` | | 工单类型标签 |
|   `updateTime` | `string` | | 更新时间 |
|   `workOrderId` | `string` | | 工单ID |
|   `workOrderNo` | `string` | | 工单编号 |
| `message` | `string` | | 响应消息 |
---
## 早鸟优惠计划管理
### `POST` /admin/order/early-bird
**创建早鸟优惠计划**
创建一个早鸟优惠计划,在指定日期范围内下单且满足最低人数条件的订单可享受优惠。
下单时系统自动匹配最优的早鸟计划。权限:仅超级管理员(SUPER_ADMIN)
**请求体** `早鸟优惠计划请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `discountAmount` | `number` | 是 | 优惠金额(从订单总价中扣减的固定金额) |
| `endDate` | `string` | 是 | 生效结束日期 |
| `minPeople` | `int` | 是 | 最低出行人数(含成人+儿童),订单人数>=此值才能享受优惠 |
| `planName` | `string` | 是 | 计划名称 |
| `remark` | `string` | | 备注 |
| `startDate` | `string` | 是 | 生效开始日期 |
**响应** `统一响应结果«早鸟优惠计划VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `早鸟优惠计划VO` | | 响应数据 |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 创建人ID |
|   `discountAmount` | `number` | | 优惠金额 |
|   `enabled` | `boolean` | | 是否启用 |
|   `endDate` | `string` | | 生效结束日期 |
|   `minPeople` | `int` | | 最低人数 |
|   `planId` | `long` | | 计划ID |
|   `planName` | `string` | | 计划名称 |
|   `remark` | `string` | | 备注 |
|   `startDate` | `string` | | 生效开始日期 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/early-bird/list
**早鸟优惠计划列表**
分页查询所有早鸟优惠计划。权限:仅超级管理员(SUPER_ADMIN)
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `page` | `integer(int32)` | | 页码 | |
| `pageSize` | `integer(int32)` | | 每页条数 | |
**响应** `统一响应结果«分页结果«早鸟优惠计划VO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `分页结果«早鸟优惠计划VO»` | | 响应数据 |
|   `page` | `int` | | 当前页码 |
|   `pageSize` | `int` | | 每页条数 |
|   `records` | `早鸟优惠计划VO[]` | | 数据列表 |
|     `createTime` | `string` | | 创建时间 |
|     `createdBy` | `long` | | 创建人ID |
|     `discountAmount` | `number` | | 优惠金额 |
|     `enabled` | `boolean` | | 是否启用 |
|     `endDate` | `string` | | 生效结束日期 |
|     `minPeople` | `int` | | 最低人数 |
|     `planId` | `long` | | 计划ID |
|     `planName` | `string` | | 计划名称 |
|     `remark` | `string` | | 备注 |
|     `startDate` | `string` | | 生效开始日期 |
|     `updateTime` | `string` | | 更新时间 |
|   `total` | `int` | | 总记录数 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/early-bird/{planId}
**早鸟优惠计划详情**
权限:仅超级管理员(SUPER_ADMIN)
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `planId` | `integer` | | 早鸟计划ID |
**响应** `统一响应结果«早鸟优惠计划VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `早鸟优惠计划VO` | | 响应数据 |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 创建人ID |
|   `discountAmount` | `number` | | 优惠金额 |
|   `enabled` | `boolean` | | 是否启用 |
|   `endDate` | `string` | | 生效结束日期 |
|   `minPeople` | `int` | | 最低人数 |
|   `planId` | `long` | | 计划ID |
|   `planName` | `string` | | 计划名称 |
|   `remark` | `string` | | 备注 |
|   `startDate` | `string` | | 生效开始日期 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/early-bird/{planId}
**修改早鸟优惠计划**
权限:仅超级管理员(SUPER_ADMIN)。修改不影响已下单的订单优惠
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `planId` | `integer` | | 早鸟计划ID |
**请求体** `早鸟优惠计划请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `discountAmount` | `number` | 是 | 优惠金额(从订单总价中扣减的固定金额) |
| `endDate` | `string` | 是 | 生效结束日期 |
| `minPeople` | `int` | 是 | 最低出行人数(含成人+儿童),订单人数>=此值才能享受优惠 |
| `planName` | `string` | 是 | 计划名称 |
| `remark` | `string` | | 备注 |
| `startDate` | `string` | 是 | 生效开始日期 |
**响应** `统一响应结果«Void»`
---
### `DELETE` /admin/order/early-bird/{planId}
**删除早鸟优惠计划**
权限:仅超级管理员(SUPER_ADMIN)。删除不影响已下单的订单优惠
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `planId` | `integer` | | 早鸟计划ID |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/early-bird/{planId}/toggle
**启用/禁用早鸟优惠计划**
禁用后该计划不再参与自动匹配。权限:仅超级管理员(SUPER_ADMIN)
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `planId` | `integer` | | 早鸟计划ID |
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `enabled` | `boolean` | | 是否启用 | |
**响应** `统一响应结果«Void»`
---
## 管理端相册接口
### `PUT` /admin/order/album/file/{albumFileId}
**编辑文件信息**
**关联字典**
- album_file_type文件类型,返回字段fileTypeIMAGE=图片, VIDEO=视频
- album_location_type地点类型,返回字段locationTypeRESOURCE=关联资源, CUSTOM=自定义地点
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `albumFileId` | `integer` | | 相册文件ID |
**请求体** `AlbumFileUpdateRequest`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `customLocation` | `string` | | 自定义地点文本 |
| `description` | `string` | | 文件描述 |
| `locationType` | `string` | | 地点类型: RESOURCE/CUSTOM |
| `resourceId` | `long` | | 资源ID |
| `resourceName` | `string` | | 资源名称 |
| `resourceType` | `string` | | 资源类型 |
| `sortOrder` | `int` | | 排序号 |
**响应** `统一响应结果«AlbumFileVO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `AlbumFileVO` | | 响应数据 |
|   `albumFileId` | `long` | | 相册文件ID |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 上传人ID |
|   `customLocation` | `string` | | 自定义地点文本 |
|   `description` | `string` | | 文件描述 |
|   `fileId` | `long` | | 文件ID |
|   `fileType` | `string` | | 文件类型: IMAGE/VIDEO |
|   `folderId` | `long` | | 所属文件夹ID |
|   `locationText` | `string` | | 地点显示文本 |
|   `locationType` | `string` | | 地点类型: RESOURCE/CUSTOM |
|   `ossUrl` | `string` | | 文件访问URL |
|   `resourceId` | `long` | | 资源ID |
|   `resourceName` | `string` | | 资源名称 |
|   `resourceType` | `string` | | 资源类型 |
|   `sortOrder` | `int` | | 排序号 |
|   `thumbnailUrl` | `string` | | 缩略图URL |
| `message` | `string` | | 响应消息 |
---
### `DELETE` /admin/order/album/file/{albumFileId}
**删除文件**
删除相册中的单个文件(照片/视频。仅上传者或超级管理员可操作,删除后C端用户不再可见。
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `albumFileId` | `integer` | | 相册文件ID |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/album/folder/{folderId}
**编辑相册文件夹**
修改文件夹名称或描述。仅创建者或超级管理员可操作
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `folderId` | `integer` | | 文件夹ID |
**请求体** `AlbumFolderRequest`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `folderName` | `string` | | 文件夹名称 |
| `sortOrder` | `int` | | 排序号 |
**响应** `统一响应结果«AlbumFolderVO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `AlbumFolderVO` | | 响应数据 |
|   `coverThumbnailUrl` | `string` | | 封面缩略图URL |
|   `coverUrl` | `string` | | 封面文件URL |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 创建人ID |
|   `fileCount` | `int` | | 文件数量 |
|   `folderId` | `long` | | 文件夹ID |
|   `folderName` | `string` | | 文件夹名称 |
|   `orderId` | `long` | | 关联订单ID |
|   `sortOrder` | `int` | | 排序号 |
| `message` | `string` | | 响应消息 |
---
### `DELETE` /admin/order/album/folder/{folderId}
**删除相册文件夹**
删除文件夹及其下所有文件。仅创建者或超级管理员可操作。删除后C端用户不再可见
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `folderId` | `integer` | | 文件夹ID |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/album/folder/{folderId}/cover
**设置文件夹封面**
将文件夹中的指定文件设为封面图,封面图会在文件夹列表中展示。仅上传者或超级管理员可操作。
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `folderId` | `integer` | | 文件夹ID |
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `albumFileId` | `integer(int64)` | | 相册文件ID | |
**响应** `统一响应结果«Void»`
---
### `GET` /admin/order/album/folder/{folderId}/files
**查询文件夹下的文件列表**
**关联字典**
- album_file_type文件类型,返回字段fileTypeIMAGE=图片, VIDEO=视频
- album_location_type地点类型,返回字段locationTypeRESOURCE=关联资源, CUSTOM=自定义地点
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `folderId` | `integer` | | 文件夹ID |
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `page` | `integer(int32)` | | 页码 | |
| `size` | `integer(int32)` | | 每页数量 | |
**响应** `统一响应结果«分页结果«AlbumFileVO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `分页结果«AlbumFileVO»` | | 响应数据 |
|   `page` | `int` | | 当前页码 |
|   `pageSize` | `int` | | 每页条数 |
|   `records` | `AlbumFileVO[]` | | 数据列表 |
|     `albumFileId` | `long` | | 相册文件ID |
|     `createTime` | `string` | | 创建时间 |
|     `createdBy` | `long` | | 上传人ID |
|     `customLocation` | `string` | | 自定义地点文本 |
|     `description` | `string` | | 文件描述 |
|     `fileId` | `long` | | 文件ID |
|     `fileType` | `string` | | 文件类型: IMAGE/VIDEO |
|     `folderId` | `long` | | 所属文件夹ID |
|     `locationText` | `string` | | 地点显示文本 |
|     `locationType` | `string` | | 地点类型: RESOURCE/CUSTOM |
|     `ossUrl` | `string` | | 文件访问URL |
|     `resourceId` | `long` | | 资源ID |
|     `resourceName` | `string` | | 资源名称 |
|     `resourceType` | `string` | | 资源类型 |
|     `sortOrder` | `int` | | 排序号 |
|     `thumbnailUrl` | `string` | | 缩略图URL |
|   `total` | `int` | | 总记录数 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/album/folder/{folderId}/files
**批量添加文件到文件夹**
一次添加多个照片/视频到指定文件夹。文件需先通过文件服务上传获取OSS URL
**关联字典**
- album_file_type文件类型,返回字段fileTypeIMAGE=图片, VIDEO=视频
- album_location_type地点类型,返回字段locationTypeRESOURCE=关联资源, CUSTOM=自定义地点
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `folderId` | `integer` | | 文件夹ID |
**请求体** `AlbumFileBatchAddRequest`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `files` | `AlbumFileAddRequest[]` | | 文件列表 |
|   `customLocation` | `string` | | 自定义地点文本地点类型为CUSTOM时 |
|   `description` | `string` | | 文件描述 |
|   `fileId` | `long` | | 文件ID来自file_info |
|   `fileType` | `string` | | 文件类型: IMAGE/VIDEO |
|   `locationType` | `string` | | 地点类型: RESOURCE/CUSTOM |
|   `ossUrl` | `string` | | 文件访问URL |
|   `resourceId` | `long` | | 资源ID地点类型为RESOURCE时 |
|   `resourceName` | `string` | | 资源名称地点类型为RESOURCE时 |
|   `resourceType` | `string` | | 资源类型地点类型为RESOURCE时 |
|   `sortOrder` | `int` | | 排序号 |
|   `thumbnailUrl` | `string` | | 缩略图URL |
**响应** `统一响应结果«List«AlbumFileVO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `AlbumFileVO[]` | | 响应数据 |
|   `albumFileId` | `long` | | 相册文件ID |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 上传人ID |
|   `customLocation` | `string` | | 自定义地点文本 |
|   `description` | `string` | | 文件描述 |
|   `fileId` | `long` | | 文件ID |
|   `fileType` | `string` | | 文件类型: IMAGE/VIDEO |
|   `folderId` | `long` | | 所属文件夹ID |
|   `locationText` | `string` | | 地点显示文本 |
|   `locationType` | `string` | | 地点类型: RESOURCE/CUSTOM |
|   `ossUrl` | `string` | | 文件访问URL |
|   `resourceId` | `long` | | 资源ID |
|   `resourceName` | `string` | | 资源名称 |
|   `resourceType` | `string` | | 资源类型 |
|   `sortOrder` | `int` | | 排序号 |
|   `thumbnailUrl` | `string` | | 缩略图URL |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/album/my-uploads
**我的上传**
查询当前管理员上传的所有相册文件(跨订单),方便管理自己上传的内容
**关联字典**
- album_file_type文件类型,返回字段fileTypeIMAGE=图片, VIDEO=视频
- album_location_type地点类型,返回字段locationTypeRESOURCE=关联资源, CUSTOM=自定义地点
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `page` | `integer(int32)` | | 页码 | |
| `size` | `integer(int32)` | | 每页数量 | |
**响应** `统一响应结果«分页结果«AlbumFileVO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `分页结果«AlbumFileVO»` | | 响应数据 |
|   `page` | `int` | | 当前页码 |
|   `pageSize` | `int` | | 每页条数 |
|   `records` | `AlbumFileVO[]` | | 数据列表 |
|     `albumFileId` | `long` | | 相册文件ID |
|     `createTime` | `string` | | 创建时间 |
|     `createdBy` | `long` | | 上传人ID |
|     `customLocation` | `string` | | 自定义地点文本 |
|     `description` | `string` | | 文件描述 |
|     `fileId` | `long` | | 文件ID |
|     `fileType` | `string` | | 文件类型: IMAGE/VIDEO |
|     `folderId` | `long` | | 所属文件夹ID |
|     `locationText` | `string` | | 地点显示文本 |
|     `locationType` | `string` | | 地点类型: RESOURCE/CUSTOM |
|     `ossUrl` | `string` | | 文件访问URL |
|     `resourceId` | `long` | | 资源ID |
|     `resourceName` | `string` | | 资源名称 |
|     `resourceType` | `string` | | 资源类型 |
|     `sortOrder` | `int` | | 排序号 |
|     `thumbnailUrl` | `string` | | 缩略图URL |
|   `total` | `int` | | 总记录数 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/{orderId}/album/folder
**创建相册文件夹**
为订单创建旅行相册文件夹(如'第一天风景'、'合影'等),用于组织旅途照片/视频
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `AlbumFolderRequest`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `folderName` | `string` | | 文件夹名称 |
| `sortOrder` | `int` | | 排序号 |
**响应** `统一响应结果«AlbumFolderVO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `AlbumFolderVO` | | 响应数据 |
|   `coverThumbnailUrl` | `string` | | 封面缩略图URL |
|   `coverUrl` | `string` | | 封面文件URL |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 创建人ID |
|   `fileCount` | `int` | | 文件数量 |
|   `folderId` | `long` | | 文件夹ID |
|   `folderName` | `string` | | 文件夹名称 |
|   `orderId` | `long` | | 关联订单ID |
|   `sortOrder` | `int` | | 排序号 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/{orderId}/album/folders
**查询订单的文件夹列表**
获取指定订单的所有相册文件夹,含文件夹名称、描述、封面图、文件数量等信息。
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«List«AlbumFolderVO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `AlbumFolderVO[]` | | 响应数据 |
|   `coverThumbnailUrl` | `string` | | 封面缩略图URL |
|   `coverUrl` | `string` | | 封面文件URL |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 创建人ID |
|   `fileCount` | `int` | | 文件数量 |
|   `folderId` | `long` | | 文件夹ID |
|   `folderName` | `string` | | 文件夹名称 |
|   `orderId` | `long` | | 关联订单ID |
|   `sortOrder` | `int` | | 排序号 |
| `message` | `string` | | 响应消息 |
---
## 管理端订单接口
### `POST` /admin/order/create
**创建订单(定制师代下单)**
创建订单流程:选择产品 → 填写联系人和出行人 → 系统计算报价 → 生成订单(PENDING_PAY状态)
权限CUSTOM产品仅创建者可下单,CORE/ROUTE产品所有管理员可下单
【关联字典】
- 请求参数 productType → 字典product_type产品类型
- 请求参数 travelers[].travelerType → 字典traveler_type出行人类型
- 请求参数 travelers[].idCardType → 字典id_card_type证件类型
- 请求参数 travelers[].gender → 字典gender性别
- 返回字段 status → 字典order_status订单状态
- 返回字段 processStatus → 字典order_process_status订单内部流程状态
- 返回字段 productType → 字典product_type产品类型
- 返回字段 travelers[].travelerType → 字典traveler_type出行人类型
- 返回字段 travelers[].idCardType → 字典id_card_type证件类型
- 返回字段 travelers[].gender → 字典gender性别
**请求体** `管理员创建订单请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `adultCount` | `int` | | 成人数 |
| `babyCount` | `int` | | 幼童数 |
| `childCount` | `int` | | 儿童数 |
| `childNeedBed` | `boolean` | | 儿童是否需要床位(影响房间分配和报价计算) |
| `contactName` | `string` | 是 | 联系人姓名 |
| `contactPhone` | `string` | 是 | 联系人电话 |
| `customizerId` | `long` | | 定制师ID可选,默认为创建人 |
| `departureDate` | `string` | | 出发日期(GROUP产品可不传,从团期获取) |
| `expiryMinutes` | `int` | | 支付时限(分钟),不传则使用全局默认值。超时未支付订单自动取消 |
| `groupBatchId` | `long` | | 团期ID(GROUP产品必填) |
| `productId` | `long` | 是 | 产品ID |
| `remark` | `string` | | 备注 |
| `roomCount` | `int` | | 房间数(GROUP产品,默认1) |
| `travelers` | `出行人信息[]` | | 出行人列表 |
|   `birthday` | `string` | 是 | 出生日期(必填,后端根据此字段自动判断人员类型) |
|   `email` | `string` | | 电子邮箱 |
|   `emergencyContact` | `string` | | 紧急联系人 |
|   `emergencyPhone` | `string` | | 紧急联系电话 |
|   `gender` | `int` | | 性别字典gender |
|   `idCardNo` | `string` | | 证件号码 |
|   `idCardType` | `string` | | 证件类型字典id_card_type |
|   `name` | `string` | 是 | 出行人姓名 |
|   `nationality` | `string` | | 国籍 |
|   `phone` | `string` | | 手机号 |
| `userPhone` | `string` | | 用户手机号可选,用于关联C端用户。如匹配到已注册用户则自动绑定订单 |
| `youngChildCount` | `int` | | 小童数 |
**响应** `统一响应结果«订单详情VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `订单详情VO` | | 响应数据 |
|   `adultCount` | `int` | | 成人数 |
|   `babyCount` | `int` | | 幼童数 |
|   `balanceAmount` | `number` | | 尾款金额(总售价-定金) |
|   `balancePayMethod` | `string` | | 尾款支付方式: ONLINE=线上微信支付 OFFLINE=线下转账 |
|   `balanceProofUrl` | `string` | | 尾款凭证URL |
|   `cancelReason` | `string` | | 取消原因 |
|   `cancelledAt` | `string` | | 取消时间 |
|   `checklistConfirmed` | `boolean` | | 清单确认状态 |
|   `childCount` | `int` | | 儿童数 |
|   `completedAt` | `string` | | 完成时间 |
|   `confirmedAt` | `string` | | 确认时间 |
|   `contactName` | `string` | | 联系人姓名 |
|   `contactPhone` | `string` | | 联系人电话 |
|   `contracts` | `Map«string,object»[]` | | 合同列表含signUrl/fileUrl/status等 |
|   `createTime` | `string` | | 创建时间 |
|   `creatorAdminId` | `long` | | 创建人管理员ID |
|   `creatorName` | `string` | | 创建人姓名 |
|   `customizerId` | `long` | | 定制师ID |
|   `customizerName` | `string` | | 定制师姓名 |
|   `departureDate` | `string` | | 出发日期 |
|   `depositAmount` | `number` | | 定金金额 |
|   `depositRatio` | `int` | | 定金比例 |
|   `discountAmount` | `number` | | 优惠金额 |
|   `discountReason` | `string` | | 优惠原因 |
|   `discounts` | `OrderDiscount[]` | | 优惠列表 |
|     `createTime` | `string` | | 创建时间 |
|     `deletedAt` | `string` | | 删除时间(软删除) |
|     `discountAmount` | `number` | | 优惠金额 |
|     `discountId` | `long` | | 优惠ID |
|     `discountName` | `string` | | 优惠名称 |
|     `orderId` | `long` | | 订单ID |
|     `updateTime` | `string` | | 更新时间 |
|   `displayStatus` | `string` | | 前端显示状态字典order_display_status |
|   `displayStatusLabel` | `string` | | 前端显示状态标签字典order_display_status 翻译) |
|   `expiryMinutes` | `int` | | 支付时限(分钟) |
|   `expiryTime` | `string` | | 支付截止时间 |
|   `hotelAssignments` | `string` | | 酒店分配信息JSON |
|   `insurances` | `Map«string,object»[]` | | 保险订单列表含productName/extPolicyNo/status/startDate/endDate等 |
|   `mchId` | `string` | | 商户号 |
|   `orderId` | `long` | | 订单ID |
|   `orderNo` | `string` | | 订单号 |
|   `paidAmount` | `number` | | 已付金额 |
|   `paidAt` | `string` | | 支付时间 |
|   `payMethodLabel` | `string` | | 支付方式标签(如:微信支付、定金微信+尾款线下) |
|   `paymentMode` | `string` | | 支付模式字典payment_mode |
|   `processStatus` | `string` | | 内部流程状态字典order_process_status |
|   `processStatusLabel` | `string` | | 内部流程状态标签字典order_process_status 翻译) |
|   `productCoverUrl` | `string` | | 产品封面图URL |
|   `productId` | `long` | | 产品ID |
|   `productName` | `string` | | 产品名称 |
|   `productSnapshot` | `string` | | 产品快照JSON |
|   `productType` | `string` | | 产品类型字典product_type |
|   `readyAt` | `string` | | 就绪时间 |
|   `refundAmount` | `number` | | 退款金额(实退金额) |
|   `remark` | `string` | | 备注 |
|   `returnDate` | `string` | | 返程日期(出发日期 + 行程天数 - 1 |
|   `reviewed` | `boolean` | | 是否已评价 |
|   `roomInfo` | `string` | | 房间信息 |
|   `sharerOpenid` | `string` | | 分享人微信openid |
|   `status` | `string` | | 订单状态字典order_status |
|   `statusLabel` | `string` | | 订单状态标签字典order_status 翻译) |
|   `timeline` | `OrderTimeline[]` | | 时间线列表 |
|     `action` | `string` | | 操作动作 |
|     `content` | `string` | | 操作内容 |
|     `createTime` | `string` | | 创建时间 |
|     `deletedAt` | `string` | | 删除时间(软删除) |
|     `operatorId` | `long` | | 操作人ID |
|     `operatorName` | `string` | | 操作人姓名 |
|     `operatorType` | `string` | | 操作人类型USER=用户 ADMIN=管理员 SYSTEM=系统 |
|     `orderId` | `long` | | 订单ID |
|     `timelineId` | `long` | | 时间线ID |
|     `updateTime` | `string` | | 更新时间 |
|   `todos` | `OrderTodo[]` | | 待办列表 |
|     `assigneeAdminId` | `long` | | 指派管理员ID |
|     `assigneeRoleKey` | `string` | | 指派角色Key |
|     `completedAt` | `string` | | 完成时间 |
|     `completedBy` | `long` | | 完成人ID |
|     `createTime` | `string` | | 创建时间 |
|     `deletedAt` | `string` | | 删除时间(软删除) |
|     `lastNotifiedAt` | `string` | | 最后通知时间 |
|     `notificationCount` | `int` | | 通知次数 |
|     `orderId` | `long` | | 订单ID |
|     `orderNo` | `string` | | 订单编号 |
|     `sequence` | `int` | | 排序序号 |
|     `status` | `string` | | 待办状态 |
|     `todoId` | `long` | | 待办ID |
|     `todoLabel` | `string` | | 待办标签 |
|     `todoType` | `string` | | 待办类型 |
|     `updateTime` | `string` | | 更新时间 |
|   `totalCost` | `number` | | 总成本(仅管理员可见) |
|   `totalPrice` | `number` | | 总售价 |
|   `travelers` | `OrderTraveler[]` | | 出行人列表 |
|     `birthday` | `string` | | 出生日期 |
|     `createTime` | `string` | | 创建时间 |
|     `deletedAt` | `string` | | 删除时间(软删除) |
|     `email` | `string` | | 邮箱地址 |
|     `emergencyContact` | `string` | | 紧急联系人姓名 |
|     `emergencyPhone` | `string` | | 紧急联系人电话(加密存储) |
|     `gender` | `int` | | 性别字典gender |
|     `idCardNo` | `string` | | 证件号码(加密存储) |
|     `idCardType` | `string` | | 证件类型字典id_card_type |
|     `name` | `string` | | 出行人姓名 |
|     `nationality` | `string` | | 国籍 |
|     `orderId` | `long` | | 订单ID |
|     `orderTravelerId` | `long` | | 出行人记录ID |
|     `phone` | `string` | | 手机号码(加密存储) |
|     `travelerType` | `string` | | 出行人类型字典traveler_type |
|     `updateTime` | `string` | | 更新时间 |
|   `tripDays` | `int` | | 行程天数 |
|   `tripNights` | `int` | | 行程晚数 |
|   `unlockRequestedAt` | `string` | | 解锁请求时间 |
|   `userId` | `long` | | 用户ID |
|   `vehicleInfo` | `string` | | 车辆信息 |
|   `youngChildCount` | `int` | | 小童数 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/list
**订单列表**
支持按关键词(订单号/联系人/产品名)、状态、内部流程状态、产品类型筛选。
支持按创建时间/出发日期/总价排序。
返回分页结果,包含订单基本信息、状态、支付信息和产品封面
【关联字典】
- 筛选参数 status → 字典order_status订单状态
- 筛选参数 processStatus → 字典order_process_status订单内部流程状态
- 筛选参数 productType → 字典product_type产品类型
- 返回字段 status → 字典order_status订单状态
- 返回字段 processStatus → 字典order_process_status订单内部流程状态
- 返回字段 productType → 字典product_type产品类型
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `keyword` | `string` | | 搜索关键词(订单号/联系人姓名/产品名称) | HL2026 |
| `page` | `integer(int32)` | | 页码 | 1 |
| `pageSize` | `integer(int32)` | | 每页条数 | 20 |
| `processStatus` | `string` | | 内部流程状态字典order_process_status | PENDING_ROOM |
| `productType` | `string` | | 产品类型字典product_type | CORE |
| `sortBy` | `string` | | 排序字段createTime/departureDate/totalPrice | createTime |
| `sortDir` | `string` | | 排序方向desc/asc | desc |
| `status` | `string` | | 订单状态字典order_status,支持逗号分隔多状态 | PAID |
**响应** `统一响应结果«分页结果«管理员订单列表VO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `分页结果«管理员订单列表VO»` | | 响应数据 |
|   `page` | `int` | | 当前页码 |
|   `pageSize` | `int` | | 每页条数 |
|   `records` | `管理员订单列表VO[]` | | 数据列表 |
|     `adultCount` | `int` | | 成人数 |
|     `babyCount` | `int` | | 幼童数 |
|     `balanceAmount` | `number` | | 尾款金额DEPOSIT模式总售价-定金-优惠) |
|     `childCount` | `int` | | 儿童数 |
|     `contactName` | `string` | | 联系人姓名 |
|     `contactPhone` | `string` | | 联系人电话 |
|     `createTime` | `string` | | 创建时间 |
|     `creatorAdminId` | `long` | | 创建人管理员ID |
|     `customizerName` | `string` | | 定制师名称 |
|     `daysUntilDeparture` | `int` | | 距出发天数(负数表示已出发) |
|     `departureDate` | `string` | | 出发日期 |
|     `depositAmount` | `number` | | 定金金额 |
|     `discountAmount` | `number` | | 优惠金额 |
|     `mchId` | `string` | | 商户号 |
|     `orderId` | `long` | | 订单ID |
|     `orderNo` | `string` | | 订单号 |
|     `paidAmount` | `number` | | 已付金额 |
|     `paymentMode` | `string` | | 支付模式字典payment_mode |
|     `processStatus` | `string` | | 内部流程状态字典order_process_status |
|     `processStatusLabel` | `string` | | 内部流程状态标签字典order_process_status 翻译) |
|     `productCoverUrl` | `string` | | 产品封面图URL |
|     `productId` | `long` | | 产品ID |
|     `productName` | `string` | | 产品名称 |
|     `productType` | `string` | | 产品类型字典product_type |
|     `status` | `string` | | 订单状态字典order_status |
|     `statusLabel` | `string` | | 订单状态标签字典order_status 翻译) |
|     `totalPrice` | `number` | | 总售价 |
|     `tripDays` | `int` | | 行程天数 |
|     `tripNights` | `int` | | 行程晚数 |
|     `userId` | `long` | | 用户ID |
|     `youngChildCount` | `int` | | 小童数 |
|   `total` | `int` | | 总记录数 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/quote
**报价预览**
根据产品、出发日期、人数组合实时计算报价。
返回各资源明细价格和合计金额,前端据此展示报价清单。
注意:报价仅供参考,最终价格以创建订单时为准(价格日历可能变动)
**请求体** `报价预览请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `adultCount` | `int` | | 成人数 |
| `babyCount` | `int` | | 幼童数 |
| `childCount` | `int` | | 儿童数 |
| `childNeedBed` | `boolean` | | 儿童是否需要床位 |
| `departureDate` | `string` | 是 | 出发日期 |
| `productId` | `long` | 是 | 产品ID |
| `youngChildCount` | `int` | | 小童数 |
**响应** `统一响应结果«Map«string,object»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `object` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/{orderId}
**订单详情**
返回订单完整信息,包括:基本信息、产品快照、联系人、出行人列表、支付记录、优惠明细、时间线、内部流程状态等
【关联字典】
- 返回字段 status → 字典order_status订单状态
- 返回字段 processStatus → 字典order_process_status订单内部流程状态
- 返回字段 productType → 字典product_type产品类型
- 返回字段 travelers[].travelerType → 字典traveler_type出行人类型
- 返回字段 travelers[].idCardType → 字典id_card_type证件类型
- 返回字段 travelers[].gender → 字典gender性别
- 返回字段 timeline[].action → 字典order_timeline_action订单操作类型
- 返回字段 todos[].todoType → 字典order_todo_type订单待办类型
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«订单详情VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `订单详情VO` | | 响应数据 |
|   `adultCount` | `int` | | 成人数 |
|   `babyCount` | `int` | | 幼童数 |
|   `balanceAmount` | `number` | | 尾款金额(总售价-定金) |
|   `balancePayMethod` | `string` | | 尾款支付方式: ONLINE=线上微信支付 OFFLINE=线下转账 |
|   `balanceProofUrl` | `string` | | 尾款凭证URL |
|   `cancelReason` | `string` | | 取消原因 |
|   `cancelledAt` | `string` | | 取消时间 |
|   `checklistConfirmed` | `boolean` | | 清单确认状态 |
|   `childCount` | `int` | | 儿童数 |
|   `completedAt` | `string` | | 完成时间 |
|   `confirmedAt` | `string` | | 确认时间 |
|   `contactName` | `string` | | 联系人姓名 |
|   `contactPhone` | `string` | | 联系人电话 |
|   `contracts` | `Map«string,object»[]` | | 合同列表含signUrl/fileUrl/status等 |
|   `createTime` | `string` | | 创建时间 |
|   `creatorAdminId` | `long` | | 创建人管理员ID |
|   `creatorName` | `string` | | 创建人姓名 |
|   `customizerId` | `long` | | 定制师ID |
|   `customizerName` | `string` | | 定制师姓名 |
|   `departureDate` | `string` | | 出发日期 |
|   `depositAmount` | `number` | | 定金金额 |
|   `depositRatio` | `int` | | 定金比例 |
|   `discountAmount` | `number` | | 优惠金额 |
|   `discountReason` | `string` | | 优惠原因 |
|   `discounts` | `OrderDiscount[]` | | 优惠列表 |
|     `createTime` | `string` | | 创建时间 |
|     `deletedAt` | `string` | | 删除时间(软删除) |
|     `discountAmount` | `number` | | 优惠金额 |
|     `discountId` | `long` | | 优惠ID |
|     `discountName` | `string` | | 优惠名称 |
|     `orderId` | `long` | | 订单ID |
|     `updateTime` | `string` | | 更新时间 |
|   `displayStatus` | `string` | | 前端显示状态字典order_display_status |
|   `displayStatusLabel` | `string` | | 前端显示状态标签字典order_display_status 翻译) |
|   `expiryMinutes` | `int` | | 支付时限(分钟) |
|   `expiryTime` | `string` | | 支付截止时间 |
|   `hotelAssignments` | `string` | | 酒店分配信息JSON |
|   `insurances` | `Map«string,object»[]` | | 保险订单列表含productName/extPolicyNo/status/startDate/endDate等 |
|   `mchId` | `string` | | 商户号 |
|   `orderId` | `long` | | 订单ID |
|   `orderNo` | `string` | | 订单号 |
|   `paidAmount` | `number` | | 已付金额 |
|   `paidAt` | `string` | | 支付时间 |
|   `payMethodLabel` | `string` | | 支付方式标签(如:微信支付、定金微信+尾款线下) |
|   `paymentMode` | `string` | | 支付模式字典payment_mode |
|   `processStatus` | `string` | | 内部流程状态字典order_process_status |
|   `processStatusLabel` | `string` | | 内部流程状态标签字典order_process_status 翻译) |
|   `productCoverUrl` | `string` | | 产品封面图URL |
|   `productId` | `long` | | 产品ID |
|   `productName` | `string` | | 产品名称 |
|   `productSnapshot` | `string` | | 产品快照JSON |
|   `productType` | `string` | | 产品类型字典product_type |
|   `readyAt` | `string` | | 就绪时间 |
|   `refundAmount` | `number` | | 退款金额(实退金额) |
|   `remark` | `string` | | 备注 |
|   `returnDate` | `string` | | 返程日期(出发日期 + 行程天数 - 1 |
|   `reviewed` | `boolean` | | 是否已评价 |
|   `roomInfo` | `string` | | 房间信息 |
|   `sharerOpenid` | `string` | | 分享人微信openid |
|   `status` | `string` | | 订单状态字典order_status |
|   `statusLabel` | `string` | | 订单状态标签字典order_status 翻译) |
|   `timeline` | `OrderTimeline[]` | | 时间线列表 |
|     `action` | `string` | | 操作动作 |
|     `content` | `string` | | 操作内容 |
|     `createTime` | `string` | | 创建时间 |
|     `deletedAt` | `string` | | 删除时间(软删除) |
|     `operatorId` | `long` | | 操作人ID |
|     `operatorName` | `string` | | 操作人姓名 |
|     `operatorType` | `string` | | 操作人类型USER=用户 ADMIN=管理员 SYSTEM=系统 |
|     `orderId` | `long` | | 订单ID |
|     `timelineId` | `long` | | 时间线ID |
|     `updateTime` | `string` | | 更新时间 |
|   `todos` | `OrderTodo[]` | | 待办列表 |
|     `assigneeAdminId` | `long` | | 指派管理员ID |
|     `assigneeRoleKey` | `string` | | 指派角色Key |
|     `completedAt` | `string` | | 完成时间 |
|     `completedBy` | `long` | | 完成人ID |
|     `createTime` | `string` | | 创建时间 |
|     `deletedAt` | `string` | | 删除时间(软删除) |
|     `lastNotifiedAt` | `string` | | 最后通知时间 |
|     `notificationCount` | `int` | | 通知次数 |
|     `orderId` | `long` | | 订单ID |
|     `orderNo` | `string` | | 订单编号 |
|     `sequence` | `int` | | 排序序号 |
|     `status` | `string` | | 待办状态 |
|     `todoId` | `long` | | 待办ID |
|     `todoLabel` | `string` | | 待办标签 |
|     `todoType` | `string` | | 待办类型 |
|     `updateTime` | `string` | | 更新时间 |
|   `totalCost` | `number` | | 总成本(仅管理员可见) |
|   `totalPrice` | `number` | | 总售价 |
|   `travelers` | `OrderTraveler[]` | | 出行人列表 |
|     `birthday` | `string` | | 出生日期 |
|     `createTime` | `string` | | 创建时间 |
|     `deletedAt` | `string` | | 删除时间(软删除) |
|     `email` | `string` | | 邮箱地址 |
|     `emergencyContact` | `string` | | 紧急联系人姓名 |
|     `emergencyPhone` | `string` | | 紧急联系人电话(加密存储) |
|     `gender` | `int` | | 性别字典gender |
|     `idCardNo` | `string` | | 证件号码(加密存储) |
|     `idCardType` | `string` | | 证件类型字典id_card_type |
|     `name` | `string` | | 出行人姓名 |
|     `nationality` | `string` | | 国籍 |
|     `orderId` | `long` | | 订单ID |
|     `orderTravelerId` | `long` | | 出行人记录ID |
|     `phone` | `string` | | 手机号码(加密存储) |
|     `travelerType` | `string` | | 出行人类型字典traveler_type |
|     `updateTime` | `string` | | 更新时间 |
|   `tripDays` | `int` | | 行程天数 |
|   `tripNights` | `int` | | 行程晚数 |
|   `unlockRequestedAt` | `string` | | 解锁请求时间 |
|   `userId` | `long` | | 用户ID |
|   `vehicleInfo` | `string` | | 车辆信息 |
|   `youngChildCount` | `int` | | 小童数 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/{orderId}
**编辑订单**
修改订单的联系人、人数、出发日期、售价、成本、备注等信息。
仅传入需要修改的字段,未传入的字段不会被修改。
如果提供了出行人列表(travelers),将替换订单的全部出行人。
已锁定的订单需先调用'申请修改'接口解锁后才能编辑
【关联字典】
- 请求参数 travelers[].travelerType → 字典traveler_type出行人类型
- 请求参数 travelers[].idCardType → 字典id_card_type证件类型
- 请求参数 travelers[].gender → 字典gender性别
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `管理员修改订单请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `adultCount` | `int` | | 成人数 |
| `babyCount` | `int` | | 幼童数 |
| `childCount` | `int` | | 儿童数 |
| `contactName` | `string` | | 联系人姓名 |
| `contactPhone` | `string` | | 联系人电话 |
| `departureDate` | `string` | | 出发日期 |
| `depositAmount` | `number` | | 定金金额 |
| `mchId` | `string` | | 商户号(微信支付商户号,多商户场景使用) |
| `remark` | `string` | | 备注 |
| `totalCost` | `number` | | 总成本 |
| `totalPrice` | `number` | | 总售价 |
| `travelers` | `出行人信息[]` | | 出行人列表(如提供则替换全部出行人,不传则不修改出行人) |
|   `birthday` | `string` | 是 | 出生日期(必填,后端根据此字段自动判断人员类型) |
|   `email` | `string` | | 电子邮箱 |
|   `emergencyContact` | `string` | | 紧急联系人 |
|   `emergencyPhone` | `string` | | 紧急联系电话 |
|   `gender` | `int` | | 性别字典gender |
|   `idCardNo` | `string` | | 证件号码 |
|   `idCardType` | `string` | | 证件类型字典id_card_type |
|   `name` | `string` | 是 | 出行人姓名 |
|   `nationality` | `string` | | 国籍 |
|   `phone` | `string` | | 手机号 |
| `youngChildCount` | `int` | | 小童数 |
**响应** `统一响应结果«Void»`
---
### `DELETE` /admin/order/{orderId}
**删除订单**
仅待支付(PENDING_PAY)状态的订单可删除,其他状态不可删除
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/balance-pay-method
**设置尾款支付方式**
设置订单尾款的支付方式。ONLINE=线上微信支付,OFFLINE=线下转账(需管理员手动记录尾款到账)
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `balancePayMethod` | `string` | 是 | 支付方式ONLINE-线上支付, OFFLINE-线下支付 | |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/cancel
**取消订单**
管理员可取消的状态:待支付、已付定金、已全额支付、已确认、待付尾款
已付款订单取消后需走退款流程
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `管理员取消订单请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `reason` | `string` | 是 | 取消原因 |
| `refundAmount` | `number` | | 退款金额可选,不传则按退款政策自动计算;传0表示不退款 |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/confirm
**确认订单**
确认订单后进入内部流程:待配房 → 待配车 → 待核算 → 就绪
前置条件:订单状态为已全额支付(PAID)或已付定金(DEPOSIT_PAID)
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/deposit
**修改定金金额**
修改订单的定金金额。仅待支付(PENDING_PAY)状态可修改。
定金金额不能超过订单总价,修改后影响用户支付页面显示的应付金额
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `修改定金金额请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `amount` | `number` | 是 | 定金金额 |
**响应** `统一响应结果«Void»`
---
### `POST` /admin/order/{orderId}/discount
**添加优惠项**
为订单添加手动优惠(如会员折扣、老客优惠等)。
添加后系统自动重算订单应付金额。一个订单可添加多个优惠项
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `优惠项请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `discountAmount` | `number` | 是 | 优惠金额 |
| `discountName` | `string` | 是 | 优惠项目名称 |
**响应** `统一响应结果«OrderDiscount»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `OrderDiscount` | | 响应数据 |
|   `createTime` | `string` | | 创建时间 |
|   `deletedAt` | `string` | | 删除时间(软删除) |
|   `discountAmount` | `number` | | 优惠金额 |
|   `discountId` | `long` | | 优惠ID |
|   `discountName` | `string` | | 优惠名称 |
|   `orderId` | `long` | | 订单ID |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/{orderId}/discount/{discountId}
**修改优惠项**
修改已添加的优惠项名称或金额,修改后自动重算订单应付金额
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `discountId` | `integer` | | 优惠项ID |
| `orderId` | `integer` | | 订单ID |
**请求体** `优惠项请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `discountAmount` | `number` | 是 | 优惠金额 |
| `discountName` | `string` | 是 | 优惠项目名称 |
**响应** `统一响应结果«Void»`
---
### `DELETE` /admin/order/{orderId}/discount/{discountId}
**删除优惠项**
删除已添加的优惠项,删除后自动重算订单应付金额
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `discountId` | `integer` | | 优惠项ID |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/hotel-assignment
**分配酒店信息**
按家庭为订单分配具体的酒店房间(酒店名称、房型、入住/退房日期)。
每个家庭对应一条分配记录,分配后信息将展示在订单详情和C端行程中
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `酒店分配请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `assignments` | `单项酒店分配[]` | 是 | 酒店分配列表 |
|   `checkInDate` | `string` | 是 | 入住日期(yyyy-MM-dd) |
|   `checkOutDate` | `string` | 是 | 退房日期(yyyy-MM-dd) |
|   `familyIndex` | `int` | 是 | 家庭序号 |
|   `hotelName` | `string` | 是 | 酒店名称 |
|   `roomType` | `string` | 是 | 房型 |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/process-status
**推进内部流程**
内部流程推进顺序:待配房(PENDING_ROOM) → 待配车(PENDING_VEHICLE) → 待核算(PENDING_FINANCE) → 就绪(READY)
仅在订单状态为已确认(CONFIRMED)时有效,每次调用自动推进到下一步
【关联字典】
- 涉及字段 processStatus → 字典order_process_status订单内部流程状态
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/record-balance
**记录尾款(线下收取)**
管理员确认收到尾款 → 上传凭证。已确认(流程就绪)或待出行状态可操作
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `记录尾款请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `proofUrl` | `string` | | 支付凭证URL |
| `remark` | `string` | | 备注 |
**响应** `统一响应结果«Void»`
---
### `POST` /admin/order/{orderId}/remark
**添加备注**
向订单时间线添加一条管理员备注。备注会记录操作人和时间,可用于内部沟通和订单跟踪
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `管理员备注请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `content` | `string` | 是 | 备注内容 |
**响应** `统一响应结果«Void»`
---
### `POST` /admin/order/{orderId}/request-unlock
**申请修改(解锁已锁定订单)**
清单确认后订单进入锁定状态,如需修改需先申请解锁
解锁后可重新编辑订单信息并再次确认清单
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `申请解锁订单请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `reason` | `string` | | 解锁原因 |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/room-info
**更新房间信息(仅房务管理员/超级管理员)**
更新订单的房间分配信息(房型、房间号、入住安排等)。
**权限**仅ROOM_MANAGER房务管理员或SUPER_ADMIN超级管理员可操作。
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `房间信息请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `roomInfo` | `string` | 是 | 房间信息 |
**响应** `统一响应结果«Void»`
---
### `POST` /admin/order/{orderId}/room-info/check-diff
**检测房型一致性**
检测当前房间配置是否与产品快照一致。返回 null 表示一致,否则返回不一致描述
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `string`
**响应** `统一响应结果«string»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `string` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/{orderId}/status
**更新订单状态**
合法状态流转:
- 待支付 → 已付定金/已全额支付/已取消
- 已付定金 → 已确认/已取消/售后中
- 已全额支付 → 已确认/已取消/售后中
- 已确认 → 待付尾款/待出行/已取消/售后中
- 待付尾款 → 待出行/已取消/售后中
- 待出行 → 旅行中/售后中
- 旅行中 → 已完成
- 已完成 → 售后中
- 售后中 → 退款中
- 退款中 → 已退款
【关联字典】
- 请求参数 status → 字典order_status订单状态
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `更新订单状态请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `status` | `string` | 是 | 目标状态。可选值PENDING_PAY(待支付)/DEPOSIT_PAID(已付定金)/PAID(已全额支付)/CONFIRMED(已确认)/PENDING_BALANCE(待付尾款)/PENDING_DEPARTURE(待出行)/TRAVELLING(旅行中)/COMPLETED(已完成)/AFTER_SALE(售后中)/REFUNDING(退款中)/REFUNDED(已退款)/CANCELLED(已取消) |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/vehicle-assignment
**分配车辆信息**
为订单分配具体的车辆和司机信息(车型、品牌、车牌号、司机姓名和电话)。
分配后信息将展示在订单详情和C端行程中
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `车辆分配请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `driverName` | `string` | | 司机姓名 |
| `driverPhone` | `string` | | 司机电话 |
| `plateNumber` | `string` | | 车牌号 |
| `vehicleBrand` | `string` | 是 | 品牌 |
| `vehicleModel` | `string` | 是 | 车型 |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/vehicle-info
**更新车辆信息(仅车务管理员/超级管理员)**
更新订单的车辆分配信息(车型、车牌号、司机等)。
**权限**仅VEHICLE_MANAGER车务管理员或SUPER_ADMIN超级管理员可操作。
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `车辆信息请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `vehicleInfo` | `string` | 是 | 车辆信息 |
**响应** `统一响应结果«Void»`
---
### `POST` /admin/order/{orderId}/vehicle-info/check-diff
**检测车型一致性**
检测当前车辆配置是否与产品快照一致。返回 null 表示一致,否则返回不一致描述
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `string`
**响应** `统一响应结果«string»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `string` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
## 管理端订单行程编辑
### `POST` /admin/order/{orderId}/itinerary/add
**新增节点**
在某一天的行程中新增一个节点
**关联字典**
- itinerary_edit_action操作类型,返回字段actionSKIP=跳过, ADD=新增节点, ADD_DAY=新增整天, ROOM_CHANGE=房型切换, VEHICLE_CHANGE=车型切换
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `新增行程节点请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
| `dayNumber` | `int` | | 行程天数编号独立调用时必填,addDay子节点时自动继承 |
| `description` | `string` | | 节点描述 |
| `nodeName` | `string` | 是 | 节点名称 |
| `nodeType` | `string` | 是 | 节点类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE |
| `reason` | `string` | | 修改原因独立调用时必填,addDay子节点时自动继承 |
| `resourceId` | `long` | | 关联资源ID |
| `resourceType` | `string` | | 关联资源类型SCENIC_SPOT/ACTIVITY/RESTAURANT/HOTEL/VEHICLE |
| `sortOrder` | `int` | | 排序序号(插入位置,默认追加到末尾) |
| `startTime` | `string` | | 开始时间 |
**响应** `统一响应结果«OrderItineraryEdit»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `OrderItineraryEdit` | | 响应数据 |
|   `action` | `string` | | 操作类型SKIP/ADD |
|   `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
|   `changeDays` | `int` | | 变更天数 |
|   `changeReasonCode` | `string` | | 变更原因代码(字典项) |
|   `changeReasonLabel` | `string` | | 变更原因标签 |
|   `confirmStatus` | `string` | | 确认状态PENDING_CONFIRM/CONFIRMED |
|   `confirmedAt` | `string` | | 确认时间 |
|   `confirmedBy` | `long` | | 确认人ID |
|   `createTime` | `string` | | 创建时间 |
|   `dayNumber` | `int` | | 行程天数编号 |
|   `deletedAt` | `string` | | 删除时间(软删除) |
|   `description` | `string` | | 节点描述ADD时 |
|   `editId` | `long` | | 编辑ID |
|   `newResourceName` | `string` | | 新资源名称(房型/车型) |
|   `newUnitPrice` | `number` | | 新单价(日均) |
|   `nodeId` | `string` | | 原节点IDSKIP时必填 |
|   `nodeName` | `string` | | 节点名称ADD时 |
|   `nodeType` | `string` | | 节点类型ADD时 |
|   `operatorId` | `long` | | 操作人ID |
|   `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `long` | | 订单ID |
|   `originalResourceName` | `string` | | 原资源名称(房型/车型) |
|   `originalUnitPrice` | `number` | | 原单价(日均) |
|   `reason` | `string` | | 修改原因 |
|   `resourceId` | `long` | | 关联资源ID |
|   `resourceType` | `string` | | 关联资源类型SCENIC_SPOT/ACTIVITY/RESTAURANT/HOTEL/VEHICLE |
|   `sortOrder` | `int` | | 排序序号ADD时 |
|   `startTime` | `string` | | 开始时间ADD时 |
|   `suggestedAdjustment` | `number` | | 系统建议差价 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/{orderId}/itinerary/add-day
**新增整天行程**
在订单行程中新增一整天(含多个节点)
**关联字典**
- itinerary_edit_action操作类型,返回字段actionADD_DAY=新增整天
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `新增行程天请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `dayNumber` | `int` | 是 | 行程天数编号(插入位置,后续天数自动顺延) |
| `dayTitle` | `string` | 是 | 天标题 |
| `nodes` | `新增行程节点请求[]` | | 该天的行程节点列表 |
|   `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
|   `dayNumber` | `int` | | 行程天数编号独立调用时必填,addDay子节点时自动继承 |
|   `description` | `string` | | 节点描述 |
|   `nodeName` | `string` | 是 | 节点名称 |
|   `nodeType` | `string` | 是 | 节点类型SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/FREE/NOTE |
|   `reason` | `string` | | 修改原因独立调用时必填,addDay子节点时自动继承 |
|   `resourceId` | `long` | | 关联资源ID |
|   `resourceType` | `string` | | 关联资源类型SCENIC_SPOT/ACTIVITY/RESTAURANT/HOTEL/VEHICLE |
|   `sortOrder` | `int` | | 排序序号(插入位置,默认追加到末尾) |
|   `startTime` | `string` | | 开始时间 |
| `prevDayHotel` | `PrevDayHotel` | | 前一天住宿配置(原最后一天无住宿,新增天数后需配置) |
|   `hotelId` | `long` | | 酒店ID |
|   `hotelName` | `string` | | 酒店名称 |
|   `roomTypeId` | `long` | | 房型ID |
|   `roomTypeName` | `string` | | 房型名称 |
| `reason` | `string` | 是 | 变更原因 |
**响应** `统一响应结果«List«OrderItineraryEdit»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `OrderItineraryEdit[]` | | 响应数据 |
|   `action` | `string` | | 操作类型SKIP/ADD |
|   `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
|   `changeDays` | `int` | | 变更天数 |
|   `changeReasonCode` | `string` | | 变更原因代码(字典项) |
|   `changeReasonLabel` | `string` | | 变更原因标签 |
|   `confirmStatus` | `string` | | 确认状态PENDING_CONFIRM/CONFIRMED |
|   `confirmedAt` | `string` | | 确认时间 |
|   `confirmedBy` | `long` | | 确认人ID |
|   `createTime` | `string` | | 创建时间 |
|   `dayNumber` | `int` | | 行程天数编号 |
|   `deletedAt` | `string` | | 删除时间(软删除) |
|   `description` | `string` | | 节点描述ADD时 |
|   `editId` | `long` | | 编辑ID |
|   `newResourceName` | `string` | | 新资源名称(房型/车型) |
|   `newUnitPrice` | `number` | | 新单价(日均) |
|   `nodeId` | `string` | | 原节点IDSKIP时必填 |
|   `nodeName` | `string` | | 节点名称ADD时 |
|   `nodeType` | `string` | | 节点类型ADD时 |
|   `operatorId` | `long` | | 操作人ID |
|   `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `long` | | 订单ID |
|   `originalResourceName` | `string` | | 原资源名称(房型/车型) |
|   `originalUnitPrice` | `number` | | 原单价(日均) |
|   `reason` | `string` | | 修改原因 |
|   `resourceId` | `long` | | 关联资源ID |
|   `resourceType` | `string` | | 关联资源类型SCENIC_SPOT/ACTIVITY/RESTAURANT/HOTEL/VEHICLE |
|   `sortOrder` | `int` | | 排序序号ADD时 |
|   `startTime` | `string` | | 开始时间ADD时 |
|   `suggestedAdjustment` | `number` | | 系统建议差价 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `DELETE` /admin/order/{orderId}/itinerary/add/{editId}
**删除新增的节点**
删除通过编辑新增的节点
**关联字典**
- itinerary_edit_action操作类型,返回字段actionSKIP=跳过, ADD=新增节点, ADD_DAY=新增整天, ROOM_CHANGE=房型切换, VEHICLE_CHANGE=车型切换
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `editId` | `integer` | | 编辑记录ID |
| `orderId` | `integer` | | 订单ID |
**请求体** `撤销行程编辑请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `reason` | `string` | 是 | 撤销原因 |
**响应** `统一响应结果«Void»`
---
### `GET` /admin/order/{orderId}/itinerary/balance-summary
**获取尾款调整汇总**
返回行程编辑产生的尾款调整明细和总额
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«Map«string,object»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `object` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/{orderId}/itinerary/confirm-all
**批量确认所有待确认修改**
确认该订单所有待确认的行程编辑
**关联字典**
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«int»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `int` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/{orderId}/itinerary/confirm/{editId}
**确认单条修改**
确认一条待确认的行程编辑
**关联字典**
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `editId` | `integer` | | 编辑记录ID |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«Void»`
---
### `DELETE` /admin/order/{orderId}/itinerary/day/{editId}
**删除新增的整天行程**
删除通过新增操作添加的整天行程及其所有子节点,已确认的天不允许删除
**关联字典**
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `editId` | `integer` | | ADD_DAY编辑记录ID |
| `orderId` | `integer` | | 订单ID |
**请求体** `撤销行程编辑请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `reason` | `string` | 是 | 撤销原因 |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/itinerary/edit/{editId}
**修改编辑记录**
修改待确认状态的编辑记录(如调整价格、名称等)
**关联字典**
- itinerary_edit_action操作类型,返回字段actionSKIP=跳过, ADD=新增节点, ADD_DAY=新增整天, ROOM_CHANGE=房型切换, VEHICLE_CHANGE=车型切换
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `editId` | `integer` | | 编辑记录ID |
| `orderId` | `integer` | | 订单ID |
**请求体** `object`
**响应** `统一响应结果«OrderItineraryEdit»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `OrderItineraryEdit` | | 响应数据 |
|   `action` | `string` | | 操作类型SKIP/ADD |
|   `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
|   `changeDays` | `int` | | 变更天数 |
|   `changeReasonCode` | `string` | | 变更原因代码(字典项) |
|   `changeReasonLabel` | `string` | | 变更原因标签 |
|   `confirmStatus` | `string` | | 确认状态PENDING_CONFIRM/CONFIRMED |
|   `confirmedAt` | `string` | | 确认时间 |
|   `confirmedBy` | `long` | | 确认人ID |
|   `createTime` | `string` | | 创建时间 |
|   `dayNumber` | `int` | | 行程天数编号 |
|   `deletedAt` | `string` | | 删除时间(软删除) |
|   `description` | `string` | | 节点描述ADD时 |
|   `editId` | `long` | | 编辑ID |
|   `newResourceName` | `string` | | 新资源名称(房型/车型) |
|   `newUnitPrice` | `number` | | 新单价(日均) |
|   `nodeId` | `string` | | 原节点IDSKIP时必填 |
|   `nodeName` | `string` | | 节点名称ADD时 |
|   `nodeType` | `string` | | 节点类型ADD时 |
|   `operatorId` | `long` | | 操作人ID |
|   `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `long` | | 订单ID |
|   `originalResourceName` | `string` | | 原资源名称(房型/车型) |
|   `originalUnitPrice` | `number` | | 原单价(日均) |
|   `reason` | `string` | | 修改原因 |
|   `resourceId` | `long` | | 关联资源ID |
|   `resourceType` | `string` | | 关联资源类型SCENIC_SPOT/ACTIVITY/RESTAURANT/HOTEL/VEHICLE |
|   `sortOrder` | `int` | | 排序序号ADD时 |
|   `startTime` | `string` | | 开始时间ADD时 |
|   `suggestedAdjustment` | `number` | | 系统建议差价 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/{orderId}/itinerary/edits
**获取行程编辑记录列表**
**关联字典**
- itinerary_edit_action操作类型,返回字段actionSKIP=跳过, ADD=新增节点, ADD_DAY=新增整天, ROOM_CHANGE=房型切换, VEHICLE_CHANGE=车型切换
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«List«OrderItineraryEdit»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `OrderItineraryEdit[]` | | 响应数据 |
|   `action` | `string` | | 操作类型SKIP/ADD |
|   `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
|   `changeDays` | `int` | | 变更天数 |
|   `changeReasonCode` | `string` | | 变更原因代码(字典项) |
|   `changeReasonLabel` | `string` | | 变更原因标签 |
|   `confirmStatus` | `string` | | 确认状态PENDING_CONFIRM/CONFIRMED |
|   `confirmedAt` | `string` | | 确认时间 |
|   `confirmedBy` | `long` | | 确认人ID |
|   `createTime` | `string` | | 创建时间 |
|   `dayNumber` | `int` | | 行程天数编号 |
|   `deletedAt` | `string` | | 删除时间(软删除) |
|   `description` | `string` | | 节点描述ADD时 |
|   `editId` | `long` | | 编辑ID |
|   `newResourceName` | `string` | | 新资源名称(房型/车型) |
|   `newUnitPrice` | `number` | | 新单价(日均) |
|   `nodeId` | `string` | | 原节点IDSKIP时必填 |
|   `nodeName` | `string` | | 节点名称ADD时 |
|   `nodeType` | `string` | | 节点类型ADD时 |
|   `operatorId` | `long` | | 操作人ID |
|   `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `long` | | 订单ID |
|   `originalResourceName` | `string` | | 原资源名称(房型/车型) |
|   `originalUnitPrice` | `number` | | 原单价(日均) |
|   `reason` | `string` | | 修改原因 |
|   `resourceId` | `long` | | 关联资源ID |
|   `resourceType` | `string` | | 关联资源类型SCENIC_SPOT/ACTIVITY/RESTAURANT/HOTEL/VEHICLE |
|   `sortOrder` | `int` | | 排序序号ADD时 |
|   `startTime` | `string` | | 开始时间ADD时 |
|   `suggestedAdjustment` | `number` | | 系统建议差价 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/{orderId}/itinerary/merged
**获取合并后的行程(原始+编辑)**
**关联字典**
- itinerary_edit_action操作类型,返回字段actionSKIP=跳过, ADD=新增节点, ADD_DAY=新增整天, ROOM_CHANGE=房型切换, VEHICLE_CHANGE=车型切换
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«List«Map«string,object»»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `Map«string,object»[]` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/{orderId}/itinerary/pending-count
**获取待确认数量**
返回该订单待确认的编辑数量
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«long»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `long` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `DELETE` /admin/order/{orderId}/itinerary/pending/{editId}
**撤回待确认的修改**
软删除一条待确认的编辑记录
**关联字典**
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `editId` | `integer` | | 编辑记录ID |
| `orderId` | `integer` | | 订单ID |
**请求体** `撤销行程编辑请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `reason` | `string` | 是 | 撤销原因 |
**响应** `统一响应结果«Void»`
---
### `POST` /admin/order/{orderId}/itinerary/room-type-change
**房型切换**
执行房型切换,自动计算差价,创建待确认记录
**关联字典**
- itinerary_edit_action操作类型,返回字段actionROOM_CHANGE=房型切换
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
- resource_type资源类型,返回字段resourceTypeHOTEL=酒店
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `房型变更请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `balanceAdjustment` | `number` | | 尾款调整金额(可选,覆盖系统建议差价;正数=增加尾款,负数=减少尾款) |
| `changeReasonCode` | `string` | | 变更原因代码(字典项 order_change_reason |
| `dayNumber` | `int` | 是 | 行程天数编号 |
| `newRoomTypeId` | `long` | 是 | 新房型ID |
| `originalRoomTypeId` | `long` | 是 | 原房型ID |
| `reason` | `string` | 是 | 变更原因 |
| `roomCount` | `int` | | 房间数量 |
**响应** `统一响应结果«OrderItineraryEdit»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `OrderItineraryEdit` | | 响应数据 |
|   `action` | `string` | | 操作类型SKIP/ADD |
|   `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
|   `changeDays` | `int` | | 变更天数 |
|   `changeReasonCode` | `string` | | 变更原因代码(字典项) |
|   `changeReasonLabel` | `string` | | 变更原因标签 |
|   `confirmStatus` | `string` | | 确认状态PENDING_CONFIRM/CONFIRMED |
|   `confirmedAt` | `string` | | 确认时间 |
|   `confirmedBy` | `long` | | 确认人ID |
|   `createTime` | `string` | | 创建时间 |
|   `dayNumber` | `int` | | 行程天数编号 |
|   `deletedAt` | `string` | | 删除时间(软删除) |
|   `description` | `string` | | 节点描述ADD时 |
|   `editId` | `long` | | 编辑ID |
|   `newResourceName` | `string` | | 新资源名称(房型/车型) |
|   `newUnitPrice` | `number` | | 新单价(日均) |
|   `nodeId` | `string` | | 原节点IDSKIP时必填 |
|   `nodeName` | `string` | | 节点名称ADD时 |
|   `nodeType` | `string` | | 节点类型ADD时 |
|   `operatorId` | `long` | | 操作人ID |
|   `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `long` | | 订单ID |
|   `originalResourceName` | `string` | | 原资源名称(房型/车型) |
|   `originalUnitPrice` | `number` | | 原单价(日均) |
|   `reason` | `string` | | 修改原因 |
|   `resourceId` | `long` | | 关联资源ID |
|   `resourceType` | `string` | | 关联资源类型SCENIC_SPOT/ACTIVITY/RESTAURANT/HOTEL/VEHICLE |
|   `sortOrder` | `int` | | 排序序号ADD时 |
|   `startTime` | `string` | | 开始时间ADD时 |
|   `suggestedAdjustment` | `number` | | 系统建议差价 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/{orderId}/itinerary/room-type-change/preview
**房型切换差价预览**
预览房型切换的差价,不创建记录
**关联字典**
- resource_type资源类型,返回字段resourceTypeHOTEL=酒店
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `房型变更请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `balanceAdjustment` | `number` | | 尾款调整金额(可选,覆盖系统建议差价;正数=增加尾款,负数=减少尾款) |
| `changeReasonCode` | `string` | | 变更原因代码(字典项 order_change_reason |
| `dayNumber` | `int` | 是 | 行程天数编号 |
| `newRoomTypeId` | `long` | 是 | 新房型ID |
| `originalRoomTypeId` | `long` | 是 | 原房型ID |
| `reason` | `string` | 是 | 变更原因 |
| `roomCount` | `int` | | 房间数量 |
**响应** `统一响应结果«差价计算结果»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `差价计算结果` | | 响应数据 |
|   `changeDays` | `int` | | 变更天数 |
|   `description` | `string` | | 差价描述(中文说明) |
|   `direction` | `string` | | 差价方向UPGRADE=升级加价, DOWNGRADE=降级减价, SAME=价格不变 |
|   `newName` | `string` | | 新资源名称 |
|   `newUnitPrice` | `number` | | 新单价(日均) |
|   `originalName` | `string` | | 原资源名称 |
|   `originalUnitPrice` | `number` | | 原单价(日均) |
|   `priceDiff` | `number` | | 差价金额(正数=需补款,负数=可退款) |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/{orderId}/itinerary/skip
**跳过节点**
将行程中的某个节点标记为跳过(客户不去)
**关联字典**
- itinerary_edit_action操作类型,返回字段actionSKIP=跳过, ADD=新增节点, ADD_DAY=新增整天, ROOM_CHANGE=房型切换, VEHICLE_CHANGE=车型切换
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
- resource_type资源类型,返回字段resourceTypeSCENIC_SPOT=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, VEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `跳过行程节点请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
| `dayNumber` | `int` | 是 | 行程天数编号 |
| `nodeId` | `string` | 是 | 节点ID |
| `nodeName` | `string` | | 节点名称 |
| `reason` | `string` | 是 | 修改原因 |
**响应** `统一响应结果«OrderItineraryEdit»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `OrderItineraryEdit` | | 响应数据 |
|   `action` | `string` | | 操作类型SKIP/ADD |
|   `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
|   `changeDays` | `int` | | 变更天数 |
|   `changeReasonCode` | `string` | | 变更原因代码(字典项) |
|   `changeReasonLabel` | `string` | | 变更原因标签 |
|   `confirmStatus` | `string` | | 确认状态PENDING_CONFIRM/CONFIRMED |
|   `confirmedAt` | `string` | | 确认时间 |
|   `confirmedBy` | `long` | | 确认人ID |
|   `createTime` | `string` | | 创建时间 |
|   `dayNumber` | `int` | | 行程天数编号 |
|   `deletedAt` | `string` | | 删除时间(软删除) |
|   `description` | `string` | | 节点描述ADD时 |
|   `editId` | `long` | | 编辑ID |
|   `newResourceName` | `string` | | 新资源名称(房型/车型) |
|   `newUnitPrice` | `number` | | 新单价(日均) |
|   `nodeId` | `string` | | 原节点IDSKIP时必填 |
|   `nodeName` | `string` | | 节点名称ADD时 |
|   `nodeType` | `string` | | 节点类型ADD时 |
|   `operatorId` | `long` | | 操作人ID |
|   `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `long` | | 订单ID |
|   `originalResourceName` | `string` | | 原资源名称(房型/车型) |
|   `originalUnitPrice` | `number` | | 原单价(日均) |
|   `reason` | `string` | | 修改原因 |
|   `resourceId` | `long` | | 关联资源ID |
|   `resourceType` | `string` | | 关联资源类型SCENIC_SPOT/ACTIVITY/RESTAURANT/HOTEL/VEHICLE |
|   `sortOrder` | `int` | | 排序序号ADD时 |
|   `startTime` | `string` | | 开始时间ADD时 |
|   `suggestedAdjustment` | `number` | | 系统建议差价 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `DELETE` /admin/order/{orderId}/itinerary/skip/{editId}
**恢复跳过的节点**
取消跳过,恢复为正常状态
**关联字典**
- itinerary_edit_action操作类型,返回字段actionSKIP=跳过, ADD=新增节点, ADD_DAY=新增整天, ROOM_CHANGE=房型切换, VEHICLE_CHANGE=车型切换
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `editId` | `integer` | | 编辑记录ID |
| `orderId` | `integer` | | 订单ID |
**请求体** `撤销行程编辑请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `reason` | `string` | 是 | 撤销原因 |
**响应** `统一响应结果«Void»`
---
### `POST` /admin/order/{orderId}/itinerary/vehicle-type-change
**车型切换**
执行车型切换,自动计算差价,创建待确认记录
**关联字典**
- itinerary_edit_action操作类型,返回字段actionVEHICLE_CHANGE=车型切换
- itinerary_confirm_status确认状态,返回字段confirmStatusPENDING_CONFIRM=待确认, CONFIRMED=已确认
- resource_type资源类型,返回字段resourceTypeVEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `车型变更请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `balanceAdjustment` | `number` | | 尾款调整金额(可选,覆盖系统建议差价;正数=增加尾款,负数=减少尾款) |
| `changeReasonCode` | `string` | | 变更原因代码(字典项 order_change_reason |
| `newVehicleId` | `long` | 是 | 新车辆ID |
| `originalVehicleId` | `long` | 是 | 原车辆ID |
| `reason` | `string` | 是 | 变更原因 |
**响应** `统一响应结果«OrderItineraryEdit»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `OrderItineraryEdit` | | 响应数据 |
|   `action` | `string` | | 操作类型SKIP/ADD |
|   `balanceAdjustment` | `number` | | 尾款调整金额(正数=增加尾款,负数=减少尾款) |
|   `changeDays` | `int` | | 变更天数 |
|   `changeReasonCode` | `string` | | 变更原因代码(字典项) |
|   `changeReasonLabel` | `string` | | 变更原因标签 |
|   `confirmStatus` | `string` | | 确认状态PENDING_CONFIRM/CONFIRMED |
|   `confirmedAt` | `string` | | 确认时间 |
|   `confirmedBy` | `long` | | 确认人ID |
|   `createTime` | `string` | | 创建时间 |
|   `dayNumber` | `int` | | 行程天数编号 |
|   `deletedAt` | `string` | | 删除时间(软删除) |
|   `description` | `string` | | 节点描述ADD时 |
|   `editId` | `long` | | 编辑ID |
|   `newResourceName` | `string` | | 新资源名称(房型/车型) |
|   `newUnitPrice` | `number` | | 新单价(日均) |
|   `nodeId` | `string` | | 原节点IDSKIP时必填 |
|   `nodeName` | `string` | | 节点名称ADD时 |
|   `nodeType` | `string` | | 节点类型ADD时 |
|   `operatorId` | `long` | | 操作人ID |
|   `operatorName` | `string` | | 操作人姓名 |
|   `orderId` | `long` | | 订单ID |
|   `originalResourceName` | `string` | | 原资源名称(房型/车型) |
|   `originalUnitPrice` | `number` | | 原单价(日均) |
|   `reason` | `string` | | 修改原因 |
|   `resourceId` | `long` | | 关联资源ID |
|   `resourceType` | `string` | | 关联资源类型SCENIC_SPOT/ACTIVITY/RESTAURANT/HOTEL/VEHICLE |
|   `sortOrder` | `int` | | 排序序号ADD时 |
|   `startTime` | `string` | | 开始时间ADD时 |
|   `suggestedAdjustment` | `number` | | 系统建议差价 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/{orderId}/itinerary/vehicle-type-change/preview
**车型切换差价预览**
预览车型切换的差价,不创建记录
**关联字典**
- resource_type资源类型,返回字段resourceTypeVEHICLE=车辆
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `车型变更请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `balanceAdjustment` | `number` | | 尾款调整金额(可选,覆盖系统建议差价;正数=增加尾款,负数=减少尾款) |
| `changeReasonCode` | `string` | | 变更原因代码(字典项 order_change_reason |
| `newVehicleId` | `long` | 是 | 新车辆ID |
| `originalVehicleId` | `long` | 是 | 原车辆ID |
| `reason` | `string` | 是 | 变更原因 |
**响应** `统一响应结果«差价计算结果»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `差价计算结果` | | 响应数据 |
|   `changeDays` | `int` | | 变更天数 |
|   `description` | `string` | | 差价描述(中文说明) |
|   `direction` | `string` | | 差价方向UPGRADE=升级加价, DOWNGRADE=降级减价, SAME=价格不变 |
|   `newName` | `string` | | 新资源名称 |
|   `newUnitPrice` | `number` | | 新单价(日均) |
|   `originalName` | `string` | | 原资源名称 |
|   `originalUnitPrice` | `number` | | 原单价(日均) |
|   `priceDiff` | `number` | | 差价金额(正数=需补款,负数=可退款) |
| `message` | `string` | | 响应消息 |
---
## 订单待办接口
### `GET` /admin/order/todo/contract-eligible
**可签合同订单列表(保险已完成)**
查询保险待办已完成、可以进入签合同环节的订单列表。
用于合同管理页面展示待签合同的订单
【关联字典】
- 返回字段 todoType → 字典order_todo_type订单待办类型
- 返回字段 orderStatus → 字典order_status订单状态
**响应** `统一响应结果«List«订单待办VO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `订单待办VO[]` | | 响应数据 |
|   `assigneeAdminId` | `long` | | 负责管理员ID |
|   `assigneeRoleKey` | `string` | | 负责角色标识 |
|   `blocked` | `boolean` | | 是否阻塞 |
|   `blockedReason` | `string` | | 阻塞原因 |
|   `completedAt` | `string` | | 完成时间 |
|   `completedBy` | `long` | | 完成人ID |
|   `contactName` | `string` | | 联系人姓名(关联查询) |
|   `createTime` | `string` | | 创建时间 |
|   `departureDate` | `string` | | 出发日期(关联查询) |
|   `orderId` | `long` | | 订单ID |
|   `orderNo` | `string` | | 订单号 |
|   `orderStatus` | `string` | | 订单状态(关联查询) |
|   `productName` | `string` | | 产品名称(关联查询) |
|   `sequence` | `int` | | 排序序号 |
|   `status` | `string` | | 待办状态 |
|   `todoId` | `long` | | 待办ID |
|   `todoLabel` | `string` | | 待办名称 |
|   `todoType` | `string` | | 待办类型 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/todo/customizer-list
**定制师列表**
获取所有定制师(CUSTOMIZER角色)的列表,用于更换定制师时选择目标定制师
**响应** `统一响应结果«List«管理员基本信息»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `管理员基本信息[]` | | 响应数据 |
|   `adminId` | `long` | | 管理员ID |
|   `avatarUrl` | `string` | | 头像URL |
|   `username` | `string` | | 用户名 |
|   `wechatName` | `string` | | 企微用户名称 |
|   `wechatUserid` | `string` | | 企微用户ID |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/todo/my-count
**我的待办数量**
返回当前管理员未完成的待办总数,用于首页角标/红点提醒
**响应** `统一响应结果«int»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `int` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/todo/my-list
**我的待办列表**
根据当前管理员ID和角色,查询分配给自己的未完成待办。
超级管理员可看到所有待办,其他角色只能看到对应类型的待办
【关联字典】
- 返回字段 todoType → 字典order_todo_type订单待办类型
- 返回字段 orderStatus → 字典order_status订单状态
**响应** `统一响应结果«List«订单待办VO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `订单待办VO[]` | | 响应数据 |
|   `assigneeAdminId` | `long` | | 负责管理员ID |
|   `assigneeRoleKey` | `string` | | 负责角色标识 |
|   `blocked` | `boolean` | | 是否阻塞 |
|   `blockedReason` | `string` | | 阻塞原因 |
|   `completedAt` | `string` | | 完成时间 |
|   `completedBy` | `long` | | 完成人ID |
|   `contactName` | `string` | | 联系人姓名(关联查询) |
|   `createTime` | `string` | | 创建时间 |
|   `departureDate` | `string` | | 出发日期(关联查询) |
|   `orderId` | `long` | | 订单ID |
|   `orderNo` | `string` | | 订单号 |
|   `orderStatus` | `string` | | 订单状态(关联查询) |
|   `productName` | `string` | | 产品名称(关联查询) |
|   `sequence` | `int` | | 排序序号 |
|   `status` | `string` | | 待办状态 |
|   `todoId` | `long` | | 待办ID |
|   `todoLabel` | `string` | | 待办名称 |
|   `todoType` | `string` | | 待办类型 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/todo/{todoId}/complete
**完成待办**
将指定待办标记为已完成。
需要对应角色权限如配房待办需ROOM_MANAGER角色,配车待办需VEHICLE_MANAGER角色。
完成后系统自动检查是否所有必要待办已完成,若是则推进内部流程
【关联字典】
- 涉及字段 todoType → 字典order_todo_type订单待办类型
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `todoId` | `integer` | | 待办ID |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/{orderId}/customizer
**更换定制师**
将订单转派给另一位定制师。更换后原定制师的待办自动转移,订单时间线会记录此操作
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**请求体** `更换定制师请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `customizerId` | `long` | 是 | 定制师ID |
**响应** `统一响应结果«Void»`
---
### `GET` /admin/order/{orderId}/todos
**获取订单待办列表**
返回指定订单的所有待办项(含已完成和未完成)。
待办类型包括:配房、配车、签合同、购保险、核算等,随内部流程自动生成
【关联字典】
- 返回字段 todoType → 字典order_todo_type订单待办类型
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `orderId` | `integer` | | 订单ID |
**响应** `统一响应结果«List«OrderTodo»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `OrderTodo[]` | | 响应数据 |
|   `assigneeAdminId` | `long` | | 指派管理员ID |
|   `assigneeRoleKey` | `string` | | 指派角色Key |
|   `completedAt` | `string` | | 完成时间 |
|   `completedBy` | `long` | | 完成人ID |
|   `createTime` | `string` | | 创建时间 |
|   `deletedAt` | `string` | | 删除时间(软删除) |
|   `lastNotifiedAt` | `string` | | 最后通知时间 |
|   `notificationCount` | `int` | | 通知次数 |
|   `orderId` | `long` | | 订单ID |
|   `orderNo` | `string` | | 订单编号 |
|   `sequence` | `int` | | 排序序号 |
|   `status` | `string` | | 待办状态 |
|   `todoId` | `long` | | 待办ID |
|   `todoLabel` | `string` | | 待办标签 |
|   `todoType` | `string` | | 待办类型 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
## 订单配置接口
### `GET` /admin/order/config/expiry-minutes
**获取订单过期配置**
获取当前的订单未支付自动过期时间(分钟)。
返回当前值、默认值和配置来源redis=已自定义, default=使用默认值)
**响应** `统一响应结果«Map«string,object»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `object` | | 响应数据 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/config/expiry-minutes
**设置订单过期时间(分钟)**
修改订单未支付自动取消的等待时间。存储在Redis中,即时生效。
仅影响新创建的订单,已有订单的过期时间不变
**请求体** `修改订单过期时间请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `minutes` | `int` | 是 | 过期时间(分钟) |
**响应** `统一响应结果«Void»`
---
## 退款政策管理
### `POST` /admin/order/refund-policy
**创建退款政策**
退款政策定义按产品类型和距出发天数的退款比例阶梯
例如出发前30天退90%,前15天退70%,前7天退50%,7天内不可退
每种产品类型可配置独立的退款政策,用户申请退款时系统自动匹配
【关联字典】
- 请求参数 refundType → 字典refund_type退款类型
- 请求参数 productType → 字典product_type产品类型
**请求体** `退款政策请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `endDate` | `string` | | 生效结束日期 |
| `isDefault` | `boolean` | | 是否为默认政策 |
| `policyName` | `string` | 是 | 政策名称 |
| `refundType` | `string` | 是 | 退款类型 |
| `remark` | `string` | | 备注 |
| `rules` | `退款规则项[]` | 是 | 退款规则列表 |
|   `minDays` | `int` | 是 | 距出发最少天数含当天。例如minDays=7表示出发前7天及以上适用此规则 |
|   `refundRatio` | `int` | 是 | 退款比例百分比,0-100。例如80表示退已付金额的80% |
| `startDate` | `string` | | 生效开始日期 |
**响应** `统一响应结果«退款政策VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款政策VO` | | 响应数据 |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 创建人ID |
|   `enabled` | `boolean` | | 是否启用 |
|   `endDate` | `string` | | 生效结束日期 |
|   `isDefault` | `boolean` | | 是否为默认政策 |
|   `policyId` | `long` | | 政策ID |
|   `policyName` | `string` | | 政策名称 |
|   `refundType` | `string` | | 退款类型 |
|   `remark` | `string` | | 备注 |
|   `rules` | `退款规则VO[]` | | 退款规则列表 |
|     `minDays` | `int` | | 距出发最少天数 |
|     `refundRatio` | `int` | | 退款比例(百分比) |
|     `ruleId` | `long` | | 规则ID |
|   `startDate` | `string` | | 生效开始日期 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/refund-policy/list
**退款政策列表**
【关联字典】
- 返回字段 refundType → 字典refund_type退款类型
- 返回字段 productType → 字典product_type产品类型
**响应** `统一响应结果«List«退款政策VO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款政策VO[]` | | 响应数据 |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 创建人ID |
|   `enabled` | `boolean` | | 是否启用 |
|   `endDate` | `string` | | 生效结束日期 |
|   `isDefault` | `boolean` | | 是否为默认政策 |
|   `policyId` | `long` | | 政策ID |
|   `policyName` | `string` | | 政策名称 |
|   `refundType` | `string` | | 退款类型 |
|   `remark` | `string` | | 备注 |
|   `rules` | `退款规则VO[]` | | 退款规则列表 |
|     `minDays` | `int` | | 距出发最少天数 |
|     `refundRatio` | `int` | | 退款比例(百分比) |
|     `ruleId` | `long` | | 规则ID |
|   `startDate` | `string` | | 生效开始日期 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/refund-policy/{policyId}
**退款政策详情**
【关联字典】
- 返回字段 refundType → 字典refund_type退款类型
- 返回字段 productType → 字典product_type产品类型
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `policyId` | `integer` | | 退款政策ID |
**响应** `统一响应结果«退款政策VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款政策VO` | | 响应数据 |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 创建人ID |
|   `enabled` | `boolean` | | 是否启用 |
|   `endDate` | `string` | | 生效结束日期 |
|   `isDefault` | `boolean` | | 是否为默认政策 |
|   `policyId` | `long` | | 政策ID |
|   `policyName` | `string` | | 政策名称 |
|   `refundType` | `string` | | 退款类型 |
|   `remark` | `string` | | 备注 |
|   `rules` | `退款规则VO[]` | | 退款规则列表 |
|     `minDays` | `int` | | 距出发最少天数 |
|     `refundRatio` | `int` | | 退款比例(百分比) |
|     `ruleId` | `long` | | 规则ID |
|   `startDate` | `string` | | 生效开始日期 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/refund-policy/{policyId}
**修改退款政策**
【关联字典】
- 请求参数 refundType → 字典refund_type退款类型
- 请求参数 productType → 字典product_type产品类型
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `policyId` | `integer` | | 退款政策ID |
**请求体** `退款政策请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `endDate` | `string` | | 生效结束日期 |
| `isDefault` | `boolean` | | 是否为默认政策 |
| `policyName` | `string` | 是 | 政策名称 |
| `refundType` | `string` | 是 | 退款类型 |
| `remark` | `string` | | 备注 |
| `rules` | `退款规则项[]` | 是 | 退款规则列表 |
|   `minDays` | `int` | 是 | 距出发最少天数含当天。例如minDays=7表示出发前7天及以上适用此规则 |
|   `refundRatio` | `int` | 是 | 退款比例百分比,0-100。例如80表示退已付金额的80% |
| `startDate` | `string` | | 生效开始日期 |
**响应** `统一响应结果«退款政策VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款政策VO` | | 响应数据 |
|   `createTime` | `string` | | 创建时间 |
|   `createdBy` | `long` | | 创建人ID |
|   `enabled` | `boolean` | | 是否启用 |
|   `endDate` | `string` | | 生效结束日期 |
|   `isDefault` | `boolean` | | 是否为默认政策 |
|   `policyId` | `long` | | 政策ID |
|   `policyName` | `string` | | 政策名称 |
|   `refundType` | `string` | | 退款类型 |
|   `remark` | `string` | | 备注 |
|   `rules` | `退款规则VO[]` | | 退款规则列表 |
|     `minDays` | `int` | | 距出发最少天数 |
|     `refundRatio` | `int` | | 退款比例(百分比) |
|     `ruleId` | `long` | | 规则ID |
|   `startDate` | `string` | | 生效开始日期 |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `DELETE` /admin/order/refund-policy/{policyId}
**删除退款政策**
软删除退款政策。删除后该产品类型将使用默认退款规则。不影响已使用该政策处理的历史退款申请。
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `policyId` | `integer` | | 退款政策ID |
**响应** `统一响应结果«Void»`
---
### `PUT` /admin/order/refund-policy/{policyId}/toggle
**启用/禁用退款政策**
禁用后该政策不再参与退款金额计算,对应产品类型将使用默认退款规则
同一产品类型仅允许一个启用中的政策
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `policyId` | `integer` | | 退款政策ID |
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `enabled` | `boolean` | | 是否启用 | |
**响应** `统一响应结果«Void»`
---
## 退款管理
### `GET` /admin/order/refund/list
**退款申请列表**
分页查询退款申请,支持按状态筛选。
状态包括PENDING(待审批)、APPROVED(已通过)、REJECTED(已拒绝)、REFUNDING(退款中)、REFUNDED(已退款)、CANCELLED(已撤回)、APPEAL(申诉中)
【关联字典】
- 筛选参数 status → 字典refund_status退款状态
- 返回字段 status → 字典refund_status退款状态
**查询参数**
| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `page` | `integer(int32)` | | 页码 | |
| `pageSize` | `integer(int32)` | | 每页条数 | |
| `status` | `string` | | 状态 | |
**响应** `统一响应结果«分页结果«退款申请VO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `分页结果«退款申请VO»` | | 响应数据 |
|   `page` | `int` | | 当前页码 |
|   `pageSize` | `int` | | 每页条数 |
|   `records` | `退款申请VO[]` | | 数据列表 |
|     `actualAmount` | `number` | | 实际退款金额 |
|     `appealAmount` | `number` | | 申诉退款金额 |
|     `appealReason` | `string` | | 申诉原因 |
|     `appealStatus` | `int` | | 申诉状态: 1-处理中 2-通过 3-驳回 |
|     `appealStatusLabel` | `string` | | 申诉状态标签 |
|     `appealedAt` | `string` | | 申诉时间 |
|     `applicantId` | `long` | | 申请人ID |
|     `applicantName` | `string` | | 申请人姓名 |
|     `applicantType` | `string` | | 申请人类型USER/ADMIN |
|     `applicationId` | `long` | | 申请ID |
|     `approvalNo` | `string` | | 审批编号 |
|     `calculatedAmount` | `number` | | 计算退款金额 |
|     `createTime` | `string` | | 创建时间 |
|     `daysBeforeDept` | `int` | | 距出发天数 |
|     `departureDate` | `string` | | 出发日期 |
|     `orderId` | `long` | | 订单ID |
|     `orderNo` | `string` | | 订单号 |
|     `paidAmount` | `number` | | 已付金额 |
|     `policyId` | `long` | | 退款政策ID |
|     `policyName` | `string` | | 退款政策名称 |
|     `productName` | `string` | | 产品名称 |
|     `reasonDetail` | `string` | | 补充说明 |
|     `reasonId` | `long` | | 退款原因ID |
|     `reasonText` | `string` | | 退款原因 |
|     `refundRatio` | `int` | | 退款比例(百分比) |
|     `refundType` | `string` | | 退款类型字典refund_type |
|     `refundTypeLabel` | `string` | | 退款类型标签字典refund_type 翻译) |
|     `refundedAt` | `string` | | 退款完成时间 |
|     `reviewAdminId` | `long` | | 审批管理员ID |
|     `reviewAdminName` | `string` | | 审批管理员姓名 |
|     `reviewRemark` | `string` | | 审批备注 |
|     `reviewedAt` | `string` | | 审批时间 |
|     `status` | `string` | | 退款状态字典refund_status |
|     `statusLabel` | `string` | | 退款状态标签字典refund_status 翻译) |
|     `updateTime` | `string` | | 更新时间 |
|   `total` | `int` | | 总记录数 |
| `message` | `string` | | 响应消息 |
---
### `POST` /admin/order/refund/reason
**创建退款原因**
新增退款原因选项,C端用户申请退款时可选择。按sortOrder排序展示
【关联字典】
- 请求参数 category → 字典refund_reason_category退款原因分类
**请求体** `创建退款原因请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `category` | `string` | | 分类 |
| `reasonText` | `string` | 是 | 退款原因文本 |
| `sortOrder` | `int` | | 排序号 |
**响应** `统一响应结果«退款原因VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款原因VO` | | 响应数据 |
|   `category` | `string` | | 原因分类 |
|   `enabled` | `boolean` | | 是否启用 |
|   `reasonId` | `long` | | 原因ID |
|   `reasonText` | `string` | | 原因描述 |
|   `sortOrder` | `int` | | 排序序号 |
| `message` | `string` | | 响应消息 |
---
### `GET` /admin/order/refund/reason/list
**退款原因列表**
获取所有退款原因选项(含禁用的),用于退款原因管理页面
【关联字典】
- 返回字段 category → 字典refund_reason_category退款原因分类
**响应** `统一响应结果«List«退款原因VO»»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款原因VO[]` | | 响应数据 |
|   `category` | `string` | | 原因分类 |
|   `enabled` | `boolean` | | 是否启用 |
|   `reasonId` | `long` | | 原因ID |
|   `reasonText` | `string` | | 原因描述 |
|   `sortOrder` | `int` | | 排序序号 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/refund/reason/{reasonId}
**修改退款原因**
修改退款原因的文本、分类或排序,不影响已使用该原因的历史退款申请
【关联字典】
- 请求参数 category → 字典refund_reason_category退款原因分类
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `reasonId` | `integer` | | 退款原因ID |
**请求体** `修改退款原因请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `category` | `string` | | 分类 |
| `reasonText` | `string` | | 退款原因文本 |
| `sortOrder` | `int` | | 排序号 |
**响应** `统一响应结果«退款原因VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款原因VO` | | 响应数据 |
|   `category` | `string` | | 原因分类 |
|   `enabled` | `boolean` | | 是否启用 |
|   `reasonId` | `long` | | 原因ID |
|   `reasonText` | `string` | | 原因描述 |
|   `sortOrder` | `int` | | 排序序号 |
| `message` | `string` | | 响应消息 |
---
### `DELETE` /admin/order/refund/reason/{reasonId}
**删除退款原因**
软删除退款原因,删除后C端不再展示。不影响已使用该原因的历史退款申请
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `reasonId` | `integer` | | 退款原因ID |
**响应** `统一响应结果«Void»`
---
### `GET` /admin/order/refund/{applicationId}
**退款申请详情**
返回退款申请的完整信息,包括退款原因、申请金额、实退金额、审批记录、申诉信息等
【关联字典】
- 返回字段 status → 字典refund_status退款状态
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `applicationId` | `integer` | | 退款申请ID |
**响应** `统一响应结果«退款申请VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款申请VO` | | 响应数据 |
|   `actualAmount` | `number` | | 实际退款金额 |
|   `appealAmount` | `number` | | 申诉退款金额 |
|   `appealReason` | `string` | | 申诉原因 |
|   `appealStatus` | `int` | | 申诉状态: 1-处理中 2-通过 3-驳回 |
|   `appealStatusLabel` | `string` | | 申诉状态标签 |
|   `appealedAt` | `string` | | 申诉时间 |
|   `applicantId` | `long` | | 申请人ID |
|   `applicantName` | `string` | | 申请人姓名 |
|   `applicantType` | `string` | | 申请人类型USER/ADMIN |
|   `applicationId` | `long` | | 申请ID |
|   `approvalNo` | `string` | | 审批编号 |
|   `calculatedAmount` | `number` | | 计算退款金额 |
|   `createTime` | `string` | | 创建时间 |
|   `daysBeforeDept` | `int` | | 距出发天数 |
|   `departureDate` | `string` | | 出发日期 |
|   `orderId` | `long` | | 订单ID |
|   `orderNo` | `string` | | 订单号 |
|   `paidAmount` | `number` | | 已付金额 |
|   `policyId` | `long` | | 退款政策ID |
|   `policyName` | `string` | | 退款政策名称 |
|   `productName` | `string` | | 产品名称 |
|   `reasonDetail` | `string` | | 补充说明 |
|   `reasonId` | `long` | | 退款原因ID |
|   `reasonText` | `string` | | 退款原因 |
|   `refundRatio` | `int` | | 退款比例(百分比) |
|   `refundType` | `string` | | 退款类型字典refund_type |
|   `refundTypeLabel` | `string` | | 退款类型标签字典refund_type 翻译) |
|   `refundedAt` | `string` | | 退款完成时间 |
|   `reviewAdminId` | `long` | | 审批管理员ID |
|   `reviewAdminName` | `string` | | 审批管理员姓名 |
|   `reviewRemark` | `string` | | 审批备注 |
|   `reviewedAt` | `string` | | 审批时间 |
|   `status` | `string` | | 退款状态字典refund_status |
|   `statusLabel` | `string` | | 退款状态标签字典refund_status 翻译) |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/refund/{applicationId}/complete
**手动完成退款**
用于测试订单或线下退款场景。将处于'退款中'状态的退款申请直接标记为'已退款'
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `applicationId` | `integer` | | 退款申请ID |
**响应** `统一响应结果«退款申请VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款申请VO` | | 响应数据 |
|   `actualAmount` | `number` | | 实际退款金额 |
|   `appealAmount` | `number` | | 申诉退款金额 |
|   `appealReason` | `string` | | 申诉原因 |
|   `appealStatus` | `int` | | 申诉状态: 1-处理中 2-通过 3-驳回 |
|   `appealStatusLabel` | `string` | | 申诉状态标签 |
|   `appealedAt` | `string` | | 申诉时间 |
|   `applicantId` | `long` | | 申请人ID |
|   `applicantName` | `string` | | 申请人姓名 |
|   `applicantType` | `string` | | 申请人类型USER/ADMIN |
|   `applicationId` | `long` | | 申请ID |
|   `approvalNo` | `string` | | 审批编号 |
|   `calculatedAmount` | `number` | | 计算退款金额 |
|   `createTime` | `string` | | 创建时间 |
|   `daysBeforeDept` | `int` | | 距出发天数 |
|   `departureDate` | `string` | | 出发日期 |
|   `orderId` | `long` | | 订单ID |
|   `orderNo` | `string` | | 订单号 |
|   `paidAmount` | `number` | | 已付金额 |
|   `policyId` | `long` | | 退款政策ID |
|   `policyName` | `string` | | 退款政策名称 |
|   `productName` | `string` | | 产品名称 |
|   `reasonDetail` | `string` | | 补充说明 |
|   `reasonId` | `long` | | 退款原因ID |
|   `reasonText` | `string` | | 退款原因 |
|   `refundRatio` | `int` | | 退款比例(百分比) |
|   `refundType` | `string` | | 退款类型字典refund_type |
|   `refundTypeLabel` | `string` | | 退款类型标签字典refund_type 翻译) |
|   `refundedAt` | `string` | | 退款完成时间 |
|   `reviewAdminId` | `long` | | 审批管理员ID |
|   `reviewAdminName` | `string` | | 审批管理员姓名 |
|   `reviewRemark` | `string` | | 审批备注 |
|   `reviewedAt` | `string` | | 审批时间 |
|   `status` | `string` | | 退款状态字典refund_status |
|   `statusLabel` | `string` | | 退款状态标签字典refund_status 翻译) |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/refund/{applicationId}/execute-appeal
**申诉通过后执行退款**
申诉退款流程:用户发起申诉 → 企微OA审批 → 审批通过后管理员确认实退金额 → 调起微信退款
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `applicationId` | `integer` | | 退款申请ID |
**请求体** `申诉退款执行请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `actualAmount` | `number` | 是 | 实际退款金额 |
| `remark` | `string` | | 备注 |
**响应** `统一响应结果«退款申请VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款申请VO` | | 响应数据 |
|   `actualAmount` | `number` | | 实际退款金额 |
|   `appealAmount` | `number` | | 申诉退款金额 |
|   `appealReason` | `string` | | 申诉原因 |
|   `appealStatus` | `int` | | 申诉状态: 1-处理中 2-通过 3-驳回 |
|   `appealStatusLabel` | `string` | | 申诉状态标签 |
|   `appealedAt` | `string` | | 申诉时间 |
|   `applicantId` | `long` | | 申请人ID |
|   `applicantName` | `string` | | 申请人姓名 |
|   `applicantType` | `string` | | 申请人类型USER/ADMIN |
|   `applicationId` | `long` | | 申请ID |
|   `approvalNo` | `string` | | 审批编号 |
|   `calculatedAmount` | `number` | | 计算退款金额 |
|   `createTime` | `string` | | 创建时间 |
|   `daysBeforeDept` | `int` | | 距出发天数 |
|   `departureDate` | `string` | | 出发日期 |
|   `orderId` | `long` | | 订单ID |
|   `orderNo` | `string` | | 订单号 |
|   `paidAmount` | `number` | | 已付金额 |
|   `policyId` | `long` | | 退款政策ID |
|   `policyName` | `string` | | 退款政策名称 |
|   `productName` | `string` | | 产品名称 |
|   `reasonDetail` | `string` | | 补充说明 |
|   `reasonId` | `long` | | 退款原因ID |
|   `reasonText` | `string` | | 退款原因 |
|   `refundRatio` | `int` | | 退款比例(百分比) |
|   `refundType` | `string` | | 退款类型字典refund_type |
|   `refundTypeLabel` | `string` | | 退款类型标签字典refund_type 翻译) |
|   `refundedAt` | `string` | | 退款完成时间 |
|   `reviewAdminId` | `long` | | 审批管理员ID |
|   `reviewAdminName` | `string` | | 审批管理员姓名 |
|   `reviewRemark` | `string` | | 审批备注 |
|   `reviewedAt` | `string` | | 审批时间 |
|   `status` | `string` | | 退款状态字典refund_status |
|   `statusLabel` | `string` | | 退款状态标签字典refund_status 翻译) |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---
### `PUT` /admin/order/refund/{applicationId}/review
**审批退款申请**
退款审批流程:查看退款申请 → 决定通过/拒绝 → 通过时填写实退金额 → 系统自动调起微信退款
拒绝后用户可发起申诉
【关联字典】
- 返回字段 status → 字典refund_status退款状态
**路径参数**
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `applicationId` | `integer` | | 退款申请ID |
**请求体** `管理员退款审批请求`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `action` | `string` | 是 | 审批结果APPROVE=通过自动调起微信退款、REJECT=拒绝(用户可发起申诉) |
| `actualAmount` | `number` | | 实际退款金额(审批通过时可调整,不传则使用申请金额)。不能超过订单已付金额 |
| `remark` | `string` | | 审批备注 |
**响应** `统一响应结果«退款申请VO»`
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `code` | `int` | | 状态码 |
| `data` | `退款申请VO` | | 响应数据 |
|   `actualAmount` | `number` | | 实际退款金额 |
|   `appealAmount` | `number` | | 申诉退款金额 |
|   `appealReason` | `string` | | 申诉原因 |
|   `appealStatus` | `int` | | 申诉状态: 1-处理中 2-通过 3-驳回 |
|   `appealStatusLabel` | `string` | | 申诉状态标签 |
|   `appealedAt` | `string` | | 申诉时间 |
|   `applicantId` | `long` | | 申请人ID |
|   `applicantName` | `string` | | 申请人姓名 |
|   `applicantType` | `string` | | 申请人类型USER/ADMIN |
|   `applicationId` | `long` | | 申请ID |
|   `approvalNo` | `string` | | 审批编号 |
|   `calculatedAmount` | `number` | | 计算退款金额 |
|   `createTime` | `string` | | 创建时间 |
|   `daysBeforeDept` | `int` | | 距出发天数 |
|   `departureDate` | `string` | | 出发日期 |
|   `orderId` | `long` | | 订单ID |
|   `orderNo` | `string` | | 订单号 |
|   `paidAmount` | `number` | | 已付金额 |
|   `policyId` | `long` | | 退款政策ID |
|   `policyName` | `string` | | 退款政策名称 |
|   `productName` | `string` | | 产品名称 |
|   `reasonDetail` | `string` | | 补充说明 |
|   `reasonId` | `long` | | 退款原因ID |
|   `reasonText` | `string` | | 退款原因 |
|   `refundRatio` | `int` | | 退款比例(百分比) |
|   `refundType` | `string` | | 退款类型字典refund_type |
|   `refundTypeLabel` | `string` | | 退款类型标签字典refund_type 翻译) |
|   `refundedAt` | `string` | | 退款完成时间 |
|   `reviewAdminId` | `long` | | 审批管理员ID |
|   `reviewAdminName` | `string` | | 审批管理员姓名 |
|   `reviewRemark` | `string` | | 审批备注 |
|   `reviewedAt` | `string` | | 审批时间 |
|   `status` | `string` | | 退款状态字典refund_status |
|   `statusLabel` | `string` | | 退款状态标签字典refund_status 翻译) |
|   `updateTime` | `string` | | 更新时间 |
| `message` | `string` | | 响应消息 |
---