feat: route overview + guarantee display fields summary for frontend

这个提交包含在:
API Changelog Bot 2026-04-16 14:58:35 +08:00
父节点 e8ee4d552d
当前提交 9a8d5285e5

查看文件

@ -0,0 +1,84 @@
# 线路概览展示所需字段汇总
- **日期**: 2026-04-16
- **服务**: hl-product-service-v2
- **类型**: 前端适配说明
## 原型展示
```
线 路 概 览
草原环线体验 ← routeName
海拉尔起止·全程约1200公里·日均不超300公里 ← 前端拼接
```
## 数据来源
| 展示内容 | 数据来源 | 接口字段 |
|---------|---------|---------|
| "草原环线体验" | 路线名称 | `routeName` (产品级) |
| "海拉尔起止" | 首天集合地 + 末天解散地 | `itinerary[0].gatherPlace.name` + `itinerary[last].dismissalPlace.name` |
| "全程约1200公里" | 总里程 | `totalMileage` (产品级) |
| "日均不超300公里" | 每日里程最大值 | `max(itinerary[].dailyMileage)` |
### 每日行程展示
```
DAY 2
海拉尔 → 呼籁营地 → 莫日格勒河 → 额尔古纳
290km · 约3.5小时
```
| 展示内容 | 数据来源 | 接口字段 |
|---------|---------|---------|
| 途经路线 | 自动生成 | `itinerary[].routePoints[].name` 用 " → " 连接 |
| "290km" | 当日里程 | `itinerary[].dailyMileage` |
| "约3.5小时" | 当日驾车时长 | `itinerary[].dailyDuration`(分钟,前端格式化) |
| 集合地 | 当日 | `itinerary[].gatherPlace` (JSON: {name,adcode,center,level}) |
| 解散地 | 当日 | `itinerary[].dismissalPlace` (JSON: {name,adcode,center,level}) |
### 时长格式化建议
`dailyDuration` 是分钟数,前端格式化示例:
- 151分钟 → "约2.5小时"
- 276分钟 → "约4.5小时"
- 30分钟以下 → "约30分钟"
---
## 行程保障展示
原型中「行程保障」区块无忧退改、5人专属团队、24小时客服等的数据来源
| 接口 | 字段 | 说明 |
|------|------|------|
| `GET /mp/product/{id}` | `guaranteeItems` | 行程保障项数组,自动解析模板 |
`guaranteeItems` 结构:
```json
[
{"icon": "shield", "title": "无忧退改", "description": "出发前7天无条件全额退款..."},
{"icon": "users", "title": "5人专属服务团队", "description": "定制师、房务管家..."},
{"icon": "clock", "title": "24小时客服响应", "description": "行前、行中、行后..."},
{"icon": "badge", "title": "旅行社责任险100万", "description": "正规旅行社资质..."},
{"icon": "car", "title": "全程纯玩无购物", "description": "无强制消费..."}
]
```
### 前端操作流程
1. **管理端 Step5 补充信息**:选择行程保障模板(`guaranteeTemplateId`
2. **小程序端**:从 `guaranteeItems` 直接渲染列表
### 模板管理
- 菜单:产品管理 → 行程保障
- CRUD接口`/admin/travel-guarantee-template/**`详见Knife4j「产品服务-模板管理」分组)
⚠️ 如果 `guaranteeItems` 为null,说明产品还没关联模板,需要在Step5中设置。
## 注意
- `gatherPlace`/`dismissalPlace` 需要重新保存行程(Step2)才有值
- `dailyMileage`/`dailyDuration` 保存行程时自动计算
- 所有数据在管理端详情和小程序端详情中均返回