Files
xiaobaifupan/app/docs/migration/evidence/slice-02

切片 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.pydatabase.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 再归位;行情服务只通过继承调用,没有复制。
  • 竞价、题材、人气、龙虎榜和问天对公共行情客户端的调用仍可通过兼容别名工作,待各自切片迁移。
  • 根级四个数据模块、DashboardServiceReviewDatabase 的兼容面在所有消费者完成迁移前保留。
  • 没有删除待定代码、没有改动根目录正式数据库、没有切换 Docker/NAS。