14 KiB
14 KiB
活牛采购智能数字化系统 - 系统架构文档
概述
活牛采购智能数字化系统是一个基于Node.js和Vue.js的全栈Web应用,采用前后端分离架构,为活牛采购业务提供完整的数字化解决方案。
技术栈
后端技术栈
- 运行环境: Node.js 18+
- Web框架: Express.js 4.x
- 数据库: MySQL 8.0
- ORM框架: Sequelize 6.x
- 认证授权: JWT (jsonwebtoken)
- API文档: Swagger/OpenAPI 3.0
- 数据验证: Joi
- 日志记录: Morgan + Winston
- 进程管理: PM2
- 容器化: Docker
前端技术栈
- 框架: Vue.js 3.x
- 构建工具: Vite
- UI组件库: Element Plus
- 状态管理: Pinia
- 路由管理: Vue Router 4.x
- HTTP客户端: Axios
- 样式预处理: SCSS
开发工具
- 版本控制: Git
- 代码规范: ESLint + Prettier
- 包管理: npm
- API测试: Postman
- 数据库管理: MySQL Workbench
系统架构
整体架构图
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 前端应用 │ │ 后端API服务 │ │ 数据库服务 │
│ (Vue.js) │◄──►│ (Express.js) │◄──►│ (MySQL) │
│ │ │ │ │ │
│ - 用户界面 │ │ - RESTful API │ │ - 业务数据 │
│ - 状态管理 │ │ - 业务逻辑 │ │ - 用户数据 │
│ - 路由控制 │ │ - 数据验证 │ │ - 系统配置 │
│ - HTTP请求 │ │ - 认证授权 │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
后端架构设计
分层架构
┌─────────────────────────────────────────────────────────────┐
│ 路由层 (Routes) │
│ 处理HTTP请求路由,参数验证,权限检查 │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 控制器层 (Controllers) │
│ 处理业务请求,调用服务层,返回响应 │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 服务层 (Services) │
│ 核心业务逻辑,数据处理,事务管理 │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 数据层 (Models) │
│ 数据模型定义,数据库操作,关联关系 │
└─────────────────────────────────────────────────────────────┘
目录结构
backend/
├── src/
│ ├── config/ # 配置文件
│ │ ├── config.js # 应用配置
│ │ └── database.js # 数据库配置
│ ├── controllers/ # 控制器层
│ │ ├── AuthController.js
│ │ ├── UserController.js
│ │ ├── OrderController.js
│ │ ├── SupplierController.js
│ │ ├── TransportController.js
│ │ ├── DriverController.js
│ │ ├── VehicleController.js
│ │ └── PaymentController.js
│ ├── services/ # 服务层
│ │ ├── AuthService.js
│ │ ├── UserService.js
│ │ ├── OrderService.js
│ │ ├── SupplierService.js
│ │ ├── TransportService.js
│ │ ├── DriverService.js
│ │ ├── VehicleService.js
│ │ └── PaymentService.js
│ ├── models/ # 数据模型
│ │ ├── User.js
│ │ ├── Order.js
│ │ ├── Supplier.js
│ │ ├── Transport.js
│ │ ├── Driver.js
│ │ ├── Vehicle.js
│ │ ├── Payment.js
│ │ └── index.js
│ ├── routes/ # 路由定义
│ │ ├── auth.js
│ │ ├── users.js
│ │ ├── orders.js
│ │ ├── suppliers.js
│ │ ├── transports.js
│ │ ├── drivers.js
│ │ ├── vehicles.js
│ │ └── payments.js
│ ├── middleware/ # 中间件
│ │ ├── auth.js # 认证授权
│ │ ├── validation.js # 数据验证
│ │ ├── errorHandler.js # 错误处理
│ │ ├── logger.js # 日志记录
│ │ └── healthCheck.js # 健康检查
│ ├── utils/ # 工具函数
│ │ └── response.js # 响应格式化
│ └── main.js # 应用入口
├── docs/ # API文档
├── tests/ # 测试文件
├── package.json # 依赖配置
└── README.md # 项目说明
核心模块设计
1. 认证授权模块
- JWT Token认证: 无状态的用户认证机制
- 角色权限控制: 基于用户角色的访问控制
- 资源权限检查: 细粒度的资源访问控制
- Token刷新机制: 自动续期和安全退出
2. 用户管理模块
- 用户注册登录: 支持多种用户类型注册
- 用户信息管理: 个人信息维护和更新
- 用户状态管理: 激活、暂停、删除等状态控制
- 权限分配: 动态权限分配和管理
3. 订单管理模块
- 订单创建: 支持复杂的订单信息录入
- 订单跟踪: 全流程订单状态跟踪
- 订单审核: 多级审核流程支持
- 订单统计: 丰富的订单数据分析
4. 供应商管理模块
- 供应商注册: 供应商信息录入和审核
- 资质管理: 供应商资质证书管理
- 评价体系: 供应商评价和信用管理
- 合作管理: 供应商合作关系维护
5. 运输管理模块
- 运输任务: 运输任务创建和分配
- 实时跟踪: GPS定位和运输状态跟踪
- 路线优化: 智能路线规划和优化
- 运费结算: 自动化运费计算和结算
6. 司机管理模块
- 司机档案: 司机基本信息和资质管理
- 任务分配: 智能任务分配和调度
- 绩效考核: 司机绩效评估和奖惩
- 培训管理: 司机培训记录和证书管理
7. 车辆管理模块
- 车辆档案: 车辆基本信息和证件管理
- 维护保养: 车辆维护计划和记录
- 保险管理: 车辆保险信息和到期提醒
- 使用统计: 车辆使用情况统计分析
8. 支付管理模块
- 支付处理: 多种支付方式支持
- 账单管理: 自动生成和管理账单
- 财务对账: 支付记录和财务对账
- 结算管理: 供应商和司机结算管理
数据库设计
核心数据表
用户表 (users)
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
name VARCHAR(100) NOT NULL,
user_type ENUM('admin', 'buyer', 'supplier', 'driver') NOT NULL,
phone VARCHAR(20),
email VARCHAR(100),
status ENUM('active', 'inactive', 'suspended') DEFAULT 'active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
订单表 (orders)
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
order_number VARCHAR(50) UNIQUE NOT NULL,
supplier_id INT NOT NULL,
buyer_id INT NOT NULL,
cattle_type VARCHAR(50) NOT NULL,
quantity INT NOT NULL,
unit_price DECIMAL(10,2) NOT NULL,
total_amount DECIMAL(12,2) NOT NULL,
delivery_date DATE,
delivery_address TEXT,
status ENUM('pending', 'confirmed', 'in_progress', 'completed', 'cancelled') DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (supplier_id) REFERENCES suppliers(id),
FOREIGN KEY (buyer_id) REFERENCES users(id)
);
运输表 (transports)
CREATE TABLE transports (
id INT PRIMARY KEY AUTO_INCREMENT,
transport_number VARCHAR(50) UNIQUE NOT NULL,
order_id INT NOT NULL,
driver_id INT,
vehicle_id INT,
pickup_address TEXT NOT NULL,
delivery_address TEXT NOT NULL,
scheduled_pickup_time DATETIME,
scheduled_delivery_time DATETIME,
actual_pickup_time DATETIME,
actual_delivery_time DATETIME,
transport_fee DECIMAL(10,2),
status ENUM('pending', 'assigned', 'picked_up', 'in_transit', 'delivered', 'completed', 'cancelled') DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (order_id) REFERENCES orders(id),
FOREIGN KEY (driver_id) REFERENCES drivers(id),
FOREIGN KEY (vehicle_id) REFERENCES vehicles(id)
);
数据关系图
users ──┐
├── orders ── transports ──┐
suppliers ──┘ ├── drivers
└── vehicles
payments ──────┘
安全设计
1. 认证安全
- 密码加密: 使用bcrypt进行密码哈希
- JWT安全: 设置合理的过期时间和密钥管理
- 会话管理: 支持主动登出和Token失效
2. 授权安全
- 角色权限: 基于角色的访问控制(RBAC)
- 资源权限: 细粒度的资源访问控制
- API权限: 接口级别的权限验证
3. 数据安全
- 输入验证: 严格的数据验证和过滤
- SQL注入防护: 使用ORM防止SQL注入
- XSS防护: 输出编码和CSP策略
4. 传输安全
- HTTPS: 强制使用HTTPS传输
- CORS配置: 合理的跨域资源共享配置
- 请求限流: API请求频率限制
性能优化
1. 数据库优化
- 索引优化: 合理设计数据库索引
- 查询优化: 优化复杂查询和关联查询
- 连接池: 数据库连接池管理
- 读写分离: 支持主从数据库架构
2. 缓存策略
- Redis缓存: 热点数据缓存
- 查询缓存: 频繁查询结果缓存
- 会话缓存: 用户会话信息缓存
3. 接口优化
- 分页查询: 大数据量分页处理
- 数据压缩: 响应数据压缩
- 并发控制: 合理的并发处理机制
4. 前端优化
- 代码分割: 按需加载和代码分割
- 资源压缩: 静态资源压缩和优化
- CDN加速: 静态资源CDN分发
部署架构
开发环境
开发者本地 ──► 本地数据库
│
└──► 本地前后端服务
生产环境
负载均衡器 ──► Web服务器集群 ──► 应用服务器集群 ──► 数据库集群
│ │ │ │
└─ SSL终结 └─ 静态资源 └─ API服务 └─ 主从复制
Nginx PM2集群 MySQL集群
容器化部署
# docker-compose.yml
version: '3.8'
services:
frontend:
build: ./frontend
ports:
- "80:80"
backend:
build: ./backend
ports:
- "3000:3000"
depends_on:
- database
database:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- mysql_data:/var/lib/mysql
监控和日志
1. 应用监控
- 性能监控: 接口响应时间和吞吐量
- 错误监控: 异常和错误统计
- 资源监控: CPU、内存、磁盘使用情况
2. 日志管理
- 访问日志: HTTP请求访问记录
- 应用日志: 应用运行状态日志
- 错误日志: 异常和错误详细信息
- 审计日志: 重要操作审计记录
3. 告警机制
- 阈值告警: 性能指标超阈值告警
- 异常告警: 系统异常实时告警
- 业务告警: 关键业务指标告警
扩展性设计
1. 水平扩展
- 无状态设计: 应用服务无状态化
- 负载均衡: 支持多实例负载均衡
- 数据库分片: 支持数据库水平分片
2. 垂直扩展
- 模块化设计: 松耦合的模块化架构
- 微服务架构: 支持向微服务架构演进
- API网关: 统一的API网关管理
3. 功能扩展
- 插件机制: 支持功能插件扩展
- 配置管理: 灵活的配置管理机制
- 版本管理: API版本管理和兼容性
技术债务和改进计划
短期改进
- 完善单元测试和集成测试
- 优化数据库查询性能
- 增强错误处理和日志记录
- 完善API文档和使用说明
中期改进
- 引入缓存机制提升性能
- 实现实时通知和消息推送
- 增加数据备份和恢复机制
- 优化前端用户体验
长期规划
- 微服务架构重构
- 大数据分析和智能决策
- 移动端应用开发
- 云原生架构升级
总结
本系统采用现代化的技术栈和架构设计,具有良好的可扩展性、可维护性和安全性。通过分层架构和模块化设计,系统能够满足活牛采购业务的复杂需求,并为未来的功能扩展和性能优化提供了良好的基础。