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
在新工单中引用
屏蔽一个用户