minishouyin/.trae/documents/项目功能分析与改进实施计划.md
LIUFL a094f55890 docs: 整理文档并删除测试脚本
将文档统一整理到doc目录下,删除不再需要的测试脚本和临时文件
2025-11-12 16:12:40 +08:00

142 lines
7.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 第一阶段规格说明Specification
### 目标范围
- 会员模块:会员档案、等级与折扣、积分累计与调整、优惠券、会员消费统计、收银台选会员
- 库存管理供应商管理、商品批次与保质期、库存预警min_stock、入出库记录与盘点、报表
- 交班:交班记录、现金实点与系统金额核对、交班摘要打印/导出、交班数据留痕
- 日结:每日营业汇总、支付方式统计、退款与挂单影响、库存快照、日报表打印/导出
### 用户故事与验收标准
- 会员
- 作为收银员,我可以通过手机号/姓名搜索并选择会员,订单将关联会员信息;验收:收银台勾选成功,订单详情显示会员信息,会员统计更新
- 作为店长,我可以调整会员积分并查看积分历史;验收:积分变动入库,历史可分页查询,边界:负值调整、过期处理
- 作为运营,我可以配置会员等级的折扣率;验收:订单最终金额按等级折扣计算,折扣记录可溯源
- 库存
- 作为仓管,我可录入供应商与商品批次,设置生产/过期日期;验收:批次入库同时更新商品库存,库存历史含批次、供应商与价格
- 作为店长我能看到30天内即将过期的批次验收列表按过期日期升序、数量>0、状态为active
- 作为仓管我能看到库存预警商品并生成补货建议验收按min_stock阈值计算支持刷新
- 交班
- 作为收银员,我在结束班次时提交交班,系统对比现金实点与系统记录;验收:差异提示、交班记录持久化、打印小票/导出PDF
- 日结
- 作为店长,我每日进行日结,生成营业汇总与支付方式统计;验收:包含订单数、销售额、折扣额、退款额、各支付占比,支持打印/导出
### 非功能需求
- 性能订单创建接口P95 < 150ms库存列表P95 < 200ms渲染主界面首屏 < 2s
- 安全JWT密钥来源于环境变量不硬编码前后端避免日志泄露敏感信息
- 可维护性拆分过大的路由文件orders.js为分域模块统一Ant Design风格与交互
- 测试单元与集成测试覆盖率80%路由与服务关键路径均有测试
### 数据模型与规则(概要)
- Membermember_no, name, phone, level, points, total_consumption, total_orders, discount_rate, status
- MemberPointsHistorymember_id, points_change, before/after, type, source_type, operator_id, expire_date
- MemberCouponmember_id, coupon_code, type, discount_value, status, used_order_id
- Suppliername, contact_person, phone, status, payment_method, bank信息
- ProductBatchproduct_id, supplier_id, batch_no, production_date, expiry_date, quantity, cost/selling_price, status
- InventoryHistoryproduct_id, operation_type(in/out), quantity, stock_before/after, reason, supplier_id, batch_id
- Order增加member_id交班/日结新增域模型
### 风险与缓解
- 数据一致性风险入库/出库并发更新 事务与行级锁
- 大文件维护难orders.js过大 领域拆分与服务化
- 硬件依赖不稳定打印/串口 失败重试与降级提示
---
## 第二阶段设计Design
### 架构图与分层
- Electron主进程窗口串口进程间通信
- 渲染进程React路由页面Cashier/Members/Inventory/Reports/Settings)、服务层axios
- 后端Express + Sequelize + SQLiteroutesmembers/suppliers/batches/orders/shifts/closingmodelsservicesprinter
- 状态以局部state为主服务拉取后续评估引入轻量store如Zustand
### API规范示例
- 会员
- GET /api/members?page=&limit=&search=&level=&status=
- POST /api/membersPUT /api/members/:id
- POST /api/members/:id/points/adjust
- GET /api/members/:id/points/history
- GET /api/members/:id/stats
- 库存
- GET /api/suppliersPOST/PUT/DELETE /api/suppliers/:id
- GET /api/batches?product_id=&supplier_id=&status=
- POST/PUT/DELETE /api/batches/:id
- GET /api/batches/expiring-soon?days=30
- GET /api/products/low-stock
- 交班/日结
- POST /api/shifts/startPOST /api/shifts/end
- GET /api/shifts?date=&cashier_id=
- POST /api/daily-closing/run?date=YYYY-MM-DD
- GET /api/daily-closing/:date/report
### 安全与配置
- JWT_SECRETDB路径打印机配置从环境注入.env或配置文件移除硬编码
- axios拦截器仅在开发环境输出详细日志生产降级
### 性能策略
- 首屏路由懒加载Members/Inventory/Reports
- 去除生产环境冗余console
- 批量接口分页与筛选
### 错误与日志
- 统一错误中间件返回结构{error, code}
- 后端logger统一等级与文件输出避免请求体敏感字段写入
### 部署与运维
- 打包Webpack主/渲染配置复用构建脚本区分dev/prod
- 监控运行日志与错误统计文件落盘
---
## 第三阶段任务列表Task List
### 会员模块
- 后端Member/PointsHistory/Coupon模型与关联members路由列表/详情/创建/更新/积分调整/统计
- 前端memberServiceMembers页面列表详情抽屉积分调整Cashier会员搜索与选择订单携带member_id
- 测试members路由supertest积分调整边界测试
### 库存模块
- 后端Supplier/ProductBatch/InventoryHistory扩展模型与关联suppliersbatches路由products低库存与批次过期接口
- 前端supplierServicebatchServiceEnhancedInventory页面历史/批次/供应商/过期预警StockWarning组件
- 测试库存历史入出库事务测试过期批次筛选逻辑测试
### 交班模块
- 模型Shiftcashier_id, start_time, end_time, cash_counted, cash_system, diff, notes
- 接口开始/结束交班查询交班记录打印交班小票
- 前端Cashier页交班入口与弹窗Reports页交班查询
- 测试金额核对与差异计算打印调用
### 日结模块
- 模型DailyClosingdate, totals: sales/discount/refund/pending, payments breakdown, inventory snapshot
- 接口运行日结查询日报表打印/导出
- 前端Reports页新增日结Tab与报表展示
- 测试数据聚合正确性挂单与退款影响核算
### 跨域任务
- 重构拆分orders.js为orders-basicorders-statsorders-printorders-pending等
- 安全JWT密钥与配置管理移除敏感日志
- UI统一导航新增Members/Inventory遵循Ant Design规范与一致的卡片/表格/抽屉交互
- 测试与CI引入Jest/Vitest + supertestGitHub Actions构建与测试覆盖率80%
### 时间与优先级
- Phase 11.52周会员 + 库存供应商/批次/预警
- Phase 21周交班
- Phase 31周日结
- 持续重构与安全测试与CI性能优化
### 完成标准
- 所有API具备文档与错误处理前后端功能稳定可用
- 覆盖率80%P95延迟满足目标UI风格统一
- 交付规格说明与设计文档任务列表架构与流程图Mermaid/PlantUML可量化指标达标
---
## 可视化与指标
- 架构图ElectronExpressSQLite渲染进程模块与路由
- 流程图会员积分调整流程入库流水与库存更新交班核对与打印日结聚合
- 指标
- 性能P95接口与首屏构建包大小<2MB渲染bundle后续按需分割
- 质量测试覆盖率80%、关键路由100%用例
- 安全零硬编码密钥敏感日志为0
请确认以上三阶段规划确认后我将严格按照该规划开始实施