菜谱接口分类映射现场修正记录
变更日期
2026-09-03
现场现象
菜品识别页点击加号打开菜谱选择弹层后,选择“素菜”却显示“香辣鸭肠、韭菜炒肉”等荤菜。现场同时确认“荤菜/素菜”和“水果/蛋奶坚果”的标签与列表互换。
根因
公共分类模型最初沿用了旧页面中未经现场验证的编号,把菜谱分组 2/3、4/5 的业务含义写反。2026-09-04 对菜品学习页继续现场复核后,确认两个接口当前均使用以下值,但仍通过独立字段管理:
| 分类 | 菜品列表 /api/consume/dishes |
菜谱 /p/api/getMeal 分组 key |
|---|---|---|
| 主食 | 1 |
1 |
| 荤菜 | 3 |
3 |
| 素菜 | 2 |
2 |
| 水果 | 5 |
5 |
| 蛋奶坚果 | 4 |
4 |
| 汤饮 | 6 |
6 |
菜谱页面按旧页面的错误编号认知读取 /p/api/getMeal 分组,造成两组标签与列表反向。
修正内容
DishCategory将接口编号拆分为dishListApiValue和menuGroupCode。- 菜品查询请求只使用
getDishListApiValue()。 - 菜谱响应按
getMenuGroupCode()读取分组,未知分组按fromMenuGroupCode()判断。 - 菜谱管理页与菜品识别页仍只使用公共分类对象,没有增加页面级数字映射、列表交换或硬编码。
- 保持展示顺序为:全部、主食、荤菜、素菜、水果、蛋奶坚果、汤饮。
验证
- 先补充双接口映射测试,旧实现因缺少接口边界而失败。
- 修正后执行
./gradlew :app:testDebugUnitTest :app:assembleDebug,结果为BUILD SUCCESSFUL。 - 61 个单元测试全部通过,0 个失败、0 个错误、0 个跳过。
git diff --check通过。- 静态检查未发现页面残留的分类数组、数字转换方法或
dishItemList1~6手工对应。
待现场回归
在菜品识别页加号弹层和菜谱管理页分别切换六个分类,重点确认:
- “荤菜”显示菜谱分组
3,“素菜”显示分组2; - “水果”显示菜谱分组
5,“蛋奶坚果”显示分组4; - “全部”的展示顺序及总数不变;
- 菜品学习列表按
2=素菜、3=荤菜、4=蛋奶坚果、5=水果查询。
Git 状态
本次未执行暂存、提交、推送、分支切换或其他 Git 写操作,未清理或覆盖工作区中的其他修改。