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

200 lines
17 KiB
Markdown
Raw Permalink 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.

# 技术架构图
## 系统整体架构
```
┌─────────────────────────────────────────────────────────────┐
│ 前端应用层 │
├─────────────────────────────────────────────────────────────┤
│ 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**: 单元测试框架