17 KiB
17 KiB
技术架构图
系统整体架构
┌─────────────────────────────────────────────────────────────┐
│ 前端应用层 │
├─────────────────────────────────────────────────────────────┤
│ API网关/负载均衡 │
├─────────────────────────────────────────────────────────────┤
│ Midway.js 应用层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Controller │ │ Middleware │ │ Guards │ │
│ │ 层 │ │ 层 │ │ 层 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Service │ │ DTO │ │ Utils │ │
│ │ 层 │ │ 层 │ │ 层 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Entity │ │ Enum │ │ Config │ │
│ │ 层 │ │ 层 │ │ 层 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 数据持久层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MySQL │ │ Redis │ │ File Store │ │
│ │ Database │ │ Cache │ │ (Future) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 第三方服务集成 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │WooCommerce │ │ FreightCom │ │ CanadaPost │ │
│ │ API │ │ 物流API │ │ 物流API │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ UniExpress │ │ 邮件服务 │ │ 其他API │ │
│ │ 物流API │ │ SMTP │ │ 服务 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
业务模块架构
┌─────────────────────────────────────────────────────────────┐
│ 业务模块层 │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 产品管理 │ │ 订单管理 │ │ 库存管理 │ │
│ │ │ │ │ │ │ │
│ │ • 产品CRUD │ │ • 订单同步 │ │ • 库存追踪 │ │
│ │ • 分类管理 │ │ • 状态管理 │ │ • 多仓管理 │ │
│ │ • 变体管理 │ │ • 退款处理 │ │ • 采购管理 │ │
│ │ • WP同步 │ │ • 统计分析 │ │ • 调拨管理 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 物流管理 │ │ 客户管理 │ │ 用户管理 │ │
│ │ │ │ │ │ │ │
│ │ • 运单生成 │ │ • 客户信息 │ │ • 用户认证 │ │
│ │ • 物流集成 │ │ • 标签管理 │ │ • 权限管理 │ │
│ │ • 运费计算 │ │ • 评级系统 │ │ • 角色管理 │ │
│ │ • 状态同步 │ │ • 行为分析 │ │ • JWT令牌 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 统计分析 │ │ Webhook │ │ 系统管理 │ │
│ │ │ │ │ │ │ │
│ │ • 销售统计 │ │ • WP事件 │ │ • 配置管理 │ │
│ │ • 库存统计 │ │ • 订单同步 │ │ • 定时任务 │ │
│ │ • 客户统计 │ │ • 产品同步 │ │ • 日志管理 │ │
│ │ • 报表生成 │ │ • 状态更新 │ │ • 监控告警 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
数据流架构
┌─────────────────────────────────────────────────────────────┐
│ 数据流向图 │
│ │
│ WooCommerce ──────┐ │
│ │ │ │
│ │ Webhook │ API调用 │
│ ▼ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ API Gateway │ │
│ │ (Midway.js App) │ │
│ └─────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ Controller Layer │ │
│ │ • 请求验证 │ │
│ │ • 参数转换 │ │
│ │ • 响应格式化 │ │
│ └─────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ Service Layer │ │
│ │ • 业务逻辑处理 │ │
│ │ • 数据转换 │ │
│ │ • 第三方服务调用 │ │
│ └─────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ Entity Layer │ │
│ │ • ORM映射 │ │
│ │ • 数据验证 │ │
│ │ • 关系管理 │ │
│ └─────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ MySQL Database │ │
│ │ • 数据持久化 │ │
│ │ • 事务管理 │ │
│ │ • 索引优化 │ │
│ └─────────────────────────────────┘ │
│ │
│ 第三方服务 ◄──────────────────────── Service Layer │
│ • FreightCom │
│ • CanadaPost │
│ • UniExpress │
│ • SMTP邮件 │
└─────────────────────────────────────────────────────────────┘
核心实体关系图
┌─────────────────────────────────────────────────────────────┐
│ 核心实体关系 │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Product │ │ Category │ │ Flavors │ │
│ │ │────│ │ │ │ │
│ │ • id │ │ • id │ │ • id │ │
│ │ • name │ │ • name │ │ • name │ │
│ │ • sku │ │ • slug │ │ • value │ │
│ │ • price │ └─────────────┘ └─────────────┘ │
│ └─────────────┘ │
│ │ │
│ │ 1:N │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Variation │ │ Stock │ │ StockPoint │ │
│ │ │ │ │────│ │ │
│ │ • id │ │ • id │ │ • id │ │
│ │ • productId │ │ • quantity │ │ • name │ │
│ │ • sku │ │ • sku│ │ • address │ │
│ │ • price │ └─────────────┘ └─────────────┘ │
│ └─────────────┘ │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Order │ │ OrderItem │ │ Customer │ │
│ │ │────│ │ │ │ │
│ │ • id │ │ • id │ │ • id │ │
│ │ • status │ │ • orderId │ │ • email │ │
│ │ • total │ │ • productId │ │ • rate │ │
│ │ • customerId│────│ • quantity │ └─────────────┘ │
│ └─────────────┘ └─────────────┘ │
│ │ │
│ │ 1:N │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Shipment │ │ShipmentItem │ │ Service │ │
│ │ │────│ │ │ │ │
│ │ • id │ │ • id │ │ • id │ │
│ │ • orderId │ │ • shipmentId│ │ • name │ │
│ │ • trackingNo│ │ • quantity │ │ • type │ │
│ │ • status │ └─────────────┘ │ • config │ │
│ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
技术选型说明
框架选择
- Midway.js: 企业级Node.js框架,提供完整的IoC容器和装饰器支持
- TypeScript: 强类型支持,提高代码质量和可维护性
- TypeORM: 功能强大的ORM框架,支持多种数据库
数据库选择
- MySQL: 成熟稳定的关系型数据库,适合电商业务的复杂关系
- Redis: (建议添加) 高性能缓存,提升系统响应速度
第三方集成
- WooCommerce: 主流电商平台,API完善
- 物流服务商: 多家物流公司集成,提供灵活的物流选择
- JWT: 无状态认证,适合分布式系统
开发工具
- Swagger: API文档自动生成
- ESLint: 代码规范检查
- Jest: 单元测试框架