Files
xlxumu/docs/design/ARCHITECTURE.md

425 lines
17 KiB
Markdown
Raw Normal View History

# 系统架构文档
## 1. 概述
本项目是一个综合性的畜牧业数字化管理平台,主要面向锡林郭勒盟地区的养殖产业,包含官网展示、后台管理、移动端小程序、大屏可视化等多个子系统。平台集成了养殖管理、金融服务(银行监管、保险监管)、政府监管、牛只交易、牛肉商城、数据分析等功能模块,旨在通过数字化手段提升整个产业链的管理效率和透明度。
## 2. 技术栈
### 2.1 前端技术栈
- **官网首页**: HTML5 + CSS3 + JavaScript
- **后台管理系统**: Vue.js 3 + TypeScript + Ant Design Vue + Pinia
- **大屏可视化系统**: Vue.js 3 + ECharts + 自定义可视化组件
- **微信小程序矩阵**: 微信小程序原生开发 + uni-app
### 2.2 后端技术栈
- **API服务**: Node.js + Express.js + TypeScript + RESTful API
- **数据库**: MySQL
- **缓存系统**: Redis
- **消息队列**: RabbitMQ用于异步处理
- **文件存储**: 腾讯云对象存储
- **实时通信**: WebSocket用于大屏数据推送和实时通知
### 2.3 数据库配置
#### 2.3.1 测试环境
- **主机**: `192.168.0.240` (MySQL主机地址)
- **端口**: `3306` (MySQL端口)
- **用户名**: `root`
- **密码**: `aiot$Aiot123`
- **数据库**: `xlxumudata`
#### 2.3.2 生产环境
- **主机**: `129.211.213.226`
- **端口**: `9527`(端口号)
- **用户名**: `root`
- **密码**: `aiotAiot123!`
- **数据库**: `xlxumudata`
### 2.4 安全架构
- **身份认证**: JWT (JSON Web Tokens)
- **权限管理**: 基于角色的访问控制 (RBAC)
- **数据传输**: HTTPS 加密传输
- **API防护**: 接口限流、参数校验、防SQL注入等
- **密码安全**: BCrypt加密存储
- **操作审计**: 用户操作日志记录和审计
### 2.5 数据架构
- **实时数据采集**: IoT设备数据接入
- **数据处理**: ETL数据处理流程
- **数据存储**: 分层数据存储(操作数据、历史数据、统计数据)
- **大数据分析**: 数据分析引擎
- **智能预警**: 基于规则的预警系统
- **可视化展示**: 图表化数据展示平台
## 3. 系统架构图
```
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ 用户端接入层 │
├─────────────────┬─────────────────────────────────────────────────────────────────────────┤
│ 官网首页 │ 专业管理系统 │
│ (HTML5展示) ├─────────────────────────────────────────────────────────────────────────┤
│ │ - 养殖管理系统 (Vue.js 3 + Ant) │
│ │ - 银行监管系统 (Vue.js 3 + Ant) │
│ │ - 保险监管系统 (Vue.js 3 + Ant) │
│ │ - 政府监管平台 (Vue.js 3 + Ant) │
│ │ - 活牛交易系统 (Vue.js 3 + Ant) │
│ │ - 商城管理系统 (Vue.js 3 + Ant) │
│ │ - 大屏可视化系统 (Vue.js 3 + ECharts) │
├─────────────────┼─────────────────────────────────────────────────────────────────────────┤
│ 微信小程序矩阵 │
│ - 牛肉商城小程序 │
│ - 养殖管理小程序 │
│ - 银行监管小程序 │
│ - 保险监管小程序 │
│ - 活牛交易小程序 │
│ - 政府监管小程序 │
│ - 数据中台小程序 │
│ - AI能力小程序 │
├─────────────────┴─────────────────────────────────────────────────────────────────────────┤
│ API服务层 (Node.js) │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ 数据处理与存储层 │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ 关系数据库(MySQL) │ 缓存系统(Redis) │ 消息队列(RabbitMQ) │ 文件存储(腾讯云) │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ 数据分析与展示层 │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ 大数据分析引擎 │ 智能预警系统 │ 可视化平台 │ 实时数据推送 │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
```
## 4. 前端系统架构
### 4.1 官网首页系统
- 纯HTML5、CSS3、JavaScript实现
- 响应式设计,适配多种设备
- 突出锡林郭勒盟地域元素和蒙古族文化特色
- 绿色草原主题风格
### 4.2 专业管理系统
#### 4.2.1 养殖管理系统
- 基于Vue.js 3 Composition API
- 使用Ant Design Vue组件库
- 状态管理采用Pinia
- TypeScript增强代码可维护性
##### 功能模块
1. 牛只档案管理
2. 饲养记录管理
3. 繁殖管理
4. 环境监测数据展示
5. 健康监测管理
6. 生产计划制定和执行跟踪
#### 4.2.2 银行监管系统
- 基于Vue.js 3 Composition API
- 使用Ant Design Vue组件库
- 状态管理采用Pinia
- TypeScript增强代码可维护性
##### 功能模块
1. 贷款申请和审批流程管理
2. 质押物(牛只)状态监控
3. 还款计划跟踪
4. 风险评估数据展示
5. 财务报表生成
6. 风控管理
#### 4.2.3 保险监管系统
- 基于Vue.js 3 Composition API
- 使用Ant Design Vue组件库
- 状态管理采用Pinia
- TypeScript增强代码可维护性
##### 功能模块
1. 保险投保管理
2. 理赔申请和处理流程
3. 风险评估和预警
4. 保险记录查询
5. 数据统计分析
#### 4.2.4 政府监管平台
- 基于Vue.js 3 Composition API
- 使用Ant Design Vue组件库
- 状态管理采用Pinia
- TypeScript增强代码可维护性
##### 功能模块
1. 产业数据总览
2. 各类监管数据汇总
3. 政策发布和通知
4. 合规性检查
5. 统计报表生成
6. 用户管理(集中式用户权限管理)
7. 系统配置管理
#### 4.2.5 活牛交易系统
- 基于Vue.js 3 Composition API
- 使用Ant Design Vue组件库
- 状态管理采用Pinia
- TypeScript增强代码可维护性
##### 功能模块
1. 牛只信息发布和展示
2. 在线交易撮合
3. 合同管理
4. 支付流程管理
5. 交易记录查询
6. 商户管理
7. 行情管理
#### 4.2.6 商城管理系统
- 基于Vue.js 3 Composition API
- 使用Ant Design Vue组件库
- 状态管理采用Pinia
- TypeScript增强代码可维护性
##### 功能模块
1. 商品信息管理
2. 库存管理
3. 订单处理
4. 物流跟踪
5. 售后服务管理
6. 营销管理
#### 4.2.7 大屏可视化系统
- 基于Vue.js 3 Composition API
- 使用ECharts和自定义可视化组件
- 状态管理采用Pinia
- TypeScript增强代码可维护性
- WebSocket实现实时数据推送
##### 功能模块
1. 产业概览
2. 养殖监控
3. 金融服务
4. 交易统计
5. 运输跟踪
6. 风险预警
7. 生态指标
8. 政府监管
### 4.3 微信小程序矩阵
- 使用微信小程序原生开发框架
- 跨平台支持采用uni-app
- 包含8个专门的小程序应用
#### 4.3.1 牛肉商城小程序(消费者端)
- 商品浏览和搜索
- 在线下单和支付
- 订单查询和跟踪
- 售后服务申请
- **认养功能**:用户可以认养特定牛只,跟踪其成长过程
#### 4.3.2 养殖管理小程序(牧民端)
- 移动端牛只档案查看
- 饲养记录录入
- 健康状况上报
- 通知消息接收
- 数据统计查看
#### 4.3.3 银行监管小程序(银行端)
- 移动端贷款审批
- 质押物状态查看
- 风险数据监控
- 移动办公支持
#### 4.3.4 保险监管小程序(保险端)
- 移动端保险处理
- 理赔流程管理
- 风险评估查看
- 移动查勘支持
#### 4.3.5 活牛交易小程序(交易员端)
- 活牛信息发布
- 在线交易撮合
- 合同查看和管理
- 交易记录查询
- 支付状态跟踪
#### 4.3.6 政府监管小程序(监管人员端)
- 防疫任务执行
- 补贴申请审核
- 政策信息查看
- 监管数据上报
#### 4.3.7 数据中台小程序(数据人员端)
- 数据查询和导出
- 统计报表查看
- 数据服务申请
#### 4.3.8 AI能力小程序养殖户/兽医端)
- 牛只体况评估
- 饲料配方推荐
- 智能诊断辅助
## 5. 后端系统架构
### 5.1 API服务层
- 基于Node.js和Express.js构建
- 使用TypeScript增强代码健壮性
- RESTful API设计风格
- JWT身份认证机制
- 微服务架构设计(按业务模块划分)
### 5.2 数据存储层
- 主数据库MySQL关系型数据库
- 缓存系统Redis用于会话缓存、数据缓存
- 消息队列RabbitMQ用于异步任务处理
- 文件存储:腾讯云对象存储服务
- 日志存储Elasticsearch用于日志分析
### 5.3 安全架构
- 基于JWT的无状态认证
- RBAC角色权限管理系统集中式用户管理
- HTTPS加密传输
- API接口安全防护限流、防注入等
- 数据加密存储BCrypt等
- 操作日志审计
### 5.4 数据分析层
- 实时数据采集系统IoT设备数据、用户行为数据
- 大数据分析引擎
- 智能预警系统
- 数据可视化展示平台
## 6. 项目结构
```
.
├── frontend/ # 前端项目
│ ├── website/ # 官网首页
│ ├── farming-management/ # 养殖管理系统
│ ├── bank-supervision/ # 银行监管系统
│ ├── insurance-supervision/ # 保险监管系统
│ ├── government-platform/ # 政府监管平台
│ ├── cattle-trading/ # 活牛交易系统
│ ├── mall-management/ # 商城管理系统
│ ├── dashboard/ # 大屏可视化系统
│ └── mini-programs/ # 微信小程序矩阵
│ ├── beef-mall/ # 牛肉商城小程序
│ ├── farming-manager/ # 养殖管理小程序
│ ├── bank-supervision/ # 银行监管小程序
│ ├── insurance-supervision/ # 保险监管小程序
│ ├── cattle-trading/ # 活牛交易小程序
│ ├── gov-supervision/ # 政府监管小程序
│ ├── data-platform/ # 数据中台小程序
│ └── ai-capabilities/ # AI能力小程序
├── backend/ # 后端项目
│ ├── api/ # API服务
│ │ ├── farming/ # 养殖管理API
│ │ ├── finance/ # 金融服务API
│ │ ├── government/ # 政府监管API
│ │ ├── trade/ # 交易管理API
│ │ ├── mall/ # 商城管理API
│ │ ├── data-platform/ # 数据中台API
│ │ ├── ai/ # AI能力API
│ │ └── user-center/ # 用户中心API
│ ├── database/ # 数据库脚本
│ ├── utils/ # 工具函数
│ └── services/ # 微服务模块
├── docs/ # 文档
└── deployment/ # 部署相关配置
```
## 7. 用户权限管理架构
### 7.1 集中式用户管理
- 所有用户信息统一在政府监管平台进行管理
- 各子系统仅负责登录验证和部分权限校验
- 实现统一的RBAC权限模型
### 7.2 权限体系
- 基于角色的访问控制RBAC
- 支持多角色分配
- 细粒度权限控制(菜单权限、操作权限、数据权限)
- 权限继承机制
### 7.3 用户角色
1. 超级管理员
2. 政府监管员
3. 银行信贷员
4. 保险专员
5. 交易管理员
6. 商城管理员
7. 养殖户
8. 普通用户
9. 数据分析师
10. 系统审计员
## 8. 大屏可视化系统架构
### 8.1 系统概述
大屏可视化系统是本项目的重要组成部分,主要用于展示锡林郭勒盟安格斯牛养殖产业的整体数据、实时监控信息和分析结果。通过直观的图表和数据可视化方式,为管理者提供全面的产业洞察。
### 8.2 技术实现
- **前端框架**: Vue.js 3 + ECharts + 自定义可视化组件
- **可视化库**: Apache ECharts + D3.js
- **响应式设计**: 支持多种大屏比例(16:9, 4:3等)
- **实时数据**: WebSocket实时数据推送
- **性能优化**: 虚拟滚动、数据分页等技术
### 8.3 功能模块
1. **产业概览**: 展示整体产业规模、产值、增长率等关键指标
2. **养殖监控**: 实时展示各牧场的养殖情况、环境数据
3. **金融服务**: 展示贷款、保险等金融服务数据
4. **交易统计**: 牛只交易量、价格趋势、区域分布等数据
5. **运输跟踪**: 牛只运输实时状态和路径展示
6. **风险预警**: 风险事件展示和预警信息推送
7. **生态指标**: 环保数据、可持续发展指标展示
8. **政府监管**: 展示政府监管相关数据和政策执行效果
### 8.4 设计特色
- 融入锡林郭勒盟草原绿色主题
- 采用蒙古族文化元素的UI设计
- 突出安格斯牛品牌形象
- 支持多维度数据钻取和交互
## 9. 系统集成架构
### 9.1 外部系统集成
1. 银行系统对接
2. 政府监管平台对接
3. 第三方系统集成LDAP/AD、OAuth2.0等)
4. 物联网设备集成MQTT/CoAP协议
5. 云服务集成腾讯云COS、短信服务等
### 9.2 数据交换机制
- RESTful API接口
- 消息队列异步处理
- 文件传输
- 数据库同步
## 10. 性能优化策略
### 10.1 前端优化
- 代码分割和按需加载
- 图片懒加载和压缩
- CDN加速静态资源
- 浏览器缓存策略
- 虚拟滚动处理大数据量展示
### 10.2 后端优化
- 数据库索引优化
- API响应缓存Redis
- 数据库连接池
- 负载均衡部署
- 异步任务处理RabbitMQ
## 11. 部署架构
### 11.1 开发环境
- 本地开发服务器
- 热重载功能
- 代理配置解决跨域问题
### 11.2 生产环境
- Nginx反向代理服务器
- 负载均衡配置
- SSL证书配置
- 日志收集和监控系统
- 容器化部署Docker
- 自动化部署CI/CD