docs: 2026-04-21 评价筛选条件接口 + 小蒙马详情 category 稳定返回 (PR #1070)
- 新增 GET /mp/review/filter-tags: 返回 fixedFilters(全部/有图)+tagFilters(字典review_keyword_tag)
- /mp/product/{id} 的 category 字段稳定返回(防御+部署新 jar)
这个提交包含在:
父节点
5915b439b5
当前提交
900a26457c
@ -0,0 +1,85 @@
|
||||
# 小程序评价筛选条件接口 + 小蒙马详情补产品分类
|
||||
|
||||
**日期**:2026-04-21
|
||||
**PR**:#1070(Closes #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 展示
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户