# 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 ```