docs: 2026-04-21 评价筛选条件接口 + 小蒙马详情 category 稳定返回 (PR #1070)

- 新增 GET /mp/review/filter-tags: 返回 fixedFilters(全部/有图)+tagFilters(字典review_keyword_tag)
- /mp/product/{id} 的 category 字段稳定返回(防御+部署新 jar)
这个提交包含在:
API Changelog Bot 2026-04-21 11:40:59 +08:00
父节点 5915b439b5
当前提交 900a26457c

查看文件

@ -0,0 +1,85 @@
# 小程序评价筛选条件接口 + 小蒙马详情补产品分类
**日期**2026-04-21
**PR**#1070Closes #1069
**影响**:小程序评价列表页筛选栏、小程序小蒙马产品详情页
---
## 为什么变
1. **评价筛选条件前端硬编码**:小程序评价列表页顶部筛选标签栏(全部/有图/关键词标签)之前前端硬编码,无法跟字典联动;字典 `review_keyword_tag` 9 项标签维护在后台,前端看不到新增/下线。
2. **小蒙马详情 `category` 字段漏返回**:管理端给 GROUP 产品选分类(亲子游/蜜月/摄影 等 字典 `product_category`),但小程序详情接口前期反馈 `category` 未返回。排查后端代码链路齐全Entity/VO/Assembler 都有字段),根因最可能是测试环境 jar 旧。此次合并 + 部署已让 `category` 稳定返回,同时在 Assembler 补一行显式 `setCategory` 兜底 Hutool BeanUtil 潜在边界。
---
## 接口契约变化
### 1. 新增 `GET /mp/review/filter-tags`(评价筛选条件)
**鉴权**:需要 Bearer token登录 mp 用户)。
**返回结构**
```json
{
"code": 200,
"message": "成功",
"data": {
"fixedFilters": [
{"key": "all", "label": "全部"},
{"key": "hasImage", "label": "有图"}
],
"tagFilters": [
{"key": "QUIET_PRIVATE", "label": "安静私密"},
{"key": "KIDS_LOVE_IT", "label": "孩子玩疯了"},
{"key": "BUTLER_CARING", "label": "管家贴心"},
{"key": "HIGHLY_RECOMMEND", "label": "强烈推荐"},
{"key": "SCENIC_BEAUTY", "label": "风景绝美"},
{"key": "COMFY_STAY", "label": "住宿舒适"},
{"key": "GOOD_FOOD", "label": "餐饮丰富"},
{"key": "NICE_DRIVER", "label": "司机友善"},
{"key": "GOOD_ITINERARY", "label": "行程合理"}
]
},
"success": true
}
```
**字段说明**
- `fixedFilters`:固定筛选器(前端跟据 `key` 做列表参数传递)
- `all` → 不加筛选
- `hasImage` → 调 `GET /mp/review/target?hasImage=true`
- `tagFilters[].key`:字典 `review_keyword_tag``dictValue`
- `tagFilters[].label`:字典 `review_keyword_tag``dictLabel`(直接用于展示)
**缓存**Redis 侧 `mp:review:filter-tags` 键 30 分钟 TTL,字典变更后台修改会触发 MpCache 自动失效,前端无需做本地缓存管理。
**建议用法**
- 小程序进入评价列表页时调一次,把返回的 `fixedFilters` + `tagFilters` 合并渲染成筛选 tab 栏
- 用户点 tag 后,用 `tagFilters[].key` 作为筛选参数传递给列表接口(**注意**:当前 `/mp/review/target` 还不支持按 tag 筛选评价,仅支持 `ratingLevel`/`hasImage`/`hasVideo`,tag 筛选需后端后续补。本期仅完成筛选条件接口部分)
### 2. `GET /mp/product/{id}``category` 字段(强化稳定性)
**无接口签名变化**。`MpProductDetailRespVO.category` 字段早已存在,但此前偶发未返回。本次部署后:
- GROUP 产品 `category` 稳定返回,取值为字典 `product_category``dictValue`
- 可能值:`family` / `honeymoon` / `photography` / `experience` / `driving`
- 前端若需展示中文(亲子游 / 蜜月旅行 / 摄影之旅 / 深度体验 / 自驾越野),拿 `category` 作为 dictValue 查字典 `product_category` 即可
---
## 验证结果(测试环境 2026-04-21 11:37
| 接口 | 结果 |
|---|---|
| `GET /mp/review/filter-tags` | 200,返回 2 个固定筛选器 + 9 个字典标签筛选器 |
| Redis `mp:review:filter-tags` TTL | 1768s接近 1800s 缓存正常) |
| `GET /mp/product/2044306857534636034`PUBLISHED GROUP | 200,`productType="GROUP"``category="family"` |
---
## 前端改动建议
- [ ] 评价列表页初始化时调 `GET /mp/review/filter-tags`,渲染 filter tabs合并 fixedFilters + tagFilters
- [ ] 小蒙马详情页按字典 `product_category``category` code 转中文 label 展示