mottery/README.md

10 KiB
Raw Blame History

彩票数据分析系统

项目概述

本项目是一个彩票数据分析系统,支持双色球和大乐透的数据管理、统计分析和智能选号功能。系统采用前后端分离架构,提供直观的用户界面和强大的数据分析能力。

技术栈

后端

  • Python 3.8+
  • FastAPI
  • SQLAlchemy
  • MySQL/PostgreSQL
  • Pydantic
  • Scikit-learn (机器学习)
  • NumPy (数值计算)
  • Pandas (数据处理)
  • Schedule (定时任务)

前端

  • Vue 3
  • Vite
  • Element Plus
  • ECharts
  • Pinia
  • Vue Router

系统功能

1. 数据管理

  • 双色球和大乐透历史数据导入
  • 数据查询和筛选
  • 数据导出
  • 手动数据录入
  • 自动数据更新 新功能
  • 定时任务系统 新功能

2. 基础统计分析

  • 号码出现频率统计
  • 热门号码分析
  • 冷门号码分析
  • 数据可视化展示

3. 高级数据分析 新功能

  • 遗漏值分析: 分析各号码的遗漏期数
  • 和值分析: 统计红球和值的分布规律
  • AC值分析: 邻号差值分析
  • 质合比分析: 质数与合数的比例分析
  • 012路分析: 除3余数分析
  • 跨度分析: 最大最小号码差值分析
  • 综合分析: 多维度数据整合分析

4. 智能预测系统 新功能

  • 机器学习预测: 基于历史数据的AI预测
  • 模式预测: 基于统计模式的预测
  • 集成预测: 多方法综合预测
  • 预测模型训练: 可自定义训练参数
  • 预测结果评估: 预测准确率统计
  • 每日拼盘推荐: 定时生成推荐号码 新功能

5. 智能选号

  • 随机选号
  • 频率选号
  • 热门号码选号
  • 冷门号码选号
  • 自定义选号策略

6. 定时任务系统 新功能

  • 每天早上6点: 自动更新开奖数据
  • 每天下午5点: 自动生成拼盘推荐
  • 任务状态监控: 实时查看任务执行状态
  • 日志记录: 详细的任务执行日志

项目结构

lottery/
├── backend/                # 后端代码
│   ├── app/
│   │   ├── api/           # API 路由
│   │   │   ├── endpoints/ # 基础API端点
│   │   │   └── v1/        # API版本1
│   │   ├── core/          # 核心配置
│   │   ├── models/        # 数据模型
│   │   ├── schemas/       # 数据验证
│   │   └── services/      # 业务逻辑
│   │       ├── analysis_service.py      # 基础分析服务
│   │       ├── advanced_analysis.py     # 高级分析服务 ⭐
│   │       └── prediction_service.py    # 预测服务 ⭐
│   ├── requirements.txt   # 依赖包
│   ├── main.py           # 入口文件
│   ├── scheduler.py      # 定时任务调度器 ⭐
│   └── update_lottery.py # 数据更新脚本
├── frontend/              # 前端代码
│   ├── src/
│   │   ├── api/          # API 接口
│   │   ├── assets/       # 静态资源
│   │   ├── components/   # 组件
│   │   ├── router/       # 路由配置
│   │   ├── views/        # 页面
│   │   │   ├── AdvancedAnalysis.vue  # 高级分析页面 ⭐
│   │   │   ├── NumberGenerator.vue   # 一键下单页面 ⭐
│   │   │   └── Prediction.vue        # 预测页面 ⭐
│   │   ├── App.vue       # 根组件
│   │   └── main.js       # 入口文件
│   ├── package.json      # 依赖配置
│   └── vite.config.js    # Vite 配置
└── README.md             # 项目文档

开发环境要求

  • Python 3.8+
  • Node.js 16+
  • MySQL 8.0+ 或 PostgreSQL 12+
  • npm 或 yarn

安装和运行

快速启动 推荐

使用一键启动脚本(推荐方式):

# 确保已安装Python 3.8+和Node.js 16+
python start_system.py

脚本会自动:

  • 检查Python版本和依赖
  • 检查数据库连接
  • 询问是否启动定时任务
  • 启动后端服务端口8000
  • 启动前端服务端口5173
  • 启动定时任务调度器(可选)
  • 显示访问地址和使用说明

手动启动

后端

  1. 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
  1. 安装依赖
cd backend
pip install -r requirements.txt
  1. 配置数据库
  • 创建 MySQL/PostgreSQL 数据库
  • 修改 backend/app/core/database.py 中的数据库连接配置
  1. 启动服务
uvicorn main:app --reload --host 0.0.0.0 --port 8000

前端

  1. 安装依赖
cd frontend
npm install
  1. 启动开发服务器
npm run dev
  1. 构建生产版本
npm run build

定时任务 新功能

cd backend
python scheduler.py

使用说明

定时任务系统 新功能

自动任务

系统提供两个定时任务:

  1. 每天早上6点 - 数据更新任务

    • 自动从API获取最新开奖数据
    • 更新双色球和大乐透数据
    • 检查历史投注的中奖情况
    • 记录详细执行日志
  2. 每天下午5点 - 拼盘推荐任务

    • 自动生成今日拼盘推荐
    • 使用集成预测算法
    • 生成4注推荐号码
    • 保存到数据库供前端显示

