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

9.3 KiB
Raw Blame History

项目完善、优化、补充计划

📋 目录

  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.logconsole.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. 第四阶段(完善)

    • 操作日志
    • 数据统计
    • 文档完善