docs: 告知前端使用 5132 真实订单标签

这个提交包含在:
API Changelog Bot 2026-07-22 11:56:48 +08:00
父节点 f88592504e
当前提交 2049120145

查看文件

@ -24,6 +24,7 @@ generated: "2026-07-22T10:35:00+08:00"
派单弹窗 Step1 不能再只展示人数、日期和每日一句简介。`GET /admin/fleet/board/orders/{orderId}` 现一次返回: 派单弹窗 Step1 不能再只展示人数、日期和每日一句简介。`GET /admin/fleet/board/orders/{orderId}` 现一次返回:
- `productName`:订单产品名(原字段,前端本次必须展示)。 - `productName`:订单产品名(原字段,前端本次必须展示)。
- `tags[]`:订单在 `order_tag` 中真实挂载的标签名称与颜色;无标签返回 `[]`
- `itinerary.days[].nodes[]`:每日真实行程节点,含开始时间、时段、时长、名称和简介。 - `itinerary.days[].nodes[]`:每日真实行程节点,含开始时间、时段、时长、名称和简介。
- `travelers[]`:出行人脱敏基本信息,不含生日和任何明文字段。 - `travelers[]`:出行人脱敏基本信息,不含生日和任何明文字段。
- `transport`:抵达、返程及分批大交通信息(原字段,前端本次必须完整展示时间和班次,不能只显示站点)。 - `transport`:抵达、返程及分批大交通信息(原字段,前端本次必须完整展示时间和班次,不能只显示站点)。
@ -44,6 +45,10 @@ GET /admin/fleet/board/orders/{orderId}
| 字段 | 类型 | 说明 | | 字段 | 类型 | 说明 |
| --- | --- | --- | | --- | --- | --- |
| `tags` | Array | 真实订单标签;无标签返回 `[]` |
| `tags[].tagId` | String | 标签雪花 ID,必须按字符串处理 |
| `tags[].name` | String/null | 标签名称 |
| `tags[].color` | String/null | 标签颜色,如 `#52C41A` |
| `itinerary.days[].nodes` | Array | 当日节点,按 `sortOrder` 升序;无节点返回 `[]` | | `itinerary.days[].nodes` | Array | 当日节点,按 `sortOrder` 升序;无节点返回 `[]` |
| `itinerary.days[].nodes[].nodeId` | String | 节点雪花 ID,必须按字符串处理 | | `itinerary.days[].nodes[].nodeId` | String | 节点雪花 ID,必须按字符串处理 |
| `itinerary.days[].nodes[].nodeType` | String/null | 节点类型,如 `SCENIC``RESTAURANT``ACTIVITY``SERVICE``CUSTOM` | | `itinerary.days[].nodes[].nodeType` | String/null | 节点类型,如 `SCENIC``RESTAURANT``ACTIVITY``SERVICE``CUSTOM` |
@ -106,6 +111,13 @@ GET /admin/fleet/board/orders/{orderId}
"data": { "data": {
"orderNo": "HL20260721171011648", "orderNo": "HL20260721171011648",
"productName": "草原亲子三日游", "productName": "草原亲子三日游",
"tags": [
{
"tagId": "9001",
"name": "亲子家庭",
"color": "#52C41A"
}
],
"itinerary": { "itinerary": {
"theme": "草原亲子三日游", "theme": "草原亲子三日游",
"route": null, "route": null,
@ -182,6 +194,8 @@ GET /admin/fleet/board/orders/{orderId}
目标文件:`src/views/fleet/board/components/Step1OrderDetail.vue` 目标文件:`src/views/fleet/board/components/Step1OrderDetail.vue`
1. 顶部订单摘要展示产品名,读取 `order.productName || order.product`;产品名为空才显示 `—` 1. 顶部订单摘要展示产品名,读取 `order.productName || order.product`;产品名为空才显示 `—`
- 当前 `Step1OrderDetail.vue` 中的 `order.bookingType || '企业包车'` 是硬编码占位,不是订单标签,必须删除。
- 该位置改为遍历详情响应 `tags[]`,使用 `name` 作为文案、`color` 作为颜色;`tags=[]` 时不显示标签,也不回退“企业包车”。
2. 在顶部订单摘要下增加“大交通”信息卡,抵达与返程分栏展示 `transportNo + time + station + remark` 2. 在顶部订单摘要下增加“大交通”信息卡,抵达与返程分栏展示 `transportNo + time + station + remark`
- 时间使用完整月日和时分,不只展示日期。 - 时间使用完整月日和时分,不只展示日期。
- `arrive``depart` 独立判空,只有一段时仍正常展示该段。 - `arrive``depart` 独立判空,只有一段时仍正常展示该段。
@ -208,6 +222,7 @@ GET /admin/fleet/board/orders/{orderId}
## 兼容与降级 ## 兼容与降级
- 仅新增响应字段,不修改请求参数,不影响旧调用方。 - 仅新增响应字段,不修改请求参数,不影响旧调用方。
- 历史订单无订单标签时 `tags=[]`,禁止使用产品类型、预订类型或固定文案冒充订单标签。
- 历史行程没有节点时 `nodes=[]`,每日标题和简介仍照常返回。 - 历史行程没有节点时 `nodes=[]`,每日标题和简介仍照常返回。
- order-v3 聚合上下文失败并回退 fleet 本地快照时,`relatedDetailReady=false``travelers=[]`,行程节点不可用;前端显示真实空态。 - order-v3 聚合上下文失败并回退 fleet 本地快照时,`relatedDetailReady=false``travelers=[]`,行程节点不可用;前端显示真实空态。
- 原独立脱敏接口 `GET /admin/fleet/board/orders/{orderId}/travelers` 保留兼容,但此页面无需再发第二次请求。 - 原独立脱敏接口 `GET /admin/fleet/board/orders/{orderId}/travelers` 保留兼容,但此页面无需再发第二次请求。
@ -218,6 +233,7 @@ GET /admin/fleet/board/orders/{orderId}
## 验收清单 ## 验收清单
- [ ] 顶部可看到订单产品名。 - [ ] 顶部可看到订单产品名。
- [ ] 顶部只展示 `tags[]` 中的真实订单标签;无标签时不显示,“企业包车”硬编码已删除。
- [ ] 大交通卡分别展示抵达/返程的班次、完整时间、站点和备注。 - [ ] 大交通卡分别展示抵达/返程的班次、完整时间、站点和备注。
- [ ] 有分批接送时展示每批出行人、班次、时间和站点;无大交通时间时展示真实空态。 - [ ] 有分批接送时展示每批出行人、班次、时间和站点;无大交通时间时展示真实空态。
- [ ] 每日安排按节点顺序展示时间、节点名、时长和简介。 - [ ] 每日安排按节点顺序展示时间、节点名、时长和简介。
@ -236,6 +252,7 @@ GET /admin/fleet/board/orders/{orderId}
- `OrderFleetProviderServiceTest`:覆盖节点随当前订单日期对齐且出行人脱敏进入聚合上下文。 - `OrderFleetProviderServiceTest`:覆盖节点随当前订单日期对齐且出行人脱敏进入聚合上下文。
- `BoardOrderServiceTest`:覆盖 shared DTO 到管理端 VO 的节点和出行人映射。 - `BoardOrderServiceTest`:覆盖 shared DTO 到管理端 VO 的节点和出行人映射。
- `BoardControllerTest`:覆盖 `productName`、节点时间、String ID 与脱敏出行人的 JSON 契约。 - `BoardControllerTest`:覆盖 `productName`、节点时间、String ID 与脱敏出行人的 JSON 契约。
- `OrderFleetProviderServiceTest``BoardOrderServiceTest``BoardControllerTest`:覆盖 `order_tag` 名称/颜色进入详情响应,标签 ID 按字符串序列化。
- 测试环境网关实测订单 `HL20260721171011648`HTTP 200,返回 3 个行程日、14 个真实节点和 5 位出行人;5 位出行人均返回 `ageAtDeparture`,且未出现生日、明文姓名、明文证件号或明文手机号。 - 测试环境网关实测订单 `HL20260721171011648`HTTP 200,返回 3 个行程日、14 个真实节点和 5 位出行人;5 位出行人均返回 `ageAtDeparture`,且未出现生日、明文姓名、明文证件号或明文手机号。
- 同一实测订单已返回抵达大交通的班次、抵达时间和站点;该订单无返程段、无分批接送,接口按真实数据返回空值或空数组。 - 同一实测订单已返回抵达大交通的班次、抵达时间和站点;该订单无返程段、无分批接送,接口按真实数据返回空值或空数组。
- 该订单 14 个节点的 `startTime``timePeriod` 在订单行程源数据中均为空,接口如实返回 `null`;前端须展示“时间待定”,若要显示具体钟点需先补录订单行程节点时间。 - 该订单 14 个节点的 `startTime``timePeriod` 在订单行程源数据中均为空,接口如实返回 `null`;前端须展示“时间待定”,若要显示具体钟点需先补录订单行程节点时间。