# 🌾 农业股票数据分析系统 基于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 ### 🔧 环境准备 1. **数据库配置** ```sql # 创建数据库 CREATE DATABASE agricultural_stock CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 导入表结构 mysql -u root -p agricultural_stock < spark-processor/database_tables.sql ``` 2. **配置数据库连接** ```yaml # backend/src/main/resources/application.yml spring: datasource: url: jdbc:mysql://localhost:3306/agricultural_stock username: root password: your_password ``` ### 🎯 一键启动 ```bash # 给脚本执行权限 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 ## 🔧 功能模块 ### 💎 核心功能 1. **数据处理引擎** (Spark Processor) - 股票数据清洗与标准化 - 技术指标计算 (MA、RSI、MACD、布林带) - 市场趋势分析 - 行业板块统计 2. **API服务** (Backend) - RESTful API接口 - 数据库CRUD操作 - 业务逻辑处理 - 数据缓存优化 3. **可视化界面** (Frontend) - 实时市场总览 - 交互式图表展示 - 数据趋势分析 - 响应式设计 ### 📊 数据指标 - **技术指标**: MA5/MA10/MA20/MA30、RSI、MACD、布林带 - **市场指标**: 涨跌统计、成交量、市值、平均涨跌幅 - **行业分析**: 板块表现、行业对比 - **趋势预测**: 历史数据分析、走势预判 ## 🗄️ 数据库表结构 ### 主要数据表 | 表名 | 描述 | 主要字段 | |------|------|----------| | `stock_data` | 股票基础数据 | 股票代码、价格、成交量、市值等 | | `market_analysis` | 市场分析数据 | 涨跌统计、总成交量、平均涨跌幅 | | `stock_technical_indicators` | 技术指标数据 | MA、RSI、MACD、布林带等 | | `industry_analysis` | 行业分析数据 | 行业名称、股票数量、涨跌情况 | | `market_trends` | 市场趋势数据 | 历史趋势、预测数据 | ## 🔌 API接口 ### 市场分析接口 ```bash # 获取最新市场分析 GET /api/market/latest # 获取历史数据 GET /api/market/recent/{days} # 获取日期范围数据 GET /api/market/range?startDate=2024-01-01&endDate=2024-01-31 ``` ### 响应格式 ```json { "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 } ``` ## 📈 系统监控 ### 日志查看 ```bash # Spark处理日志 tail -f logs/spark.log # 后端服务日志 tail -f logs/backend.log # 前端服务日志 tail -f logs/frontend.log ``` ### 性能监控 - **Spark作业**: 监控数据处理性能 - **API响应**: 监控接口响应时间 - **数据库**: 监控查询性能 ## 🛠️ 开发指南 ### 本地开发 1. **后端开发** ```bash cd backend mvn spring-boot:run ``` 2. **前端开发** ```bash cd frontend npm install npm run dev ``` 3. **Spark开发** ```bash cd spark-processor mvn compile exec:java ``` ### 代码规范 - **Java**: 遵循阿里巴巴Java开发规范 - **JavaScript**: 使用ESLint + Prettier - **数据库**: 驼峰命名,合理索引 ## 🔒 安全措施 - **数据验证**: 前后端双重验证 - **SQL注入防护**: 使用参数化查询 - **CORS配置**: 跨域请求安全控制 - **日志脱敏**: 敏感信息不记录日志 ## 📋 部署方案 ### 生产环境部署 1. **容器化部署** ```bash # 使用Docker Compose docker-compose up -d ``` 2. **集群部署** - Spark集群:多节点分布式处理 - 后端集群:负载均衡 + 高可用 - 数据库集群:主从复制 + 读写分离 ## 🤝 贡献指南 1. Fork本项目 2. 创建特性分支 3. 提交代码更改 4. 发起Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 📞 联系我们 - **项目负责人**: 农业股票分析团队 - **技术支持**: support@agricultural-stock.com - **问题反馈**: GitHub Issues --- 🌾 **让大数据技术助力农业金融发展!**