Input: Design documents from specs/001-food-stall/
Prerequisites: plan.md, spec.md
Tests: 手动测试(项目无自动化测试框架)
Organization: Tasks are grouped by user story to enable independent implementation and testing of each story.
[ID] [P?] [Story] DescriptionPurpose: 所有用户故事依赖的数据库 schema 变更
ALTER TABLE pos_store ADD COLUMN is_stall TINYINT DEFAULT 0 COMMENT '是否摊位 0=店铺 1=摊位';ALTER TABLE info_user ADD COLUMN store_id BIGINT DEFAULT NULL COMMENT '关联摊位ID(摊位主使用)';ALTER TABLE user_wallet ADD COLUMN store_id BIGINT DEFAULT NULL COMMENT '关联摊位id,非摊位钱包为NULL';Purpose: 所有用户故事依赖的 Domain 和 Mapper 变更,MUST 完成后再开始用户故事实现
ruoyi-system/src/main/java/com/ruoyi/system/domain/PosStore.javais_stall 映射,select/insert/update 添加 isStall 支持 — ruoyi-system/src/main/resources/mapper/chanting/PosStoreMapper.xmlruoyi-system/src/main/java/com/ruoyi/system/domain/InfoUser.javastore_id 映射,select/insert/update 添加 storeId 支持,新增 selectStallOwnersByStoreId 查询 — ruoyi-system/src/main/resources/mapper/infouser/InfoUserMapper.xmlruoyi-system/src/main/java/com/ruoyi/system/domain/UserWallet.javastore_id 映射,select/insert/update 添加 storeId 支持 — ruoyi-system/src/main/resources/mapper/system/UserWalletMapper.xmlCheckpoint: 数据模型层就绪,用户故事实现可以开始
Goal: 夜市用户可以创建、查看、管理自己的摊位(PosStore where isStall=1)
Independent Test: 夜市用户登录商家端 → 摊位管理 → 能看到摊位列表、能创建新摊位
ruoyi-admin/src/main/java/com/ruoyi/app/stall/StallController.javafoodie-store/src/api/stall.jsfoodie-store/src/views/StallManage.vuefoodie-store/src/router/index.jsfoodie-store/src/components/Aside.vueCheckpoint: 夜市用户可以登录 → 看到摊位管理菜单 → 创建/查看摊位
Goal: 夜市用户可以为每个摊位创建、查看、启用/禁用/删除摊位主账号
Independent Test: 在摊位列表中点击「管理摊位主」→ 能添加/禁用/删除摊位主
ruoyi-admin/src/main/java/com/ruoyi/app/stall/StallController.javaselectStallOwnersByStoreId 方法 — ruoyi-system/src/main/java/com/ruoyi/system/mapper/InfoUserMapper.javaruoyi-system/src/main/java/com/ruoyi/system/service/IInfoUserService.java, ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InfoUserServiceImpl.javafoodie-store/src/api/stall.jsfoodie-store/src/views/StallManage.vueCheckpoint: 夜市用户可以为摊位添加多个摊位主,启用/禁用/删除摊位主
Goal: 每个摊位拥有独立钱包,摊位收入进入共同池子,创建摊位时自动创建钱包
Independent Test: 创建摊位后查询 user_wallet 表确认 store_id 关联的钱包已自动创建;查询用户钱包不包含摊位钱包
ruoyi-admin/src/main/java/com/ruoyi/app/stall/StallController.javastore_id IS NULL 条件,新增通过 store_id 查摊位钱包的 selectByStoreId 方法 — ruoyi-system/src/main/resources/mapper/system/UserWalletMapper.xmlselectByStoreId 方法,IUserWalletService.java / UserWalletServiceImpl.java 添加对应接口和实现 — ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserWalletMapper.java, ruoyi-system/src/main/java/com/ruoyi/system/service/IUserWalletService.java, ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserWalletServiceImpl.javaCheckpoint: 创建摊位 → 钱包自动创建;用户钱包查询不包含摊位钱包;摊位钱包可通过 store_id 独立查询
Purpose: 最终验证和提交
git commit -m "feat: 夜市摊位管理功能 — 创建摊位、管理摊位主、摊位钱包"# 并行执行三组 Domain + Mapper 变更:
Task: "PosStore.java isStall + PosStoreMapper.xml" # US1 相关
Task: "InfoUser.java storeId + InfoUserMapper.xml" # US2 相关
Task: "UserWallet.java storeId + UserWalletMapper.xml" # US3 相关
store_id IS NULL 条件是防止误查摊位钱包的关键