- 新增 OrderQueryRequestDTO 请求对象,支持多条件查询和分页参数 - 新增 OrderListResponseDTO 响应对象,包含客户订单和 PayPal 订单信息 - 在 CustomerOrderController 中添加 /query 接口,支持 POST 方式查询订单列表 - 在 CustomerOrderService 和实现类中添加 queryOrders 方法,实现订单查询逻辑 - 支持按订单号、状态、客户信息、商品名称等条件查询 - 支持按 PayPal 订单相关条件查询,关联查询 PayPal 支付信息 - 实现分页查询功能,限制每页最大数量为 100 - 添加时间范围查询和多种排序功能 - 优化 N+1 查询问题,批量查询 PayPal 订单信息 - 添加详细的查询日志记录和性能监控 - 更新项目完善计划文档,记录待办功能和优化项
9.3 KiB
9.3 KiB
项目完善、优化、补充计划
📋 目录
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)
- 需要实现:
- 集成JWT(JSON 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 用户文档
- 用户手册
- 商品管理操作指南
- 订单管理操作指南
- 常见问题解答
优先级说明
- ⚠️ 高优先级:影响核心功能或安全性,需要尽快实现
- ⚠️ 中优先级:提升系统质量和可维护性,建议实现
- ⚠️ 低优先级:优化和增强功能,可选择性实现
实施建议
-
第一阶段(核心功能):
- 商品编辑功能
- 订单列表查询
- 库存扣减逻辑
- 密码加密升级
-
第二阶段(安全性):
- JWT Token
- 角色权限系统
- API访问控制
-
第三阶段(优化):
- Redis缓存
- 性能监控
- 单元测试
-
第四阶段(完善):
- 操作日志
- 数据统计
- 文档完善