tasks.md 4.3 KB


description: "Task list for 商家前端账单功能 feature implementation"

Tasks: 商家前端账单功能

Input: Design documents from specs/003-merchant-billing/ Prerequisites: plan.md, spec.md

Tests: 手动测试(项目无自动化测试框架)

Organization: Tasks are grouped by backend API changes and frontend implementation.

Format: [ID] [P?] [Story] Description

  • [P]: Can run in parallel (different files, no dependencies)
  • [Story]: Which phase this task belongs to (BE=后端, FE=前端)
  • Include exact file paths in descriptions

Phase 1: 后端 — 新增商家端账单接口

Purpose: 新增商家端专用的账单列表和汇总接口

  • [x] T001 [BE] UserBillingController.java 新增 storeBillingList 方法 — ruoyi-admin/src/main/java/com/ruoyi/app/pay/UserBillingController.java

    • GET /billing/storeBillingList
    • 支持 mdId、type、startDate、endDate 筛选
    • userType=1 按 user_id 查,userType=4 按 store_id 查
    • 返回分页账单列表 + 门店信息
  • [x] T002 [BE] UserBillingController.java 新增 storeBillingSummary 方法 — ruoyi-admin/src/main/java/com/ruoyi/app/pay/UserBillingController.java

    • GET /billing/storeBillingSummary
    • 参数同 storeBillingList
    • 返回 { totalAmount, totalDivvy, netIncome }

Checkpoint: 商家端账单列表和汇总接口可用


Phase 2: 后端 — 现有账单接口增加 mdId 过滤

Purpose: 修改日/周/月账单接口,支持按门店筛选

  • [x] T003 [P] [BE] UserBillingMapper.getdaylist / getdaysum / getShDaysum 增加 mdId 过滤条件 — ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserBillingMapper.java

    • SQL: (#{mdId} IS NULL OR md_id = #{mdId})
    • join 查询使用 b.md_id
  • [x] T004 [P] [BE] UserBillingMapper.getmeeklist / getmeeksum / getShMeeksum 增加 mdId 过滤条件 — ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserBillingMapper.java

    • SQL: (#{mdId} IS NULL OR md_id = #{mdId})
    • join 查询使用 b.md_id
  • [x] T005 [P] [BE] UserBillingMapper.getmatlist / getmatsum / getshMonthsum 增加 mdId 过滤条件 — ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserBillingMapper.java

    • SQL: (#{mdId} IS NULL OR md_id = #{mdId})
    • join 查询使用 b.md_id

Checkpoint: 所有账单接口支持 mdId 可选过滤


Phase 3: 前端 — 账单管理页面

Purpose: 商家前端新增财务管理模块和账单管理页面

  • [x] T006 [P] [FE] 创建 billing.js API 层 — foodie-store/src/api/billing.js

    • getStoreBillingList(params)
    • getStoreBillingSummary(params)
  • [x] T007 [FE] 创建 BillingManage.vue 账单管理页面 — foodie-store/src/views/BillingManage.vue

    • 筛选条件:门店选择、账单类型、时间范围
    • 汇总区域:总金额、总抽成、净收入
    • 账单列表表格 + 分页
    • 权限区分:商家可选门店,摊位主自动限定
  • [x] T008 [FE] router/index.js 添加账单管理路由 — foodie-store/src/router/index.js

  • [x] T009 [FE] Aside.vue 添加「财务管理 > 账单管理」菜单项 — foodie-store/src/components/Aside.vue

Checkpoint: 商家登录 → 财务管理 → 账单管理 → 筛选查看账单


Phase 4: 收尾

Purpose: 文档更新和代码提交

  • T010 更新 spec.md 记录实现状态和涉及文件
  • T011 补充 plan.md 和 tasks.md 文档
  • T012 提交代码: git commit -m "feat(billing): 商家端账单功能 — 列表查询、汇总、mdId 过滤"

Dependencies & Execution Order

Phase Dependencies

  • Phase 1 (新增接口): 无依赖,立即开始
  • Phase 2 (mdId 过滤): 无依赖,可与 Phase 1 并行
  • Phase 3 (前端页面): 依赖 Phase 1 完成(前端需要调用新增接口)
  • Phase 4 (收尾): 依赖所有 Phase 完成

Parallel Opportunities

  • Phase 1 和 Phase 2 可并行(不同接口,独立修改)
  • T006 可与 T007 并行(API 层和页面可同时开发)
  • T003, T004, T005 可并行(修改不同 SQL 方法组)

Notes

  • 无数据库 Schema 变更(UserBilling 已有 md_id 字段)
  • mdId 过滤采用 (#{mdId} IS NULL OR md_id = #{mdId}) 模式,不传时查全部
  • 前端日/周/月账单明细页(getzddaylist / getzdmeeklist / getzdmatlist)尚未在前端实现,仅后端接口已就绪