hl-api-changelog/changelogs/2026-04/2026-04-20_mp-product-category-field.md

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
  • 无值时按「未分类」显示或不展示标签