Files
xlxumu/docs/design/ARCHITECTURE.md

502 lines
15 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. 系统架构图
为了更直观地展示系统架构,我们提供了一个可视化的系统架构图:
![系统架构图](./system_architecture.svg)
图中展示了以下主要层次和组件:
1. **用户接入层**:包括官网首页、专业管理系统和微信小程序矩阵
2. **API服务层**基于Node.js的各个业务模块API服务
3. **数据处理与存储层**:包括关系数据库、缓存系统、消息队列、文件存储和日志存储
4. **数据分析与展示层**:包含大数据分析引擎、智能预警系统、可视化平台和实时数据推送
5. **监控与日志层**:应用性能监控、服务器资源监控、日志收集与分析以及异常告警
6. **部署架构层**:容器化部署、负载均衡、自动化部署和容灾备份
此外,图中还展示了各组件之间的连接关系和数据流向。
## 4. 前端系统架构
### 4.1 官网首页系统
- 纯HTML5、CSS3、JavaScript实现
- 响应式设计,适配多种设备
- 突出锡林郭勒盟地域元素和蒙古族文化特色
- 绿色草原主题风格
- 集成Chart.js实现数据可视化展示
- 通过官网API获取新闻资讯和统计数据
### 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.1.1 养殖管理API (`/api/v1/farming`)
- 牛只档案管理
- 饲喂记录
- 防疫管理
- 繁殖管理
#### 5.1.2 金融服务API (`/api/v1/finance`)
- 贷款申请
- 保险购买
- 理赔处理
- 贷款审批
#### 5.1.3 政府监管API (`/api/v1/gov`)
- 防疫任务下发
- 补贴发放
- 检疫监管
- 任务状态跟踪
#### 5.1.4 交易管理API (`/api/v1/trades`)
- 商品发布/下架
- 订单创建/支付
- 物流跟踪
- 订单状态查询
#### 5.1.5 商城管理API (`/api/v1/mall`)
- 商品管理
- 订单处理
- 库存管理
- 用户评价
#### 5.1.6 数据中台API (`/api/v1/data`)
- 数据血缘追踪
- 接口调用分析
- 数据质量监控
#### 5.1.7 AI能力API (`/api/v1/ai`)
- 牛只体况评估
- 饲料配方推荐
- 智能诊断辅助
#### 5.1.8 用户中心API (`/api/v1/users`)
- 用户注册/登录/注销
- 个人信息管理
- 权限控制
#### 5.1.9 官网API (`/api/v1/website`)
- 新闻资讯管理
- 平台数据展示
- 用户留言处理
- 平台信息配置
#### 5.1.10 大屏可视化API (`/api/v1/dashboard`)
- 实时数据展示(支持 WebSocket
- 历史数据查询(支持分页和排序)
- 数据可视化配置(增删改查)
- 告警信息推送(订阅/取消订阅)
- 数据导出CSV/JSON 格式)
### 5.2 数据存储层
- 主数据库MySQL关系型数据库
- 缓存系统Redis用于会话缓存、数据缓存
- 消息队列RabbitMQ用于异步任务处理
- 文件存储:腾讯云对象存储服务
- 日志存储Elasticsearch用于日志分析
### 5.3 安全架构
- 基于JWT的无状态认证
- RBAC角色权限管理系统集中式用户管理
- HTTPS加密传输
- API接口安全防护限流、防注入等
- 数据加密存储BCrypt等
- 操作日志审计
### 5.4 数据分析层
- 实时数据采集系统IoT设备数据、用户行为数据
- 大数据分析引擎
- 智能预警系统
- 数据可视化展示平台
## 6. 项目结构
```
.
├── admin-system/ # 管理系统
│ ├── dashboard/ # 数据大屏
│ ├── official-website/ # 官网
│ ├── farming-management/ # 养殖管理系统
│ ├── bank-supervision/ # 银行监管系统
│ ├── insurance-supervision/ # 保险监管系统
│ ├── government-platform/ # 政府监管平台
│ ├── cattle-trading/ # 活牛交易系统
│ └── mall-management/ # 商城管理系统
├── mini_program/ # 小程序集合
│ ├── farming-manager/ # 养殖管理小程序
│ ├── beef-mall/ # 牛肉商城小程序
│ ├── bank-supervision/ # 银行监管小程序
│ ├── insurance-supervision/ # 保险监管小程序
│ ├── cattle-trading/ # 活牛交易小程序
│ └── government-supervision/ # 政府监管小程序
├── website/ # 官方网站
├── backend-java/ # 后端项目 (Java微服务架构)
│ ├── api/ # API网关模块
│ ├── gateway/ # Spring Cloud Gateway网关服务
│ ├── registry/ # Eureka服务注册中心
│ ├── config-server/ # Spring Cloud配置中心
│ ├── services/ # 微服务模块
│ │ ├── farming-service/ # 养殖管理服务
│ │ ├── finance-service/ # 金融服务
│ │ ├── government-service/ # 政府监管服务
│ │ ├── trade-service/ # 交易管理服务
│ │ ├── mall-service/ # 商城管理服务
│ │ ├── data-platform-service/ # 数据中台服务
│ │ ├── ai-service/ # AI能力服务
│ │ └── user-center-service/ # 用户中心服务
│ ├── common/ # 公共模块
│ ├── docs/ # 后端文档
│ ├── scripts/ # 后端脚本
│ └── pom.xml # Maven父项目配置文件
├── docs/ # 文档
└── deployment/ # 部署相关配置
```
## 7. 用户权限管理架构
### 7.1 集中式用户管理
- 所有用户信息统一在政府监管平台进行管理
- 各子系统仅负责登录验证和部分权限校验
- 实现统一的RBAC权限模型
- 通过用户中心API进行统一认证和授权
### 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设计
- 支持多维度数据钻取和交互
- 通过大屏可视化API获取实时和历史数据
## 9. 系统集成架构
### 9.1 外部系统集成
1. 银行系统对接
2. 政府监管平台对接
3. 第三方系统集成LDAP/AD、OAuth2.0等)
4. 物联网设备集成MQTT/CoAP协议
5. 云服务集成腾讯云COS、短信服务等
### 9.2 数据交换机制
- RESTful API接口
- 消息队列异步处理
- 文件传输
- 数据库同步
## 10. 性能优化策略
### 10.1 前端优化
- 代码分割和按需加载
- 图片懒加载和压缩
- CDN加速静态资源
- 浏览器缓存策略
- 虚拟滚动处理大数据量展示
- CDN加速静态资源
- 浏览器缓存策略
- 虚拟滚动处理大数据量展示
### 10.2 后端优化
- 数据库索引优化
- API响应缓存Redis
- 数据库连接池
- 负载均衡部署
- 异步任务处理RabbitMQ
## 11. 系统监控与日志
### 11.1 监控系统
- 应用性能监控APM
- 服务器资源监控CPU、内存、磁盘等
- 数据库性能监控
- 网络监控
- 业务指标监控
### 11.2 日志系统
- 统一日志格式
- 日志分级管理DEBUG、INFO、WARN、ERROR
- 日志收集与分析ELK Stack
- 日志存储策略
- 异常日志告警
## 12. 部署架构
### 12.1 开发环境
- 本地开发服务器
- 热重载功能
- 代理配置解决跨域问题
### 12.2 生产环境
- Nginx反向代理服务器
- 负载均衡配置
- SSL证书配置
- 日志收集和监控系统
- 容器化部署Docker
- 自动化部署CI/CD
## 13. 容灾与备份策略
### 13.1 数据备份
- 定时全量备份
- 增量备份机制
- 备份数据异地存储
- 备份恢复演练
### 13.2 系统容灾
- 多节点部署
- 故障自动切换
- 数据同步机制
- 灾难恢复预案