Files
xlxumu/docs/design/ARCHITECTURE.md

15 KiB
Raw Blame 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. 系统架构图

为了更直观地展示系统架构,我们提供了一个可视化的系统架构图:

系统架构图

图中展示了以下主要层次和组件:

  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. 项目结构

.
├── 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
│   │   ├── website/           # 官网API
│   │   └── user-center/       # 用户中心API
│   ├── database/              # 数据库脚本
│   ├── utils/                 # 工具函数
│   └── services/              # 微服务模块
├── 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 系统容灾

  • 多节点部署
  • 故障自动切换
  • 数据同步机制
  • 灾难恢复预案