2026-04-20 mp 产品详情/列表补 category 字段 (#1010)
这个提交包含在:
父节点
3c11072d12
当前提交
7fe50232a1
@ -0,0 +1,74 @@
|
|||||||
|
# /mp 产品详情 & 列表补 `category` 字段
|
||||||
|
|
||||||
|
**日期**: 2026-04-20
|
||||||
|
**PR**: #1010
|
||||||
|
**服务**: hl-product-service-v2
|
||||||
|
|
||||||
|
## 背景
|
||||||
|
管理端可以给产品配「产品分类」(`产品分类 *`:亲子游 / 蜜月旅行 / 摄影之旅 / 深度体验 / 自驾越野),保存后 DB 里 `product.category` 有值;但小程序详情 + 卡片列表拿不到这个字段,无法按分类展示或筛选。
|
||||||
|
|
||||||
|
## 改动
|
||||||
|
在下列两个响应 VO 顶层加 `category: string`(字典 `product_category`):
|
||||||
|
|
||||||
|
| 接口 | VO |
|
||||||
|
|------|----|
|
||||||
|
| `GET /mp/product/{id}` | `MpProductDetailRespVO.category` |
|
||||||
|
| `GET /mp/product-line/{lineId}/products` | `MpProductListRespVO.category`(每项) |
|
||||||
|
|
||||||
|
## 字典 product_category
|
||||||
|
| 值 | 中文 |
|
||||||
|
|-----|------|
|
||||||
|
| `family` | 亲子游 |
|
||||||
|
| `honeymoon` | 蜜月旅行 |
|
||||||
|
| `photography` | 摄影之旅 |
|
||||||
|
| `experience` | 深度体验 |
|
||||||
|
| `driving` | 自驾越野 |
|
||||||
|
|
||||||
|
未配置的老产品 `category=null`,前端按空兜底即可。
|
||||||
|
|
||||||
|
## 响应示例
|
||||||
|
|
||||||
|
### `GET /mp/product/2045345825172639746`
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"data": {
|
||||||
|
"productId": "2045345825172639746",
|
||||||
|
"productType": "CORE",
|
||||||
|
"category": "photography", // 新增
|
||||||
|
"name": "游牧的森林-短途版",
|
||||||
|
"subtitle": "呼伦贝尔南线4天3晚秋色短途版",
|
||||||
|
"...": "..."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### `GET /mp/product-line/{lineId}/products`
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"code": 200,
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"productId": "2042549263955648513",
|
||||||
|
"productType": "CORE",
|
||||||
|
"category": "photography", // 新增
|
||||||
|
"name": "测试核心产品",
|
||||||
|
"...": "..."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 已有能力(未变化)
|
||||||
|
- `GET /mp/product-line/{lineId}/products?category=photography` —— `category` 筛选参数之前已经支持,本次只补响应字段。
|
||||||
|
|
||||||
|
## 缓存
|
||||||
|
- `mp:product:detail:{id}`、`mp:products-by-line:{lineId}[:cat:{category}]`
|
||||||
|
- 部署时异步清过一次;旧结构 JSON 不含 `category`,反序列化不会报错(只是取到 null),TTL 5–10 分钟内自愈。
|
||||||
|
|
||||||
|
## 存量数据
|
||||||
|
**无需迁移**。`product.category` 已长期存在于 DB。之前只是响应未透出。
|
||||||
|
|
||||||
|
## 前端建议
|
||||||
|
- 直接从顶层读 `banner_card_item.category` / `product_detail.category`
|
||||||
|
- 无值时按「未分类」显示或不展示标签
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户