# 小程序每日详情字段补全 - **日期**: 2026-04-16 - **服务**: hl-product-service-v2 - **PR**: #669, #671 - **类型**: feat ## 概述 小程序产品详情 `GET /mp/product/{id}` 的行程天(`itinerary[]`)补全所有每日详情页所需字段。 ## itinerary[] 完整字段清单 | 字段 | 类型 | 说明 | |------|------|------| | `dayNumber` | Integer | 天序号 | | `dayTitle` | String | 标题 | | `quoteText` | String | 每日金句 | | `description` | String | 描述 | | `coverImageUrl` | String | 封面图 | | `gatherPlace` | Object | 集合地 {name,adcode,center,level} | | `dismissalPlace` | Object | 解散地 {name,adcode,center,level} | | `dailyMileage` | BigDecimal | 当日里程(km) | | `dailyDuration` | Integer | 当日驾车时长(分钟) | | `breakfast` | String | 早餐(HOTEL/CAMP/SPECIAL/SELF) | | `lunch` | String | 午餐 | | `dinner` | String | 晚餐 | | `diningRemark` | String | 餐饮备注 | | `photoUrls` | List | 实拍照片 | | `routePoints` | List | 途经路线 [{name, sortOrder}] | | `nodes` | List | 节点列表 [{nodeType, nodeName, startTime, durationMinutes, description}] | | `hotels` | List | 住宿列表 [{hotelName, tierSeq, roomTypeId, roomTypeName, roomCount}] | ## 新增字段(本次PR) | 字段 | 说明 | |------|------| | `quoteText` | 每日金句 | | `diningRemark` | 餐饮备注 | | `dailyMileage` | 当日里程 | | `dailyDuration` | 当日驾车时长 | | `routePoints` | 途经路线(自动生成) | ## 前端每日详情页数据对照 | 展示区块 | 数据来源 | |---------|---------| | 途经路线(海拉尔→呼籁营地→额尔古纳) | `routePoints[].name` 用 " → " 连接 | | 290km · 约3.5小时 | `dailyMileage` + `dailyDuration`(分钟→小时格式化) | | 金句引用 | `quoteText` | | 行程详情(节点列表) | `nodes[]` | | 实拍照片 | `photoUrls[]` | | 今日概况(里程/餐饮/目的地) | `dailyMileage` / `breakfast,lunch,dinner` / `dismissalPlace.name` | | 住宿(按档位分组) | `hotels[]` 按 `tierSeq` 分组 | | 今日体验 | `nodes[]` 中 `nodeType=ACTIVITY` 的项 |