# 切片 05:集合竞价、题材库、人气热榜与龙虎榜 > 基线:`814e757`(切片 04) > 回档标签:`xiaobai-preservation-slice-05-20260731` > 结论:源码、API、数据库、真实页面和全量回归通过;最终视觉仍等待全站人工验收 ## 1. 原实现归位 本切片没有从`next/`取用代码,也没有重写计算、页面或接口。集合竞价、题材库和人气热榜原本 共享`MarketInsightsService`,其中竞价候选会直接调用人气榜热度数据,因此整体移动到公共行情 领域,避免拆出互相复制的实现;各页面入口仍按功能目录归位。 | 原位置 | 新的唯一实现位置 | 兼容方式 | |---|---|---| | `app/market_insights.py` | `app/backend/features/market/insights.py` | 根级模块导出同一类对象 | | `DashboardService`竞价入口 | `app/backend/features/auction/service.py` | `AuctionServiceMixin` | | `DashboardService`题材入口 | `app/backend/features/themes/service.py` | `ThemeServiceMixin` | | `DashboardService`人气入口 | `app/backend/features/popularity/service.py` | `PopularityServiceMixin` | | `DashboardService`龙虎榜及游资档案 | `app/backend/features/dragon_tiger/service.py` | `DragonTigerServiceMixin` | | 竞价、人气、龙虎榜持久化方法 | 对应功能目录的`repository.py` | `ReviewDatabase`继承原接口 | Tushare Provider 中`hot_money_profiles`与`dragon_tiger`继续保持切片02归位的唯一实现,没有为目录 形式再制造一套数据构造逻辑。 ## 2. 源码与接口等价 - `test_preservation_slice_market_insights.py`逐项比较22个市场洞察方法、8个页面服务方法、7个 Repository方法和2个Tushare方法,全部与根目录原版无位置信息AST一致。 - `DashboardService`与`ReviewDatabase`不再重复保留已移动方法;根级`market_insights`与新模块 暴露同一个`MarketInsightsService`类对象。 - 原版`8784`和迁移版`8785`使用同一数据库的独立副本,集合竞价、题材库、题材详情、人气热榜、 龙虎榜、游资档案和席位别名共7个真实API状态码及JSON一致。 - 题材详情在当前外部网络条件下两版均返回HTTP 400;差分只排除每次请求随机生成的 `request_id`,错误码与错误内容仍完全一致。 - 完整接口摘要见`api-diff.json`。 ## 3. 数据库差分 - 两个副本均为62个schema对象,哈希均为 `60a4e044f0ddb6502e44b45f65bedc1a0a31d4bd596f386d4ccfe153a6c8ddd1`。 - `auction_factors` 511914行、`popularity_factors` 232行、`lhb_institution_daily` 47行、 `seat_aliases` 0行、`stock_master` 5535行均逐行一致。 - 完整表计数与哈希见`database-diff.json`;运行数据库副本已在验收后删除,未提交凭据或正式数据。 ## 4. 真实浏览器检查 - 1920×1080日间模式检查集合竞价、题材库、人气热榜和龙虎榜四页;均无横向溢出,控制台无 错误或警告。 - 集合竞价载入30行重点候选;题材库载入394个题材及选中题材成分股;人气热榜载入3个摘要 模块和200行综合榜;龙虎榜按当前缓存显示既有不可用空态。 - 四页HTML、主JS、CSS及各自页面JS与根目录原版字节哈希一致。 - 截图SHA-256: - `app-light-auction-1920x1080.png`:`8065086c8f2b360aeb1004bd60429f3e2d7f1b8c872ec4a965e9a5d0c016b915` - `app-light-themes-1920x1080.png`:`80e1e41101497ee7213e1dadfaa4c9572a1c47b3495edd09e36745ccdb639402` - `app-light-popularity-1920x1080.png`:`614d6b7770f4e9ec72c059ab8a4129486df9eff5c4dd7e8279cc68ebcb80a36b` - `app-light-dragon-tiger-1920x1080.png`:`2f1e2ad3a9bc3874c73bae884fc8744177cef354c7176559da1453fab1f85993` ## 5. 自动验证与保留边界 | 验证 | 结果 | |---|---:| | `python -m unittest discover -s tests -q` | 258项通过 | | `python -m unittest tests.test_preservation_slice_market_insights -q` | 6项通过 | | `npx.cmd playwright test --reporter=dot` | 45项通过 | | `git diff --check` | 通过 | - 竞价、人气和龙虎榜因子同时服务切片06智能选股,迁移后仍由`ReviewDatabase`原方法名暴露。 - 前端资产保持原位置,切片10再按页面职责归档;本切片没有改DOM、CSS、动画或交互。 - 没有删除待定代码、没有修改根目录正式数据库、没有切换Docker/NAS。