hl-api-changelog/changelogs/2026-04/2026-04-19_mp-product-custom-allow-all-revert-903.md

3.5 KiB

fix(product-v2): /mp/product/** 4 接口对 CUSTOM 全量放行(撤销 PR #903 的拒绝)

服务: hl-product-service-v2 PR: #906撤销 #903 的 B 类拦截) Issue: #905 日期: 2026-04-19 前端是否需要改动: 可能需要回退 #903 引入的兜底逻辑


⚠️ 关键变化

前一版 changelog#903说 4 个接口会对 CUSTOM 产品返回 {"code":500,"message":"定制产品不支持本接口"}这个判断是错的,现已撤销

定制产品CUSTOM + COMPLETED/ORDERED现在走和核心/小蒙马产品完全一样的 4 个子接口。


一、背景

#903 把 4 个接口对 CUSTOM 产品定性为"不支持"是业务误判。DB 实证推翻:

维度 CUSTOM 产品 2043696016590327809 CUSTOM 产品 2045390643479412737
档位 1 档 2 档(轻奢/高端)
price_calendar 记录 62 条 92 条
group_tour_batch 班期 2 条 0 条
day_hotel 记录 6 条 同上

定制产品在 DB 里具备与 CORE/GROUP 完全一致的 4 类数据结构。底层 ProductPricingService.calculateQuote 等对 productType 零硬依赖。


二、受影响接口(全部放行)

接口 CUSTOM + COMPLETED/ORDERED CUSTOM + DRAFT/PENDING
GET /mp/product/{id} 200 404
GET /mp/product/{id}/day/{n}/hotels 200 404
GET /mp/product/{id}/price-calendar?month=xxx 200 404
GET /mp/product/{id}/schedules 200(无班期返 [] 404
GET /mp/product/{id}/tier-compare 200 404
POST /mp/product/{id}/quote 200 404

前面 3 行加粗的是本次新放行,其余行为不变(包括 #898/#900 修的主详情和日酒店)。


三、前端行动项

如果前端按 #903 的 changelog 做过兜底,需要回退

可移除的 #903 遗产 原因
CUSTOM 产品详情页隐藏价格日历 tab 现已正常返回
CUSTOM 产品隐藏班期列表 现已正常返回(可能为空数组)
CUSTOM 产品隐藏档位对比 tab 现已正常返回
CUSTOM 产品隐藏"立即报价"按钮 现已正常返回
收到 message="定制产品不支持本接口" 的静默降级分支 不再出现此消息

推荐前端逻辑(统一版)

CUSTOM 和 CORE/GROUP 产品详情页可以共用同一套请求和渲染逻辑,不再按 productType 分流。

空数据兜底

/schedules 对未维护班期的 CUSTOM 产品返回 data: [](语义 = 按预约/无固定出团日期),前端应正常处理空列表 UI。


四、测试环境已验证

CUSTOM 产品 2045390643479412737测试定制wx-01

GET /price-calendar?month=2026-04  → 200 + days 数组adultPrice 等完整) ✓
GET /tier-compare                  → 200 + tiers 数据 ✓
GET /schedules                     → 200 + [] (该产品未维护班期) ✓
POST /quote                        → 200 + 成功 ✓

CUSTOM 产品 20436960165903278097天6晚草原VIP私定

GET /schedules                     → 200 + 2 条班期 ✓

五、相关历史

PR Issue 说明
#900 #898 首次放行 /mp/product/{id} 主详情
#903 #901 误判把 4 个子接口对 CUSTOM 定性为"不支持"(已被本 PR 撤销)
#906 #905 撤销 #903,4 个接口全量放行 CUSTOM(本次)