Files
lhbfx/docs/技术文档.md
2026-05-02 18:27:36 +08:00

145 lines
5.3 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.

# lhbfx 技术文档
## 1. 技术栈
- 前端Vue 3、TypeScript、Vite
- 后端FastAPI、PyMySQL、PyYAML、Requests、BeautifulSoup、ReportLab
- 数据库MySQL 8+
- 运行脚本PowerShell、Python scripts
## 2. 工程结构
```text
lhbfx/
├─ backend/
│ ├─ config.example.yaml
│ ├─ config.yaml
│ ├─ pyproject.toml
│ ├─ scripts/
│ │ ├─ init_db.py
│ │ ├─ run_api.py
│ │ ├─ import_ths_daily.py
│ │ ├─ rematch_traders.py
│ │ ├─ generate_warnings.py
│ │ ├─ after_market_update.py
│ │ └─ daily_report.py
│ └─ src/lhbfx/
├─ frontend/
│ ├─ package.json
│ ├─ vite.config.ts
│ └─ src/
├─ docs/
├─ start-dev.ps1
└─ README.md
```
## 3. 后端架构
### 3.1 应用入口
- `backend/scripts/run_api.py`:命令行启动入口。
- `backend/src/lhbfx/app.py`FastAPI 应用、API 路由、静态前端挂载、启动时数据检查与调度启动。
### 3.2 配置
- `backend/config.example.yaml`:共享配置模板。
- `backend/config.yaml`:本地运行配置,包含数据库、邮件、调度等信息。
- `backend/src/lhbfx/config.py`:配置模型与加载逻辑。
### 3.3 数据访问
- `backend/src/lhbfx/db.py`MySQL 连接与 cursor 上下文。
- `backend/src/lhbfx/schema.sql`:表结构。
- `backend/src/lhbfx/queries.py`:面向 API 的查询与聚合,包含摘要、游资详情、个股详情、关注池、股票搜索、预警查询等。
### 3.4 数据导入与处理
- `backend/src/lhbfx/pipeline.py`:龙虎榜导入、游资席位匹配、预警生成、指定交易日刷新。
- `backend/src/lhbfx/sources/tonghuashun.py`:同花顺龙虎榜数据源。
- `backend/src/lhbfx/sources/eastmoney.py`东方财富行情、K 线与个股资料兜底数据源。
- `backend/src/lhbfx/sources/tencent.py`:腾讯行情快照兜底数据源。
- `backend/src/lhbfx/sources/sina.py`:新浪 K 线兜底数据源。
### 3.5 盘后任务与日报
- `backend/src/lhbfx/after_market.py`:盘后更新编排,负责导入、匹配、预警、日报与邮件。
- `backend/src/lhbfx/scheduler.py`API 常驻调度,工作日 17:00 后尝试补齐当日数据。
- `backend/src/lhbfx/reporting.py`:日报数据聚合与邮件正文。
- `backend/src/lhbfx/pdf_export.py`PDF 日报生成。
- `backend/src/lhbfx/mailer.py`:邮件发送。
## 4. 前端架构
### 4.1 入口与状态
- `frontend/src/main.ts`Vue 应用入口。
- `frontend/src/App.vue`:页面路由状态、股票搜索、全局数据初始化。
- `frontend/src/composables/useDashboardData.ts`:统一封装 API 调用、选择状态、关注池派生数据与页面数据加载。
- `frontend/src/types.ts`API 响应类型。
### 4.2 页面组件
- `AppHero.vue`:顶部状态、导航与股票搜索。
- `HomeControlScreen.vue`:首页总控台,包含关注池流水与候选关注股票。
- `TraderDetailScreen.vue`:游资详情。
- `StockDetailScreen.vue`:个股详情容器、基础信息、预警入口、游资参与概览。
- `StockDetailKlinePanel.vue`:日 K、MA5、买卖点与预警标记。
- `StockActionTimelineChart.vue`:买卖力度趋势图。
- `WarningCenterScreen.vue`:预警中心。
- `home/CandidateWatchCard.vue`:候选关注股票卡片。
### 4.3 工具模块
- `frontend/src/utils/format.ts`:金额、涨跌、日期和预警标签格式化。
- `frontend/src/utils/stockDetailKline.ts`:个股 K 线面板的数据转换与坐标计算。
## 5. 主要数据流
1. 用户启动后端,`app.py` 加载配置、创建 FastAPI 应用,并启动盘后调度。
2. 前端 `useDashboardData.initialize()` 拉取摘要、状态、游资、预警、关注池和操作流水。
3. 首页筛选条件变化后,前端重新请求 `/api/actions`,并在本地派生关注池流水、候选关注列表和指标。
4. 用户选择个股时,前端请求 `/api/stocks/{stock_code}`后端聚合数据库数据、K 线、行情快照、游资操作和预警。
5. 盘后任务导入龙虎榜数据后,执行席位匹配、预警生成、日报生成与邮件发送。
## 6. API 概览
- `GET /api/summary`:系统摘要。
- `GET /api/pipeline/status`:导入与处理状态。
- `GET /api/traders`:游资列表。
- `GET /api/traders/{trader_id}`:游资详情。
- `GET /api/stocks/search`:股票搜索。
- `GET /api/stocks/{stock_code}`:个股详情。
- `GET /api/actions`:游资操作流水。
- `GET /api/watchlist`:关注池列表。
- `POST /api/watchlist`:加入关注池。
- `DELETE /api/watchlist/{stock_code}`:移出关注池。
- `GET /api/warnings`:预警列表。
- `POST /api/pipeline/rematch-traders`:重跑席位匹配。
- `POST /api/pipeline/generate-warnings`:重生成预警。
- `POST /api/pipeline/refresh-trade-date`:刷新指定交易日。
## 7. 生成物与清理规则
以下目录或文件属于生成物、本地依赖或运行产物,不应提交:
- `frontend/node_modules/`
- `frontend/dist/`
- `logs/`
- `__pycache__/`
- `*.pyc`
- `*.egg-info/`
清理时优先删除这些生成物;源码删除必须先确认无引用、无入口、无文档约定。
## 8. 验证命令
```powershell
# 前端类型检查与构建
cd frontend
npm run build
# 后端语法检查
cd ..
python -m compileall backend\src backend\scripts
```