父节点
1b32cc83ff
当前提交
092ef647ca
@ -0,0 +1,94 @@
|
||||
# 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 产品 `2043696016590327809`(7天6晚草原VIP私定):
|
||||
```
|
||||
GET /schedules → 200 + 2 条班期 ✓
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、相关历史
|
||||
|
||||
| PR | Issue | 说明 |
|
||||
|----|-------|------|
|
||||
| #900 | #898 | 首次放行 `/mp/product/{id}` 主详情 |
|
||||
| #903 | #901 | **误判**把 4 个子接口对 CUSTOM 定性为"不支持"(已被本 PR 撤销)|
|
||||
| **#906** | **#905** | **撤销 #903,4 个接口全量放行 CUSTOM**(本次)|
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户