From 262dc37dcb8acaca14388a2219432f7e02018112 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Mon, 27 Apr 2026 17:50:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(mp-product):=20=E5=B0=8F=E8=92=99=E9=A9=AC(?= =?UTF-8?q?GROUP)=E4=BA=A7=E5=93=81=E4=BB=B7=E6=A0=BC=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8C=89=20productType=20=E5=88=86=E5=8F=89?= =?UTF-8?q?=E8=B5=B0=E7=8F=AD=E6=9C=9F=E8=A1=A8=20(#1489)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mp-product_group-price-source-branching.md | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 changelogs/2026-04/27_fix_mp-product_group-price-source-branching.md diff --git a/changelogs/2026-04/27_fix_mp-product_group-price-source-branching.md b/changelogs/2026-04/27_fix_mp-product_group-price-source-branching.md new file mode 100644 index 0000000..b3f05c5 --- /dev/null +++ b/changelogs/2026-04/27_fix_mp-product_group-price-source-branching.md @@ -0,0 +1,56 @@ +--- +date: 2026-04-27 +type: fix +module: mp-product +title: 小蒙马(GROUP)产品价格相关接口按 productType 分叉走班期表 +audience: frontend +breaking: 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 / isSelectable`(GROUP 同日多班期合并为一行) +- `MpProductDetailRespVO.startPrice / isBooking`: 同 CORE 字段含义 + +## 验证状态 + +- ✅ 982 单测全绿(含 4 个新增 GROUP 分叉测试) +- ✅ 测试环境部署成功(hl-product-service-v2 双实例 8083+8183) +- ⏳ 测试环境无 GROUP 班期数据,e2e 验证待真有班期的小蒙马产品上线 + +## 关联 + +- 工单: #1485 +- PR: #1489 +- 类似经验: PR #926(GROUP/CORE 价格双源同类型踩过坑)