# mp 产品路线图新增 SERVICE 节点定位 + 节点 type 字段

**日期**: 2026-04-27
**PR**: #1502 (Closes #1500)
**影响端**: 小程序 mp

## 行为变化

`GET /mp/product/{productId}/route-map` 响应里：

### 1. `scenicSpots` 含义扩展

之前只包含 SCENIC（景区）+ ACTIVITY（活动）节点，**现在还包含 SERVICE（服务）节点**。字段名保持不变（向后兼容），含义升级为「地图 POI 列表」。

### 2. 每个节点新增 `type` 字段

`MpRouteScenicVO` 加 `type: String`，取值 `SCENIC` / `ACTIVITY` / `SERVICE`，前端可据此切换图标。

```json
{
  "data": {
    "title": "...",
    "days": [
      {
        "dayNumber": 1,
        "scenicSpots": [
          { "lng": 87.4, "lat": 48.1, "name": "喀纳斯湖", "coverUrl": "...", "type": "SCENIC" },
          { "lng": 87.5, "lat": 48.2, "name": "草原 BBQ", "coverUrl": "...", "type": "ACTIVITY" },
          { "lng": 87.6, "lat": 48.3, "name": "包车接送服务", "coverUrl": "...", "type": "SERVICE" }
        ]
      }
    ]
  }
}
```

## 前端建议

- **零改动可上线**：现有渲染逻辑不变，SERVICE 节点会自动出现在 `scenicSpots` 列表里
- **可选优化**：用 `type` 字段切换图标 / 颜色 / 分组，更直观区分「景区 / 活动 / 服务」三类点

## 验收实证

合并 PR + 部署测试服后，admin 后台手挂 SERVICE 节点的产品 → mp 端 route-map 立即返回（mp service 缓存 deps 已挂 `table:product`，PR #1494 修过，本次零等待）。

## 后台行为

- admin 端行程编辑 SCENIC/ACTIVITY/SERVICE 等节点配置入口不变
- 仅 mp 端展示层：扩展白名单 + 加 type 字段
