hl-api-changelog/changelogs/2026-04/27_fix_mp-product_group-price-source-branching.md

2.6 KiB

date, type, module, title, audience, breaking
date type module title audience breaking
2026-04-27 fix mp-product 小蒙马(GROUP)产品价格相关接口按 productType 分叉走班期表 frontend false

背景

线上反馈小蒙马productType=GROUP产品详情页底部「立即预订」按钮永久显示「加载中...」无法下单(详情页其他内容正常加载)。

根因

mp 端价格相关接口仅查 product_price_calendar 表,但 GROUP 类型产品价格只存在 group_tour_batch.adult_price,价格日历表为空 → 接口返回 available=false / startPrice=null → 前端 loading 不解除或起步价无显示。

修复范围5 个 mp 接口 + 1 处装配器)

接口路径 修复点
GET /mp/product/{id}/earliest-available-date GROUP 产品改走班期表取最早可售日期,available=true 才显示
GET /mp/product/{id}/price-calendar?month=YYYY-MM GROUP 产品改用班期数据填充日历;同日多班期取最低 adultPrice + 库存合并
GET /mp/product/line/{id}/products 列表 startPrice 字段补 GROUP 班期最低价
GET /mp/product/line 产品线最低价合并日历 + 班期两路
GET /mp/product/line/{id} 产品线详情 startPrice 同上
产品详情接口 isBooking 字段 GROUP 产品按班期表"未来未截止"判定可订状态(之前永远 false

前端预期变化

前端不需要改代码,但需要知道行为变化:

  1. 「立即预订」按钮:以前小蒙马产品永久 loading,现在能正确显示"可点击/灰显"
  2. 价格日历:以前小蒙马产品月度日历无数据,现在显示班期对应的天 + 价格
  3. 起步价:以前小蒙马列表页/详情页 startPrice=null,现在显示最低班期价
  4. 可售日期判定逻辑GROUP 走班期"未来 + ENROLLING/NEARLY_FULL + 报名未截止",CORE/CUSTOM 走价格日历"全档位齐全"(行为没变)

字段说明

返回 VO 结构 0 变化,前端透传即可:

  • MpEarliestAvailableDateRespVO: date / available / daysFromToday(同 CORE 一致)
  • MpPriceCalendarRespVO.CalendarDay: date / adultPrice / childPrice / remainStock / isSelectableGROUP 同日多班期合并为一行)
  • MpProductDetailRespVO.startPrice / isBooking: 同 CORE 字段含义

验证状态

  • 982 单测全绿(含 4 个新增 GROUP 分叉测试)
  • 测试环境部署成功hl-product-service-v2 双实例 8083+8183
  • 测试环境无 GROUP 班期数据,e2e 验证待真有班期的小蒙马产品上线

关联

  • 工单: #1485
  • PR: #1489
  • 类似经验: PR #926GROUP/CORE 价格双源同类型踩过坑)