Bladeren bron

补充餐桌码列表门店名称设计

qmj 2 dagen geleden
bovenliggende
commit
8b835eafb9
3 gewijzigde bestanden met toevoegingen van 19 en 0 verwijderingen
  1. 6 0
      specs/002-table-qrcode/plan.md
  2. 7 0
      specs/002-table-qrcode/spec.md
  3. 6 0
      specs/002-table-qrcode/tasks.md

+ 6 - 0
specs/002-table-qrcode/plan.md

@@ -91,3 +91,9 @@ foodie-store/src/
 8. 创建 API 模块 `tableQrcode.js`
 9. 创建管理页面 `TableQRCode.vue`
 10. 注册路由
+
+### 增量修正:列表返回 storeName(2026-08-24)
+
+`TableQrcode` 已有非数据库字段 `storeName`,但 Controller 当前通过 MyBatis-Plus 通用 `list` 查询,未执行 `TableQrcodeMapper.xml` 中的门店关联查询,导致列表字段为空。为保持普通商家多门店 `IN` 权限条件及现有筛选逻辑不变,继续使用当前餐桌码查询;查询完成后汇总非空 `storeId`,通过 `IPosStoreService.listByIds` 一次取得门店,再按 ID 回填 `storeName`。公用码无 `storeId` 时不回填。
+
+验证采用 Controller 单元测试:构造多个餐桌码及门店,断言响应中的门店码含正确 `storeName`、公用码为 `null`,并确认门店采用单次批量查询。

+ 7 - 0
specs/002-table-qrcode/spec.md

@@ -145,3 +145,10 @@
 - C端(顾客端)点餐页面(仅后端提供扫码跳转入口)
 - 桌型管理(4人桌、8人桌等)
 - 桌位位置管理(大厅、包间等)
+
+## 餐桌码列表补全门店名称(2026-08-24)
+
+- `GET /table-qrcode/list` 返回的每条有关联门店的餐桌码必须包含 `storeName`,其值来自 `pos_store.pos_name`。
+- 保持现有摊位主、夜市管理员和普通商家的数据权限及 `storeId`、`type`、`status`、`useStatus` 筛选行为不变。
+- 列表查询完成后收集非空 `storeId`,一次批量查询门店并按 ID 回填名称,禁止逐条查询门店。
+- 公用码没有关联 `storeId` 时,`storeName` 返回 `null`。

+ 6 - 0
specs/002-table-qrcode/tasks.md

@@ -114,6 +114,12 @@
 - [ ] T023 Run quickstart.md validation — test complete flow: create → list → QR code → edit → disable → delete
 - [ ] T024 Verify permission isolation — stall owner cannot access other stalls' codes, night market admin can view all
 
+## Phase 8: 餐桌码列表补全门店名称(2026-08-24)
+
+- [ ] T025 为 `TableQrcodeController.list` 增加回归测试,验证关联门店的餐桌码返回正确 `storeName`,无 `storeId` 的公用码返回 `null` — `ruoyi-admin/src/test/java/com/ruoyi/app/tableqrcode/TableQrcodeControllerTest.java`
+- [ ] T026 保留现有权限查询,在列表返回前批量查询涉及的门店并回填 `storeName`,不得逐条查库 — `ruoyi-admin/src/main/java/com/ruoyi/app/tableqrcode/TableQrcodeController.java`
+- [ ] T027 使用 JDK 21 运行 `TableQrcodeControllerTest`、受影响模块构建及差异检查
+
 ---
 
 ## Dependencies & Execution Order