API-vendor/docs/项目概览/技术架构图.md

17 KiB
Raw Permalink Blame History

技术架构图

系统整体架构

┌─────────────────────────────────────────────────────────────┐
│                        前端应用层                              │
├─────────────────────────────────────────────────────────────┤
│                     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       │    │ • productSku│    │ • 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: 单元测试框架