hl-api-changelog/changelogs/2026-04/2026-04-15_product-v2_design-revamp-8items.md

5.2 KiB

产品设计页面改版8项改进

  • 日期: 2026-04-15
  • 服务: hl-product-service-v2, hl-gateway
  • PR: #602
  • Issue: #601
  • 类型: feat (新功能)

概述

产品设计页面Step2行程/Step3路线/Step5补充和小程序详情页的一组改进,涉及8项需求。


1. 行程节点名可自定义

保存行程时,nodeName 由前端自定义(用户可改),resourceName 由后端自动填充资源原名快照,互不影响。

行为变更

  • PUT /admin/product/item/{id}/itinerary 保存时自动通过Feign查资源名填充 resourceName
  • 前端传什么 nodeName 就存什么,改名不影响资源库

响应字段

字段 说明
nodeName 展示名称(可自定义)
resourceName 资源原名快照(自动填充,不可改)

2. 每日行程距离计算接口

新增接口

GET /admin/product/item/{productId}/daily-mileage

按天计算每日驾车距离含酒店坐标,调用高德驾车路线规划API。

响应示例

{
  "code": 200,
  "data": [
    {"dayNumber": 1, "mileage": 280.5},
    {"dayNumber": 2, "mileage": 195.3},
    {"dayNumber": 3, "mileage": 320.1}
  ]
}

3. 行程线路名称

GET /mp/product/{id} 新增字段

字段 类型 说明
routeName String 路线名称(如"草原环线体验"

PUT /admin/product/item/{id}/routeStep3保存新增字段

字段 类型 说明
routeName String 路线名称

4. 集合地/出发地/解散地

⚠️ 保存位置Step2 行程编排不是Step3

⚠️ 出发地已删除(与集合地相同),只保留集合地+解散地。

字段 类型 说明
gatherPlace String 集合地(高德行政区搜索到镇级)
dismissalPlace String 解散地(高德行政区搜索到镇级)

这2个字段在以下接口中可读写

  • PUT /admin/product/item/{id}/itineraryStep2保存,主入口 — 可单独传这2个字段不传days
  • PUT /admin/product/item/{id}/routeStep3保存,也可设置
  • GET /admin/product/item/{id}管理端详情,在routeInfo中
  • GET /mp/product/{id}(小程序详情)

5. 产品卖点改为选择节点

quickUnderstand 字段结构变更后端仍为JSON存取,无接口变化

旧结构{text: "富文本", images: [...]}

新结构

[
  {
    "nodeId": 12345,
    "nodeName": "白桦林景区",
    "nodeType": "SCENIC",
    "image": "https://...",
    "description": "走进白桦林..."
  }
]

前端在Step5选择行程中的景区/游玩项目节点,按新结构传即可。后端原样存取。


6. 行程保障模板全新CRUD

新增接口

方法 URL 说明
POST /admin/travel-guarantee-template 创建/更新模板
DELETE /admin/travel-guarantee-template/{id} 删除模板
GET /admin/travel-guarantee-template/list 全部模板列表(含禁用)
GET /admin/travel-guarantee-template/enabled 启用模板下拉Step5选择用
GET /admin/travel-guarantee-template/{id} 模板详情

创建/更新请求体

{
  "templateId": null,
  "name": "标准行程保障",
  "items": [
    {"icon": "shield", "title": "无忧退改", "description": "出发前7天全额退款"},
    {"icon": "users", "title": "5人专属团队", "description": "定制+管家+摄影+领队+客服"},
    {"icon": "clock", "title": "24小时客服", "description": "200位真实客服即时响应"},
    {"icon": "badge", "title": "旅行社责任险100万", "description": "正规资质全程投保"},
    {"icon": "heart", "title": "全程纯玩无购物", "description": "无强制消费无隐形购物点"}
  ],
  "isDefault": false
}

Step5补充信息保存 新增字段:

字段 类型 说明
guaranteeTemplateId Long 行程保障模板ID

小程序详情 新增字段:

字段 类型 说明
guaranteeItems Array 行程保障项(自动解析模板内容)

7. 线路概览自动生成

保存行程Step2后,自动根据各天的景区/活动节点名称生成线路概览文本,写入 routeDescription

生成格式示例

Day1 海拉尔/额尔古纳 | Day2 呼籁营地/牧云山顶 | Day3 白桦林/恩和 | Day4-5 满洲里/返程

连续天节点相同时自动合并如Day4-5


8. 评价取真实数据

GET /mp/product/{id} 新增字段

字段 类型 说明
reviewSummary Object 评价摘要(从评价服务实时获取)

reviewSummary 结构(由评价服务 /internal/review/product-highlights 返回):

{
  "avgScore": 4.9,
  "totalCount": 296,
  "topReview": {
    "content": "超赞的行程!呼籁营地安静私密...",
    "nickname": "小明同学",
    "reviewTime": "2026-03"
  },
  "tags": ["安静私密", "孩子玩疯了", "管家贴心", "强烈推荐"]
}

评价服务不可用时该字段为null,不影响其他数据。