# 行程中今日页聚合接口扩展:DAY 导航 / 时间线 / 今晚住宿 / 明日预告 — 2026-04-21 > **服务** hl-mp-service(端口 8085)+ hl-order-service-v2(端口 8094)· **类型** feat · **关联** Issue #1120 / PR #1124 > **原型 Node IDs**:aufKi / NTzWR / JZcMi / 1ne4B / oVfPB / OwsOd("行程中 · 当前行程"页) > **依赖**:PR #1123(TripDetailVO 强类型化)、PR #1121(Hotel WiFi 字段,WiFi 数据视其落地情况) --- ## 一、影响接口 ### `GET /mp/trip/today-dashboard` — 行程中今日页聚合 既有字段 `today` / `leader` / `weather` / `sosContact` 保持不变,**新增 5 字段**。 ## 二、新增字段 | 字段 | 类型 | 说明 | | --- | --- | --- | | `todayProgressPercent` | `Integer` | 今日进度(0~100;无行程中订单时 null) | | `dayNav` | `List` | DAY Tab 导航列表(原型 `dayNavV2`) | | `todayTimeline` | `MpTodayTimelineVO` | 今日时间线(原型 `timelineV2`;无行程中订单时 null) | | `todayHotel` | `MpTripHotelArrangementVO` | 今晚住宿(原型 `hotelSection` / `hotelCard`) | | `tomorrow` | `MpTomorrowPreviewVO` | 明日预告(原型 `tmr`) | ### `MpTripDayNavVO` | 字段 | 类型 | 说明 | | --- | --- | --- | | `dayNumber` | `Integer` | 第几天 | | `date` | `LocalDate` | 日期 | | `dayStatus` | `String` | `DONE` / `CURRENT` / `PENDING` | ### `MpTodayTimelineVO` | 字段 | 类型 | 说明 | | --- | --- | --- | | `completed` | `List` | 已完成节点(灰色简版行) | | `current` | `MpTripItineraryNodeVO` | 当前节点(今日全部完成则为 null) | | `next` | `MpTripItineraryNodeVO` | 下一节点(今日全部完成则为 null) | **节点状态推导规则**:按 `plannedTime` 升序排序,取第一个 `plannedTime >= 当前时间` 的节点为 `current`,前面为 `completed`,下一个为 `next`。 ### `MpTripItineraryNodeVO`(时间线节点精简版) ``` nodeSeq, nodeType, nodeTypeLabel, title, subtitle, plannedTime(HH:mm), durationMinutes, distanceKm ``` ### `MpTripHotelArrangementVO` | 字段 | 类型 | 说明 | | --- | --- | --- | | `dayNumber` / `date` / `hotelId` / `hotelName` | — | 基本 | | `checkInTime` / `checkOutTime` | `String` | `HH:mm` | | `longitude` / `latitude` / `address` | — | 导航坐标 | | `photoUrls` | `List` | 酒店照片 | | `rooms` | `List` | 房型(roomType / quantity / areaSqm / amenities) | | `wifi` | `MpTripHotelWifiVO` | WiFi `{ ssid, password }`(酒店未录入时为 null) | | `changedFromYesterday` | `Boolean` | 与前一晚 `hotelId` 不同时为 `true`(前端据此展示"已换酒店·带好行李") | ### `MpTomorrowPreviewVO` | 字段 | 类型 | 说明 | | --- | --- | --- | | `dayNumber` | `Integer` | 明日 `DAY+1` | | `routeSummary` | `String` | `"景点1 → 景点2 → 景点3"`(仅取 SCENIC/ACTIVITY 节点) | | `distanceKm` | `Integer` | 明日总里程 | | `plannedDepartureTime` | `String` | `HH:mm` | | `reminderText` | `String` | 后端模板化 `"明早 {plannedDepartureTime} 出发,请提前收拾行李"` | ## 三、联系领队补字段 ### `MpGuideInfoVO` 新增 | 字段 | 类型 | 说明 | | --- | --- | --- | | `plateNumber` | `String` | 领队随行车辆车牌号(取 `order_vehicle_assignment` 第一条;未分配为 null) | 影响接口:`GET /mp/order/{orderId}/guide` + `GET /mp/trip/today-dashboard` 里的 `leader`。 ## 四、空态行为 | 场景 | 行为 | | --- | --- | | 无行程中订单 | `today` / `leader` / `todayTimeline` / `todayHotel` / `tomorrow` 均为 null;`dayNav = []`;`todayProgressPercent = null`;`sosContact` 仍有客服电话 | | 今天是最后一天 | `tomorrow = null` | | 今晚无住宿 | `todayHotel = null` | | 今日节点全部完成 | `todayTimeline.current` / `next` 为 null,`completed` 为全部节点 | | 酒店未录入 WiFi | `todayHotel.wifi = null`(Issue #1121 落地后自动有值) | ## 五、响应示例(部分) ```json { "code": 200, "data": { "today": { "...": "(保持不变)" }, "leader": { "staffId": 9001, "name": "巴图", "phone": "138****5678", "plateNumber": "蒙E·8A66", "assigned": true }, "todayProgressPercent": 40, "dayNav": [ { "dayNumber": 1, "date": "2026-07-01", "dayStatus": "DONE" }, { "dayNumber": 2, "date": "2026-07-02", "dayStatus": "CURRENT" }, { "dayNumber": 3, "date": "2026-07-03", "dayStatus": "PENDING" } ], "todayTimeline": { "completed": [ { "nodeSeq": 1, "nodeType": "SCENIC", "title": "海拉尔出发", "plannedTime": "08:00" } ], "current": { "nodeSeq": 2, "nodeType": "SCENIC", "title": "莫日格勒河", "subtitle": "九曲十八弯", "plannedTime": "10:00", "durationMinutes": 40, "distanceKm": 50 }, "next": { "nodeSeq": 3, "nodeType": "MEAL", "title": "蒙式午餐", "plannedTime": "12:00" } }, "todayHotel": { "dayNumber": 2, "date": "2026-07-02", "hotelId": 500002, "hotelName": "额尔古纳大酒店", "checkInTime": "14:00", "checkOutTime": "12:00", "rooms": [{ "roomType": "大床房", "quantity": 1 }], "wifi": null, "changedFromYesterday": true }, "tomorrow": { "dayNumber": 3, "routeSummary": "根河湿地 → 白桦林", "distanceKm": 180, "plannedDepartureTime": "08:00", "reminderText": "明早 08:00 出发,请提前收拾行李" } } } ``` ## 六、关联 - Issue: [wx/HL#1120](https://git.1814.love:8443/wx/HL/issues/1120) - PR: [wx/HL#1124](https://git.1814.love:8443/wx/HL/pulls/1124)(已合并到 dev) - 前置:`2026-04-21_order-v2_trip-detail-vo-typed.md` - 后续:`2026-04-21_resource_hotel-wifi-fields.md`