2.2 KiB
2.2 KiB
/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
{
"code": 200,
"data": {
"productId": "2045345825172639746",
"productType": "CORE",
"category": "photography", // 新增
"name": "游牧的森林-短途版",
"subtitle": "呼伦贝尔南线4天3晚秋色短途版",
"...": "..."
}
}
GET /mp/product-line/{lineId}/products
{
"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 - 无值时按「未分类」显示或不展示标签