新增:小程序每日行程详情接口

这个提交包含在:
API Changelog Bot 2026-04-16 18:10:12 +08:00
父节点 fe5746d1da
当前提交 00f901e519

查看文件

@ -0,0 +1,78 @@
# 小程序每日行程详情接口
- **日期**: 2026-04-16
- **服务**: hl-product-service-v2
- **PR**: #675
- **类型**: feat (新接口)
## 新增接口
```
GET /mp/product/{productId}/day/{dayNumber}
```
返回指定天的完整行程详情,用于小程序每日详情页。
### 参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `productId` | Long | 产品ID路径参数 |
| `dayNumber` | Integer | 天序号,从1开始路径参数 |
### 响应字段
| 字段 | 类型 | 说明 | 对应原型 |
|------|------|------|---------|
| `dayNumber` | Integer | 天序号 | DAY 2 |
| `dayTitle` | String | 标题 | |
| `quoteText` | String | 每日金句 | 引用文字 |
| `description` | String | 描述 | |
| `coverImageUrl` | String | 封面图 | 顶部大图 |
| `gatherPlace` | Object | 集合地 {name,adcode,center,level} | |
| `dismissalPlace` | Object | 解散地(目的地) | 今日概况·目的地 |
| `dailyMileage` | BigDecimal | 当日里程(km) | 290km |
| `dailyDuration` | Integer | 当日驾车时长(分钟) | 约3.5小时 |
| `breakfast` | String | 早餐 | 今日概况·餐饮 |
| `lunch` | String | 午餐 | |
| `dinner` | String | 晚餐 | |
| `diningRemark` | String | 餐饮备注 | 含BBQ |
| `photoUrls` | List | 实拍照片 | 实拍照片区块 |
| `routePoints` | List | 途经路线 [{name, sortOrder}] | 海拉尔→呼籁营地→额尔古纳 |
| `nodes` | List | 节点列表 | 行程详情 + 今日体验 |
| `hotels` | List | 住宿列表 | 按档位分组展示 |
### nodes[] 字段
| 字段 | 说明 | 用途 |
|------|------|------|
| `nodeType` | SCENIC/ACTIVITY/RESTAURANT/TRANSPORT等 | 行程详情用全部,今日体验只取ACTIVITY |
| `nodeName` | 节点名称 | 呼籁营地、牧云山顶 |
| `startTime` | 开始时间 | 上午、下午 |
| `durationMinutes` | 时长(分钟) | |
| `description` | 描述 | 节点下方的详细文字 |
### hotels[] 字段
| 字段 | 说明 |
|------|------|
| `hotelName` | 酒店名称 |
| `tierSeq` | 档位序号前端按此分组1=舒适 2=高档) |
| `roomTypeName` | 房型名称 |
| `roomCount` | 房间数 |
### 错误码
| 场景 | code | message |
|------|------|---------|
| 产品不存在/未上架 | 404 | 产品不存在或已下架 |
| 天序号不存在 | 404 | 行程天不存在: DayN |
### 前端展示对照
- **途经路线**`routePoints[].name` 用 " → " 连接
- **里程时长**`dailyMileage` + `dailyDuration`(分钟→"约X.X小时"
- **今日概况·餐饮**:拼接 `breakfast/lunch/dinner`HOTEL=含/SELF=自理/SPECIAL=特色)+ `diningRemark`
- **今日概况·目的地**`dismissalPlace.name`
- **住宿分组**:按 `tierSeq` 分组展示
- **今日体验**:筛选 `nodes[]``nodeType=ACTIVITY` 的项