|
|
||
|---|---|---|
| backend | ||
| data-collector | ||
| docs | ||
| frontend | ||
| logs | ||
| spark-processor | ||
| .gitignore | ||
| README.md | ||
| agricultural_stock.sql | ||
| docker-compose.yml | ||
| start-dev.sh | ||
| start-system.sh | ||
| start.sh | ||
| stop-dev.sh | ||
| stop-system.sh | ||
README.md
🌾 农业股票数据分析系统
基于Spark大数据处理、Spring Boot后端API和Vue.js前端的农业股票市场监控与分析平台
📋 系统概述
本系统是一个完整的农业股票数据分析解决方案,通过大数据技术对农业相关上市公司的股票数据进行实时处理、技术分析和市场预测。
🏗️ 系统架构
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Spark Processor │
│ (Vue.js) │────│ (Spring Boot) │────│ (Analytics) │
│ │ │ │ │ │
│ • 数据可视化 │ │ • API接口 │ │ • 数据处理 │
│ • 用户界面 │ │ • 业务逻辑 │ │ • 技术分析 │
│ • 图表展示 │ │ • 数据库操作 │ │ • 市场分析 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ MySQL Database │
│ │
│ • stock_data │
│ • market_analysis│
│ • technical_data │
└─────────────────┘
📁 项目结构
agricultural-stock-platform/
├── spark-processor/ # Spark数据处理模块
│ ├── src/main/java/
│ │ └── com/agricultural/spark/
│ │ ├── StockDataProcessor.java
│ │ ├── services/
│ │ └── utils/
│ ├── database_tables.sql
│ ├── logback.xml
│ └── pom.xml
├── backend/ # Spring Boot后端API
│ ├── src/main/java/
│ │ └── com/agricultural/stock/
│ │ ├── controller/
│ │ ├── service/
│ │ ├── entity/
│ │ ├── mapper/
│ │ └── vo/
│ ├── src/main/resources/
│ │ └── application.yml
│ └── pom.xml
├── frontend/ # Vue.js前端界面
│ ├── src/
│ │ ├── views/
│ │ ├── components/
│ │ ├── api/
│ │ ├── utils/
│ │ └── styles/
│ ├── package.json
│ └── vite.config.js
├── start-system.sh # 系统启动脚本
├── stop-system.sh # 系统停止脚本
└── README.md
🚀 快速开始
📋 系统要求
- Java: JDK 8 或更高版本
- Maven: 3.6 或更高版本
- Node.js: 16.0 或更高版本
- MySQL: 8.0 或更高版本
- 操作系统: Linux/macOS/Windows
🔧 环境准备
-
数据库配置
# 创建数据库 CREATE DATABASE agricultural_stock CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 导入表结构 mysql -u root -p agricultural_stock < spark-processor/database_tables.sql -
配置数据库连接
# backend/src/main/resources/application.yml spring: datasource: url: jdbc:mysql://localhost:3306/agricultural_stock username: root password: your_password
🎯 一键启动
# 给脚本执行权限
chmod +x start-system.sh stop-system.sh
# 启动整个系统
./start-system.sh
# 停止整个系统
./stop-system.sh
📱 访问系统
- 前端界面: http://localhost:3000
- 后端API: http://localhost:8080
- API文档: http://localhost:8080/swagger-ui/index.html
🔧 功能模块
💎 核心功能
-
数据处理引擎 (Spark Processor)
- 股票数据清洗与标准化
- 技术指标计算 (MA、RSI、MACD、布林带)
- 市场趋势分析
- 行业板块统计
-
API服务 (Backend)
- RESTful API接口
- 数据库CRUD操作
- 业务逻辑处理
- 数据缓存优化
-
可视化界面 (Frontend)
- 实时市场总览
- 交互式图表展示
- 数据趋势分析
- 响应式设计
📊 数据指标
- 技术指标: MA5/MA10/MA20/MA30、RSI、MACD、布林带
- 市场指标: 涨跌统计、成交量、市值、平均涨跌幅
- 行业分析: 板块表现、行业对比
- 趋势预测: 历史数据分析、走势预判
🗄️ 数据库表结构
主要数据表
| 表名 | 描述 | 主要字段 |
|---|---|---|
stock_data |
股票基础数据 | 股票代码、价格、成交量、市值等 |
market_analysis |
市场分析数据 | 涨跌统计、总成交量、平均涨跌幅 |
stock_technical_indicators |
技术指标数据 | MA、RSI、MACD、布林带等 |
industry_analysis |
行业分析数据 | 行业名称、股票数量、涨跌情况 |
market_trends |
市场趋势数据 | 历史趋势、预测数据 |
🔌 API接口
市场分析接口
# 获取最新市场分析
GET /api/market/latest
# 获取历史数据
GET /api/market/recent/{days}
# 获取日期范围数据
GET /api/market/range?startDate=2024-01-01&endDate=2024-01-31
响应格式
{
"code": 200,
"message": "成功",
"data": {
"id": 1,
"analysisDate": "2024-01-15",
"upCount": 7,
"downCount": 2,
"flatCount": 1,
"totalCount": 10,
"totalMarketCap": 38147.05,
"totalVolume": 1878844,
"avgChangePercent": 0.33
},
"timestamp": 1705123456789
}
📈 系统监控
日志查看
# Spark处理日志
tail -f logs/spark.log
# 后端服务日志
tail -f logs/backend.log
# 前端服务日志
tail -f logs/frontend.log
性能监控
- Spark作业: 监控数据处理性能
- API响应: 监控接口响应时间
- 数据库: 监控查询性能
🛠️ 开发指南
本地开发
-
后端开发
cd backend mvn spring-boot:run -
前端开发
cd frontend npm install npm run dev -
Spark开发
cd spark-processor mvn compile exec:java
代码规范
- Java: 遵循阿里巴巴Java开发规范
- JavaScript: 使用ESLint + Prettier
- 数据库: 驼峰命名,合理索引
🔒 安全措施
- 数据验证: 前后端双重验证
- SQL注入防护: 使用参数化查询
- CORS配置: 跨域请求安全控制
- 日志脱敏: 敏感信息不记录日志
📋 部署方案
生产环境部署
-
容器化部署
# 使用Docker Compose docker-compose up -d -
集群部署
- Spark集群:多节点分布式处理
- 后端集群:负载均衡 + 高可用
- 数据库集群:主从复制 + 读写分离
🤝 贡献指南
- Fork本项目
- 创建特性分支
- 提交代码更改
- 发起Pull Request
📄 许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
📞 联系我们
- 项目负责人: 农业股票分析团队
- 技术支持: support@agricultural-stock.com
- 问题反馈: GitHub Issues
🌾 让大数据技术助力农业金融发展!