From 900a26457cfdf61981b96ef3f9862a708cf8fdbf Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Tue, 21 Apr 2026 11:40:59 +0800 Subject: [PATCH] =?UTF-8?q?docs:=202026-04-21=20=E8=AF=84=E4=BB=B7?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6=E6=8E=A5=E5=8F=A3=20+=20?= =?UTF-8?q?=E5=B0=8F=E8=92=99=E9=A9=AC=E8=AF=A6=E6=83=85=20category=20?= =?UTF-8?q?=E7=A8=B3=E5=AE=9A=E8=BF=94=E5=9B=9E=20(PR=20#1070)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 GET /mp/review/filter-tags: 返回 fixedFilters(全部/有图)+tagFilters(字典review_keyword_tag) - /mp/product/{id} 的 category 字段稳定返回(防御+部署新 jar) --- ..._mp-review-filter-tags-product-category.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 changelogs/2026-04/2026-04-21_mp-review-filter-tags-product-category.md diff --git a/changelogs/2026-04/2026-04-21_mp-review-filter-tags-product-category.md b/changelogs/2026-04/2026-04-21_mp-review-filter-tags-product-category.md new file mode 100644 index 0000000..672a7e8 --- /dev/null +++ b/changelogs/2026-04/2026-04-21_mp-review-filter-tags-product-category.md @@ -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 展示