hl-api-changelog/changelogs/2026-04/2026-04-20_mp-banner-active-top-level-seasons.md

1.4 KiB

/mp/banner/active 响应顶层新增 seasons 字段

日期: 2026-04-20 PR: #1003 服务: hl-user-service

改动

BannerVO 顶层新增 seasons: List<String>

  • banner 绑定产品linkType=PRODUCT→ 继承 product.seasons
  • banner 绑定产品线linkType=PRODUCT_LINE→ 继承 product_line.seasons
  • 其他绑定类型URL/PAGE/NONE/...)或目标被删 → seasons=null

响应示例

{
  "id": "...",
  "title": "2026 草原夏令营",
  "linkType": "PRODUCT",
  "linkId": "2044306857534636034",
  "seasons": ["summer", "winter"],          // 新增:顶层
  "linkTarget": {
    "type": "PRODUCT",
    "name": "...",
    "seasons": ["summer", "winter"]         // 原已存在:嵌套
  }
}

前端建议

  • 推荐:直接读 banner.seasons(顶层),便于按季节筛选
  • 如需更多目标信息name/coverImageUrl继续从 banner.linkTarget

存量数据

纯运行时继承,不存 DB。banner 表无 seasons 列。每次请求根据 linkType/linkId 即时从产品/产品线 seasons 回填。

缓存

Redis banner:active:list:v3TTL 5 分钟)。之前版本 v2 被 bump 抛弃,确保旧 VO 结构不回吐。管理端新增/修改/删除 banner 时异步清缓存。

验证(测试环境)

banner 1: linkType=PRODUCT     seasons=["summer","winter"]
banner 2: linkType=PRODUCT_LINE seasons=["summer"]