3.9 KiB
3.9 KiB
切片 02:公共行情、搜索、详情、图表与数据网关
基线:
4002f09(切片 01)
回档标签:xiaobai-preservation-slice-02-20260731
结论:源码、API、数据库、真实页面和浏览器回归通过;最终视觉仍等待全站人工验收
1. 原实现归位
本切片从原版副本机械移动公共行情纵向链路,没有从 next/ 取用代码,也没有修改计算逻辑。
| 原位置 | 新的唯一实现位置 | 原位置兼容 |
|---|---|---|
app/backend/application.py 的 30 个总览、搜索、详情、图表方法 |
app/backend/features/market/service.py |
DashboardService 继承 MarketServiceMixin |
app/database.py 的 11 个行情快照、搜索目录、同步记录方法 |
app/backend/features/market/repository.py |
ReviewDatabase 继承 MarketRepositoryMixin |
app/tushare_client.py |
app/backend/data/providers/tushare_client.py |
根模块为同一模块对象的兼容别名 |
app/ifind_client.py |
app/backend/data/providers/ifind_client.py |
根模块为同一模块对象的兼容别名 |
app/realtime_aggregator.py |
app/backend/data/realtime.py |
根模块为同一模块对象的兼容别名 |
app/chart_data_provider.py |
app/backend/features/market/charts.py |
根模块为同一模块对象的兼容别名 |
app/tools/move_class_methods.py 使用 Python AST 确定方法及装饰器的源码边界,只移动原文本片段。
该工具会在缺失方法、目标标记不唯一或源码无法解析时停止,供后续切片继续复用。
2. 等价证据
test_preservation_slice_market.py对 30 个业务方法和 11 个 Repository 方法逐项执行无位置信息 AST 比较,全部与根目录原版server.py、database.py完全相同。- Tushare、iFinD 和实时观察器文件与原版 SHA-256 完全相同;图表模块全部类和函数 AST 与原版相同, 仅内部导入改为新规范位置。
- 四个根级兼容模块与新模块共享同一类对象,旧导入和旧 monkeypatch 路径继续有效。
config/api.config.json、API路径、鉴权角色、错误结构和数据库 schema 未修改。app/static/未修改;七个核心 HTML/JS/CSS 文件哈希继续与原版相同。app-light-1280x720.png为真实8785服务完成载入后的日间模式截图,SHA-256 为a7ee1b682f68c418d792727dbc4534d7494dae4f4811cdbba208bd86dcf25d10。
3. 真实运行检查
- 迁移副本:
http://127.0.0.1:8785/,管理员登录成功。 - 总览:返回 2026-07-30 Tushare 已缓存行情,涨停 56 只。
- 搜索:搜索“中国平安”返回
601318,点击后打开完整个股详情、日 K、资金流、事件逻辑和复盘笔记。 - 页面:1280px 视口无横向溢出,数据加载状态正常,浏览器控制台 0 个错误。
- 分时:迁移版与原版在当前本机网络环境均返回同一个
Intraday chart request failed,因此记录为 既存外部接口状态,不是本切片差异;没有擅自增加降级或改变来源策略。
4. 自动验证
| 验证 | 结果 |
|---|---|
python -m unittest discover -s tests -q |
241 项通过 |
python -m unittest tests.test_preservation_slice_market -q |
6 项通过 |
| 行情、图表、实时与数据库专项集合 | 61 项通过 |
npx playwright test --reporter=dot |
45 项通过 |
python -m compileall -q ... |
通过 |
git diff --check |
通过 |
5. 保留边界
- 情绪计算仍在
application.py,切片 03 再归位;行情服务只通过继承调用,没有复制。 - 竞价、题材、人气、龙虎榜和问天对公共行情客户端的调用仍可通过兼容别名工作,待各自切片迁移。
- 根级四个数据模块、
DashboardService和ReviewDatabase的兼容面在所有消费者完成迁移前保留。 - 没有删除待定代码、没有改动根目录正式数据库、没有切换 Docker/NAS。