手动启动定时任务

cd backend
python scheduler.py

查看任务状态

  • 在一键下单页面查看定时任务状态
  • 显示下次执行时间
  • 显示今日推荐生成状态

任务日志

  • 日志文件:backend/lottery_scheduler.log
  • 包含详细的执行记录和错误信息

数据导入与更新说明

数据导入

  • 支持通过前端页面或API导入双色球、大乐透历史数据JSON格式
  • 导入时,系统会自动根据 open_time(开奖日期)升序排序,确保数据库 id=1 为最早的开奖数据。
  • 导入过程自动去重:只导入数据库中未出现过的开奖日期数据。
  • 支持 pandas DataFrame 或 JSON 文件导入。

数据自动/手动更新 新功能

  • 定时更新: 每天早上6点自动更新推荐
  • 前端更新功能: 在首页提供"补红蓝球煎饼"、"补大乐斗豆浆"、"补全场早点"三个按钮
  • API更新接口: 支持通过API接口更新数据
    • POST /api/v1/lottery/update/ssq - 更新双色球数据
    • POST /api/v1/lottery/update/dlt - 更新大乐透数据
    • POST /api/v1/lottery/update/all - 更新所有彩票数据
  • 更新逻辑:
    • 从聚合数据API自动获取最新开奖记录
    • 只插入数据库中未出现过的开奖日期(open_time 唯一性判断)
    • 插入顺序为开奖日期升序,保证历史数据先入库,最新数据最后入库
    • 实时显示更新结果和新增记录数量
    • 更新完成后自动刷新首页最新开奖信息
手动更新
cd backend
python update_lottery.py
自动定时更新
cd backend
python scheduler.py

系统会在每天凌晨6点自动检查并更新数据。

拼盘推荐系统 新功能

自动推荐

  • 定时生成: 每天下午5点自动生成
  • 智能算法: 使用集成预测算法
  • 多注推荐: 每次生成4注推荐号码
  • 类型轮换: 根据日期自动选择彩票类型

手动生成

  • 在一键下单页面点击"来一份拼盘"按钮
  • 实时生成推荐号码
  • 支持复制所有号码

推荐历史

  • 查看历史推荐记录
  • 显示中奖情况
  • 支持手动检查中奖

高级分析功能

  1. 进入"高级分析"页面
  2. 选择彩票类型(双色球/大乐透)
  3. 选择分析类型:
    • 遗漏值分析: 查看各号码的遗漏期数
    • 和值分析: 分析红球和值的分布规律
    • AC值分析: 邻号差值分析
    • 质合比分析: 质数与合数的比例分析
    • 012路分析: 除3余数分析
    • 跨度分析: 最大最小号码差值分析
    • 综合分析: 多维度数据整合分析

智能预测功能

  1. 进入"智能预测"页面
  2. 选择彩票类型
  3. 选择预测方法:
    • 机器学习预测: 基于历史数据的AI预测
    • 模式预测: 基于统计模式的预测
    • 集成预测: 多方法综合预测
  4. 设置训练参数
  5. 查看预测结果

API文档

启动后端服务后,访问 http://localhost:8000/docs 查看完整的API文档。

常见问题

定时任务相关

Q: 定时任务没有执行? A: 检查以下几点:

  1. 确保定时任务进程正在运行
  2. 检查日志文件 backend/lottery_scheduler.log
  3. 确认系统时间正确
  4. 检查数据库连接是否正常

Q: 如何修改定时任务时间? A: 编辑 backend/scheduler.py 文件中的时间设置:

schedule.every().day.at("06:00").do(self.update_lottery_data_job)
schedule.every().day.at("17:00").do(self.generate_daily_recommendations_job)

Q: 如何查看任务执行日志? A: 查看日志文件:

tail -f backend/lottery_scheduler.log

数据更新相关

Q: 数据更新失败? A: 检查以下几点:

  1. 网络连接是否正常
  2. API密钥是否有效
  3. 数据库连接是否正常
  4. 查看后端日志获取详细错误信息

Q: 如何手动更新数据? A: 可以通过以下方式:

  1. 前端页面点击更新按钮
  2. 调用API接口
  3. 运行更新脚本:python update_lottery.py

拼盘推荐相关

Q: 今日推荐没有生成? A: 检查以下几点:

  1. 定时任务是否正常运行
  2. 是否有足够的历史数据
  3. 预测模型是否训练完成
  4. 查看日志文件获取错误信息

Q: 如何手动生成推荐? A: 在一键下单页面点击"来一份拼盘"按钮即可手动生成。

更新日志

v1.1.0 (2024-01-XX)

  • 新增定时任务系统
  • 新增每日拼盘推荐功能
  • 新增任务状态监控
  • 优化一键下单页面
  • 🐛 修复图表显示问题
  • 📝 更新使用说明

v1.0.0 (2024-01-XX)

  • 🎉 初始版本发布
  • 基础数据管理功能
  • 统计分析功能
  • 高级分析功能
  • 智能预测功能
  • 前端可视化界面

贡献指南

欢迎提交Issue和Pull Request来改进这个项目。

许可证

MIT License