docs(fleet): 交接派单通知预览修正 (#5211)
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s

这个提交包含在:
API Changelog Bot 2026-07-24 11:59:02 +08:00
父节点 92b53da54d
当前提交 40e28d2d4e

查看文件

@ -0,0 +1,78 @@
# 车务:派单通知预览补齐接送与行程数据
> **服务**: hl-fleet-service8087/8187
> **PR**: #5213
> **Issue**: #5211
> **日期**: 2026-07-24
> **影响范围**: 管理后台派车弹窗“排车待确认”通知预览
---
## ⚠️ 关键变化
原预览接口只读取订单主表基础字段,导致已有大交通和行程的订单仍把“接团、送团、行程链接、有效期”渲染为空。现在预览与 HOLD 实际发送共用接送口径,并在不创建派单、不写短链记录的前提下补齐行程长链和有效期。
## 一、变更接口
| 接口 | 方法 | 路径 | 变更类型 |
|------|------|------|----------|
| 微信通知模板预览 | POST | `/admin/fleet/message-templates/{templateId}/render` | 响应内容修正,结构不变 |
### 入参
请求体字段、类型和必填规则均不变:
```json
{
"orderId": "订单雪花 ID",
"vehicleId": "车辆雪花 ID",
"driverId": "司机雪花 ID",
"serviceDates": ["2026-07-29", "2026-07-30", "2026-07-31"],
"chargeableServiceDates": ["2026-07-29", "2026-07-30", "2026-07-31"],
"vehicleFeeWaiverReason": null
}
```
### 出参
`MessageTemplateRenderRespVO` 结构仍为:
| 字段 | 类型 | 说明 |
|------|------|------|
| `renderedBody` | String | 已替换变量的完整通知正文 |
| `variablesUsed` | String[] | 模板实际引用的变量 key |
本次修正以下既有变量在 `renderedBody` 中的取值:
| 变量 | 新口径 |
|------|--------|
| `order.pickupInfo` | 从订单到达方向大交通格式化;无需平台接送或资料缺失时输出明确文案 |
| `order.dropoffInfo` | 从订单返程方向大交通格式化;单方向缺失不再留空 |
| `itinerary.url` | 使用 `orderId + 行程结束日` 无副作用现签订单级长链;签发失败时输出明确不可用文案 |
| `itinerary.expireAt` | 与行程链接签发口径同源计算;无法计算时输出“待确认” |
## 二、前端调用约束
- 前端无需新增请求字段,也无需自行拼接接送或行程文案。
- 继续直接展示后端返回的 `renderedBody`
- 预览中的行程链接不会提前创建派单、派单短链或通知记录;真实发送仍由 HOLD 冻结链路生成稳定短链。
- 数据不可用时后端返回明确降级文案,前端不要再把这些文案转换为空串。
## 三、不影响范围
- 不修改模板、派单和通知接口的 JSON 结构。
- 不修改订单、大交通或行程数据。
- 不改变 HOLD 通知冻结、Outbox 投递和真实短链幂等规则。
- 不涉及 `hl-ui` 代码修改。
## 四、验证
- 定向测试:`MessageTemplateRenderServiceTest` + `AssignmentHoldNotificationSnapshotFactoryTest`,22/22 通过。
- 全量验证:`mvn -pl hl-fleet-service -am verify`,14 个 reactor 模块通过。
- Spotless598 files clean。
- 测试环境网关验收将在 PR 合并并部署后补录到 Issue #5211
## 五、相关文档
- [后端 Issue #5211](https://git.1814.love:8443/wx/HL/issues/5211)
- [后端 PR #5213](https://git.1814.love:8443/wx/HL/pulls/5213)