瀏覽代碼

补充商家新增门店审核门禁设计

qmj 2 天之前
父節點
當前提交
5331403733
共有 3 個文件被更改,包括 36 次插入0 次删除
  1. 12 0
      specs/001-food-stall/plan.md
  2. 16 0
      specs/001-food-stall/spec.md
  3. 8 0
      specs/001-food-stall/tasks.md

+ 12 - 0
specs/001-food-stall/plan.md

@@ -378,3 +378,15 @@ userWalletService.insertUserWallet(wallet);
 git add -A
 git commit -m "feat: 夜市摊位管理功能 — 创建摊位、管理摊位主账号"
 ```
+
+---
+
+## 增量计划:普通商家新增门店审核门禁(2026-08-24)
+
+**目标:** 未经平台审核的商家不能通过 `/chanting/store/addmendian` 新增门店。
+
+**实现方式:** `PosStoreController.addmendian` 显式接收请求头 `token`。当 `PosStore.id == null` 时,从 token 解析当前用户 ID,调用现有 `UserService.checkUserStatus(Long)` 统一校验 `InfoUser.auditStatus`,并将新门店 `userId` 覆盖为当前用户 ID;编辑请求不执行该新增门禁。
+
+**安全边界:** 不信任请求体中的 `userId`;不修改平台后台建店、夜市摊位新增和已有门店编辑逻辑;不新增数据库字段或前端状态。
+
+**测试策略:** 新增 `PosStoreControllerTest`,先验证未实现时测试失败,再覆盖未审核拒绝、已审核创建时绑定 token 用户、编辑不校验三种行为;最后运行定向测试及 `ruoyi-admin` 模块构建。

+ 16 - 0
specs/001-food-stall/spec.md

@@ -147,3 +147,19 @@
 - PosStoreServiceImpl.java:delete 方法改为 update del_flag
 - PosStoreController.java:删除接口逻辑调整
 - 所有通过 selectPosStoreList 查询的地方自动受影响
+
+## 普通商家新增门店审核门禁(2026-08-24)
+
+### 业务规则
+
+- `POST /chanting/store/addmendian` 创建新门店时,后端必须根据请求头 `token` 识别当前登录商家。
+- 只有 `InfoUser.auditStatus = "1"`(已审核)的商家可以新增门店;未审核、用户资料不存在时沿用现有国际化业务错误。
+- 新门店的 `PosStore.userId` 必须由后端写为当前登录用户 ID,不信任请求体中的 `userId`。
+- 请求体携带门店 `id` 时视为编辑已有门店,本次变更不增加商家审核状态门禁,保持现有编辑行为。
+- 本次仅调整普通商家门店入口,不扩展到平台后台建店或夜市摊位入口。
+
+### 验收场景
+
+1. 未审核商家提交新增门店请求时,接口返回 `no.user.state.no.audit` 对应语言的业务错误,且不保存门店。
+2. 已审核商家提交新增门店请求时,门店可以保存,保存的 `userId` 等于 token 中的用户 ID,即使请求体传入其他用户 ID 也不能改变归属。
+3. 编辑已有门店时不调用新增门店审核校验,保持现有流程。

+ 8 - 0
specs/001-food-stall/tasks.md

@@ -171,3 +171,11 @@ Task: "UserWallet.java storeId + UserWalletMapper.xml" # US3 相关
 - StallController 已部分实现(已有 addStall, addStallOwner 等方法)
 - 用户钱包查询加 `store_id IS NULL` 条件是防止误查摊位钱包的关键
 - 摊位主权限通过 info_user 表判断,不通过钱包关联判断
+
+---
+
+## Phase 7: 普通商家新增门店审核门禁(2026-08-24)
+
+- [ ] T027 为 `PosStoreController.addmendian` 新增控制器测试,覆盖未审核拒绝、已审核新增时强制绑定 token 用户、编辑不触发新增审核门禁 — `ruoyi-admin/src/test/java/com/ruoyi/app/mendian/PosStoreControllerTest.java`
+- [ ] T028 修改 `PosStoreController.addmendian`:显式接收 `@RequestHeader String token`,仅新增时解析当前用户、调用 `UserService.checkUserStatus` 并覆盖 `PosStore.userId` — `ruoyi-admin/src/main/java/com/ruoyi/app/mendian/PosStoreController.java`
+- [ ] T029 使用 JDK 21 运行 `PosStoreControllerTest` 和 `ruoyi-admin` 模块构建,检查差异中无无关文件或整文件换行变化