mottery/README.md

222 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 彩票数据分析系统
## 项目概述
本项目是一个彩票数据分析系统,支持双色球和大乐透的数据管理、统计分析和智能选号功能。系统采用前后端分离架构,提供直观的用户界面和强大的数据分析能力。
## 技术栈
### 后端
- 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` 文件
- 支持双色球和大乐透两种彩票的数据更新