Files
MTKJPAY/PROJECT_IMPROVEMENT_PLAN.md
qiube f8d116f9a3 feat(order): 添加订单列表查询功能
- 新增 OrderQueryRequestDTO 请求对象,支持多条件查询和分页参数
- 新增 OrderListResponseDTO 响应对象,包含客户订单和 PayPal 订单信息
- 在 CustomerOrderController 中添加 /query 接口,支持 POST 方式查询订单列表
- 在 CustomerOrderService 和实现类中添加 queryOrders 方法,实现订单查询逻辑
- 支持按订单号、状态、客户信息、商品名称等条件查询
- 支持按 PayPal 订单相关条件查询,关联查询 PayPal 支付信息
- 实现分页查询功能,限制每页最大数量为 100
- 添加时间范围查询和多种排序功能
- 优化 N+1 查询问题,批量查询 PayPal 订单信息
- 添加详细的查询日志记录和性能监控
- 更新项目完善计划文档,记录待办功能和优化项
2025-12-25 18:11:57 +08:00

374 lines
9.3 KiB
Markdown
Raw 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.
# 项目完善、优化、补充计划
## 📋 目录
1. [功能完善](#功能完善)
2. [性能优化](#性能优化)
3. [安全性增强](#安全性增强)
4. [代码质量](#代码质量)
5. [数据完整性](#数据完整性)
6. [监控和日志](#监控和日志)
7. [部署和运维](#部署和运维)
8. [用户体验](#用户体验)
9. [文档完善](#文档完善)
---
## 1. 功能完善
### 1.1 商品管理功能
- [ ] **商品编辑功能** ⚠️ 高优先级
- 当前状态:`ProductManage.vue` 中有 TODO 标记,点击编辑只显示提示
- 需要实现:
- 后端:`PUT /api/product/{id}` 更新商品接口
- 后端:`ProductService.updateProduct()` 方法
- 前端:`/manage/product/edit/:id` 编辑页面
- 支持修改商品名称、价格、主图、SKU信息等
- [ ] **商品上架功能**
- 当前状态:只有下架功能,没有上架功能
- 需要实现:
- 后端:`PUT /api/product/{id}/on-shelf` 上架接口
- 上架时恢复SKU库存需要记录下架前的库存
- [ ] **商品批量操作**
- 批量上架/下架
- 批量删除(软删除)
### 1.2 订单管理功能
- [ ] **订单列表查询** ⚠️ 高优先级
- 当前状态:只有单个订单查询(`OrderQuery.vue`),没有列表
- 需要实现:
- 后端:`GET /api/order/list` 订单列表接口(支持分页、筛选)
- 前端:订单管理页面,支持按状态、时间、订单号等查询
- 支持订单状态筛选(待支付、已支付、已发货、已完成、已取消)
- [ ] **订单状态管理**
- 订单发货功能(更新状态为 SHIPPED
- 订单完成功能(更新状态为 COMPLETED
- 订单取消功能(更新状态为 CANCELLED恢复库存
- [ ] **订单详情查看**
- 在订单列表中点击查看详情
- 显示完整的订单信息、支付信息、收货地址等
### 1.3 库存管理
- [ ] **库存扣减** ⚠️ 高优先级
- 当前状态:创建订单时只验证库存,没有扣减
- 需要实现:
- 创建订单时扣减库存(使用数据库锁防止超卖)
- 支付成功时确认扣减(如果创建时是预扣,支付时确认)
- 订单取消时恢复库存
- [ ] **库存预警**
- 库存低于阈值时提醒
- 库存为0时自动下架商品可选
- [ ] **库存历史记录**
- 记录库存变动历史(入库、出库、调整等)
### 1.4 数据统计
- [ ] **销售统计**
- 按时间段统计销售额
- 按商品统计销量
- 按地区统计销售情况
- [ ] **订单统计**
- 订单数量统计
- 订单状态分布
- 支付成功率统计
---
## 2. 性能优化
### 2.1 缓存机制
- [ ] **引入Redis缓存** ⚠️ 中优先级
- 当前状态PayPal token和汇率使用内存缓存单机可用集群有问题
- 需要实现:
- 集成Redis
- PayPal token缓存到Redis
- 汇率缓存到Redis
- 商品详情缓存(热点商品)
- 商品列表缓存(带过期时间)
- [ ] **数据库查询优化**
- 检查慢查询日志
- 优化复杂查询
- 添加必要的数据库索引
### 2.2 前端优化
- [ ] **移除console.log** ⚠️ 低优先级
- 当前状态:前端代码中有多处 `console.log``console.error`
- 需要实现:
- 使用日志库(如 `winston` 或自定义日志工具)
- 生产环境禁用console输出
- 统一错误处理
- [ ] **代码分割和懒加载**
- 路由懒加载(已部分实现)
- 组件懒加载
- 减少首屏加载时间
- [ ] **图片优化**
- 图片懒加载
- 图片压缩
- CDN加速
### 2.3 数据库优化
- [ ] **连接池优化**
- 检查当前连接池配置是否合理
- 根据实际负载调整参数
- [ ] **批量操作优化**
- 商品创建已优化批量插入SKU
- 其他批量操作也需要优化
---
## 3. 安全性增强
### 3.1 密码安全
- [ ] **密码加密升级** ⚠️ 高优先级
- 当前状态使用MD5加密不安全
- 需要实现:
- 使用BCrypt或Argon2加密
- 密码强度验证
- 密码历史记录(防止重复使用)
- [ ] **Token安全**
- 当前状态使用MD5+Base64注释说生产环境建议使用JWT
- 需要实现:
- 集成JWTJSON Web Token
- Token刷新机制
- Token黑名单登出时
### 3.2 权限控制
- [ ] **角色权限系统** ⚠️ 中优先级
- 当前状态:只有登录验证,没有角色权限
- 需要实现:
- 角色管理(管理员、普通用户等)
- 权限管理(商品管理、订单管理、用户管理等)
- 接口权限控制(`@PreAuthorize` 或自定义拦截器)
- [ ] **API访问控制**
- 接口访问频率限制(防止暴力攻击)
- IP白名单可选用于管理接口
### 3.3 数据安全
- [ ] **敏感数据加密**
- 客户手机号、邮箱加密存储
- 支付信息加密
- [ ] **SQL注入防护**
- 检查是否所有查询都使用参数化查询MyBatis-Plus已提供
- [ ] **XSS防护**
- 前端输入验证和转义
- 后端输出转义
---
## 4. 代码质量
### 4.1 测试覆盖
- [ ] **单元测试** ⚠️ 中优先级
- 当前状态:没有单元测试
- 需要实现:
- Service层单元测试
- Controller层单元测试
- 工具类单元测试
- 测试覆盖率目标:>70%
- [ ] **集成测试**
- API接口测试
- 数据库操作测试
- [ ] **前端测试**
- 组件测试
- E2E测试
### 4.2 代码规范
- [ ] **代码审查**
- 统一代码风格
- 移除TODO标记实现或记录到任务列表
- 代码注释完善
- [ ] **静态代码分析**
- 集成SonarQube或类似工具
- 修复代码质量问题
### 4.3 API文档
- [ ] **Swagger/OpenAPI文档** ⚠️ 中优先级
- 当前状态只有部分API有Markdown文档
- 需要实现:
- 集成Swagger UI
- 自动生成API文档
- 接口参数和响应说明
---
## 5. 数据完整性
### 5.1 库存管理
- [ ] **库存扣减逻辑** ⚠️ 高优先级
- 创建订单时扣减库存
- 支付成功时确认库存
- 订单取消时恢复库存
- 使用数据库锁SELECT FOR UPDATE防止超卖
- [ ] **库存一致性检查**
- 定期检查库存数据一致性
- 库存异常告警
### 5.2 订单状态流转
- [ ] **订单状态机** ⚠️ 中优先级
- 定义订单状态流转规则
- 防止非法状态转换
- 状态变更日志
### 5.3 数据备份
- [ ] **数据库备份策略**
- 定期自动备份
- 备份恢复测试
- 备份文件管理
---
## 6. 监控和日志
### 6.1 操作日志
- [ ] **操作审计日志** ⚠️ 中优先级
- 记录用户操作(商品创建、编辑、下架等)
- 记录订单状态变更
- 记录支付操作
- [ ] **日志查询功能**
- 前端日志查询页面
- 按时间、用户、操作类型筛选
### 6.2 性能监控
- [ ] **性能指标监控**
- API响应时间监控
- 数据库查询性能监控
- 系统资源监控CPU、内存、磁盘
- [ ] **告警机制**
- 异常告警(错误率、响应时间)
- 系统资源告警
### 6.3 错误追踪
- [ ] **错误日志聚合**
- 集成错误追踪服务如Sentry
- 错误分类和统计
- 错误通知
---
## 7. 部署和运维
### 7.1 数据库迁移
- [ ] **数据库版本管理** ⚠️ 中优先级
- 当前状态只有SQL脚本没有版本管理
- 需要实现:
- 集成Flyway或Liquibase
- 数据库版本控制
- 自动迁移脚本
### 7.2 配置管理
- [ ] **环境配置优化**
- 敏感信息加密(密码、密钥等)
- 配置中心(可选)
- 环境变量管理
### 7.3 部署文档
- [ ] **部署指南**
- 生产环境部署步骤
- 环境要求说明
- 故障排查指南
### 7.4 容器化
- [ ] **Docker支持** ⚠️ 低优先级
- Dockerfile编写
- Docker Compose配置
- 容器化部署文档
---
## 8. 用户体验
### 8.1 前端优化
- [ ] **加载状态优化**
- 骨架屏Skeleton
- 加载动画优化
- [ ] **错误提示优化**
- 友好的错误提示
- 错误恢复建议
- [ ] **移动端优化**
- 响应式设计检查
- 移动端交互优化
### 8.2 功能完善
- [ ] **订单导出**
- 订单列表导出Excel
- 支持筛选条件导出
- [ ] **数据统计可视化**
- 销售图表
- 订单趋势图
---
## 9. 文档完善
### 9.1 技术文档
- [ ] **API文档**
- 完整的API文档Swagger
- 接口调用示例
- [ ] **数据库设计文档**
- ER图
- 表结构说明
- 索引说明
### 9.2 用户文档
- [ ] **用户手册**
- 商品管理操作指南
- 订单管理操作指南
- 常见问题解答
---
## 优先级说明
- ⚠️ **高优先级**:影响核心功能或安全性,需要尽快实现
- ⚠️ **中优先级**:提升系统质量和可维护性,建议实现
- ⚠️ **低优先级**:优化和增强功能,可选择性实现
---
## 实施建议
1. **第一阶段(核心功能)**
- 商品编辑功能
- 订单列表查询
- 库存扣减逻辑
- 密码加密升级
2. **第二阶段(安全性)**
- JWT Token
- 角色权限系统
- API访问控制
3. **第三阶段(优化)**
- Redis缓存
- 性能监控
- 单元测试
4. **第四阶段(完善)**
- 操作日志
- 数据统计
- 文档完善