# 彩票数据分析系统 ## 项目概述 本项目是一个彩票数据分析系统,支持双色球和大乐透的数据管理、统计分析和智能选号功能。系统采用前后端分离架构,提供直观的用户界面和强大的数据分析能力。 ## 技术栈 ### 后端 - Python 3.8+ - FastAPI - SQLAlchemy - PostgreSQL - Pydantic ### 前端 - Vue 3 - Vite - Element Plus - ECharts - Pinia - Vue Router ## 系统功能 1. 数据管理 - 双色球和大乐透历史数据导入 - 数据查询和筛选 - 数据导出 - 手动数据录入 2. 统计分析 - 号码出现频率统计 - 热门号码分析 - 冷门号码分析 - 数据可视化展示 3. 智能选号 - 随机选号 - 频率选号 - 热门号码选号 - 冷门号码选号 ## 项目结构 ``` lottery/ ├── backend/ # 后端代码 │ ├── app/ │ │ ├── api/ # API 路由 │ │ ├── core/ # 核心配置 │ │ ├── models/ # 数据模型 │ │ ├── schemas/ # 数据验证 │ │ └── services/ # 业务逻辑 │ ├── requirements.txt # 依赖包 │ └── main.py # 入口文件 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 组件 │ │ ├── router/ # 路由配置 │ │ ├── views/ # 页面 │ │ ├── App.vue # 根组件 │ │ └── main.js # 入口文件 │ ├── package.json # 依赖配置 │ └── vite.config.js # Vite 配置 └── README.md # 项目文档 ``` ## 开发环境要求 - Python 3.8+ - Node.js 16+ - PostgreSQL 12+ - npm 或 yarn ## 安装和运行 ### 后端 1. 创建虚拟环境 ```bash python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows ``` 2. 安装依赖 ```bash cd backend pip install -r requirements.txt ``` 3. 配置数据库 - 创建 PostgreSQL 数据库 - 修改 `backend/app/core/database.py` 中的数据库连接配置 4. 启动服务 ```bash uvicorn main:app --reload --host 0.0.0.0 --port 8000 ``` ### 前端 1. 安装依赖 ```bash cd frontend npm install ``` 2. 启动开发服务器 ```bash npm run dev ``` 3. 构建生产版本 ```bash npm run build ``` ## 使用说明 ### 数据导入与更新说明 #### 数据导入 - 支持通过前端页面或API导入双色球、大乐透历史数据(JSON格式)。 - 导入时,系统会自动根据 `open_time`(开奖日期)升序排序,确保数据库 `id=1` 为最早的开奖数据。 - 导入过程自动去重:只导入数据库中未出现过的开奖日期数据。 - 支持 pandas DataFrame 或 JSON 文件导入。 #### 数据自动/手动更新 - 系统支持从聚合数据API自动获取最新开奖记录。 - 更新逻辑: - 只插入数据库中未出现过的开奖日期(`open_time` 唯一性判断)。 - 插入顺序为开奖日期升序,保证历史数据先入库,最新数据最后入库。 - 日志记录于 `lottery_update.log`。 ##### 手动更新 ```bash cd backend python update_lottery.py ``` ##### 自动定时更新 ```bash cd backend python schedule_update.py ``` 系统会在每天凌晨2点自动检查并更新数据。 #### 其他说明 - 首页、API、前端等所有"最新开奖"展示均以 `open_time` 最大值为准,保证数据准确。 - 数据库不会因期号异常导致遗漏或重复,所有唯一性、顺序均以开奖日期为核心。 ### 数据查询 1. 在查询表单中输入查询条件 2. 点击"查询"按钮 3. 查看查询结果 ### 统计分析 1. 进入统计分析页面 2. 选择要分析的彩票类型 3. 查看统计图表 ### 智能选号 1. 进入智能选号页面 2. 选择彩票类型和选号策略 3. 设置生成注数 4. 点击"生成号码"按钮 ## API 文档 启动后端服务后,访问以下地址查看 API 文档: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## 常见问题 1. 数据库连接失败 - 检查数据库服务是否启动 - 验证数据库连接配置是否正确 2. 前端无法连接后端 - 确认后端服务是否正常运行 - 检查前端环境配置中的 API 地址是否正确 3. 数据导入失败 - 检查 JSON 文件格式是否正确 - 确认数据库表结构是否完整 ## 开发计划 - [ ] 添加用户认证功能 - [ ] 实现数据备份和恢复 - [ ] 优化数据导入性能 - [ ] 添加更多统计分析功能 - [ ] 实现自定义选号策略 ## 贡献指南 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 许可证 MIT License ## 数据更新功能 系统支持自动从聚合数据API获取最新的开奖数据并更新到本地数据库。更新功能包括: 1. 手动更新 ```bash cd backend python update_lottery.py ``` 2. 自动更新 ```bash cd backend python schedule_update.py ``` 系统会在每天凌晨2点自动检查并更新数据。 ### 数据更新说明 - 系统会自动检查本地数据库中最新的开奖日期 - 只获取并更新比本地数据更新的开奖记录 - 更新过程会记录日志到 `lottery_update.log` 文件 - 支持双色球和大乐透两种彩票的数据更新