# 【前端】小蒙马(GROUP)产品列表起价 startPrice 现已正常返回

> **类型**: 后端 BUG 修复(后端已改并部署测试服验证通过)
> **服务**: hl-product-service-v2
> **日期**: 2026-05-28
> **影响范围**: 小蒙马列表 `GET /mp/product/group/list`;以及首页/产品线/推荐列表中的 GROUP 产品
> **归属**: 后端已修(PR #3195 → dev, Closes #3193;#3199 同步 dev-v3),已部署测试服验证通过
> **状态**: 已部署测试服并验证通过

---

## 一、问题

小蒙马(GROUP)产品配置了团期价格,但小程序**列表卡片**的起价 `startPrice` 恒为 `null`(不显示"¥xxx起/人")。产品**详情页**起价正常。

## 二、根因

GROUP 产品的价格存放在**班期表** `group_tour_batch.adult_price`(团期一口价),价格日历 `product_price_calendar` 对 GROUP 是空的。但小程序两条**列表**接口算起价时只查了价格日历,没有对 GROUP 分流到班期表,所以起价取不到值。详情页早已按产品类型正确分流,故详情正常。

## 三、改动(后端已完成)

列表起价对 GROUP 产品改取「未来班期最低成人价」(departure_date ≥ 今天 且 adult_price > 0 的最小值):

- `GET /mp/product/group/list`(小蒙马专题列表)
- 首页 / 产品线 / 推荐列表中的 GROUP 产品

CORE/CUSTOM 产品起价仍来自价格日历,**无变化**。

## 四、前端影响 / 建议

- 小蒙马列表卡片现在会正常返回 `startPrice` 与 `startPriceLabel`(如 `"¥1635起/人"`),可直接渲染起价。
- 「无未来可售班期」的 GROUP 产品 `startPrice` 仍为 `null` —— 此场景前端继续显灰/不显起价是合理的。
- 字段名、类型、结构均未变,**前端无需改动**,数据自然填充即可。

## 五、测试服实测(`GET /mp/product/group/list`,清缓存后)

| productId | 修复前 startPrice | 修复后 startPrice | 说明 |
|-----------|------------------|------------------|------|
| 2056947193331236866 | null | 1635 | 纯班期价产品,已修复 |
| 2056946784965410818 | null | 1635 | 纯班期价产品,已修复 |
| 2056944943066132481 | null | 1425 | 纯班期价产品(3 个未来班期),已修复 |
| 2044306857534636034 | 2999(日历) | 2925(班期) | GROUP 改用班期价(正确口径) |
| 2056947670512971778 | null | null | 无未来可售班期,正确保持 null |
| 2047224617403117570 | null | null | 无未来可售班期,正确保持 null |

起价均与班期最低成人价精确吻合。
