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