C:/Program Files/Git/mp/banner/active 顶层新增 seasons 字段(PR #1003)
这个提交包含在:
父节点
ddd7a53dbb
当前提交
72b51663f4
@ -0,0 +1,43 @@
|
||||
# /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`
|
||||
|
||||
## 响应示例
|
||||
```json
|
||||
{
|
||||
"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:v3`(TTL 5 分钟)。之前版本 `v2` 被 bump 抛弃,确保旧 VO 结构不回吐。管理端新增/修改/删除 banner 时异步清缓存。
|
||||
|
||||
## 验证(测试环境)
|
||||
```
|
||||
banner 1: linkType=PRODUCT seasons=["summer","winter"]
|
||||
banner 2: linkType=PRODUCT_LINE seasons=["summer"]
|
||||
```
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户