Files
a-share-analysis/docs/features/FEAT-MO-001-market-overview/development-summary.md
T

5.8 KiB
Raw Blame History

FEAT-MO-001 开发总结

原始开发需求

实现市场概览首屏:结论优先展示市场状态、驱动与风险,并支持综合、短线、中长线视角和规则、AI、混合、对照分析选择;用户可从指数和板块入口进入后续详细分析。

需求与范围变化

  • 数据源从早期“确定性模拟快照”调整为 TDX 只读直连,Nest API 访问本机 127.0.0.1:17710,Vue 不直接访问 TDX。
  • API 按摘要、指数、市场宽度、板块和资金拆分,避免把整个首屏塞入单个接口。
  • 当前 TDX 桥接已确认 get_market_snapshot、get_stock_list 和批量 get_market_data 可用;市场宽度、一级行业板块和成交额趋势改为真实 TDX 映射。主力净流入字段虽存在但当前实测为零值,盘中新闻无官方行情接口,因此两者延期到补充源功能。
  • MySQL、Redis、RocketMQ 和 AI 仍不进入本切片运行链路;它们保留为后续基础设施边界。

实际完成需求

  • 新增 TDX 配置校验、超时/响应大小限制、错误脱敏的 Node 客户端。
  • 新增市场概览 DTO、服务、控制器、OpenAPI 契约和前端 Axios API 文件。
  • 完成结论、驱动与风险、核心指数、市场宽度、板块、资金趋势模块,以及加载/错误/不可用状态。
  • 完成分析视角和分析引擎切换,本地保存用户偏好。
  • 真实 TDX 指数和摘要已通过本机隧道冒烟;未用指数或离线样本伪造缺失指标。
  • 真实 TDX 市场宽度、一级行业和成交额趋势已通过本机桥接冒烟;资金模块明确使用成交额口径,不宣称主力净流入。

修复缺陷

  • 修正 PRD 和实施计划中仍描述“模拟数据”的旧表述。
  • 避免单个 TDX 模块失败导致整页失败,改为五个模块并行、独立状态。
  • 对未注册桥接方法返回结构化原因,避免前端显示“实时”或空白数据。
  • 修复 Vue TypeScript 单文件组件未被 ESLint 正确解析的问题,并为 E2E 测试进程补齐必需的本机 TDX 配置边界。
  • 隔离应用外壳单测中的真实 Axios 请求,消除 JSDOM 网络错误噪声,保持页面测试只验证外壳职责。
  • 根据代码 Review 修复畸形 TDX 字段被折算为零、缺市场成交额误报三市、交易日错位跨日求和、空行业目录误报 fresh、前端隐藏 partial/delayed 警告和零变化使用上涨色等缺陷,并补齐对应回归测试。
  • 根据二次 Review 继续修复涨跌家数接受非整数、成交额受市场定义顺序影响、指数/板块跨交易日混排和后端从不生成 delayed 的边界;宽度增加核心指数日期参考,不新增基础设施或第三方依赖。
  • 根据第三轮独立 Review 修复 8 位畸形日期被误认为有效公历日期、成交额接受倒序日期对与日期/金额数组错位,以及服务测试依赖运行当天的问题。
  • 根据第四轮独立 Review 修复指数/板块未校验前一根 K 线日期的问题;非法、重复或倒序的前一日期不再生成涨跌信号。
  • 修复首屏更新时间直接展示 UTC ISO 字符串的问题:保留 API 的标准 UTC asOf 契约,Web 统一按 Asia/Shanghai 展示完整日期时间和时分秒。

未完成与延期项

  • 主力净流入的权限/数据质量验证、盘中新闻补充源、真实图表和口径仍延期。
  • “查看依据”抽屉、指数/板块详情页、AI 请求和用户体系另立功能。
  • 本地验证不代表生产 7×24 采集稳定性、商业授权或公网部署安全性。

关键提交

  • 9a965fa、d283ee3、6eb34b5、c2fa929、15a2500、27bc3c1、8261948、ff8ada8、49f6be9、7e4dcd9、ae2a7e0、c2fdfa6、b1310fb fix(FEAT-MO-001): 修正概览时间时区显示

验证证据

  • GitNexus 已完成提交前重新索引;上一修复提交的最终 staged 检测映射 66 个符号、21 条概览执行流并标记 critical。风险来自本功能修改核心概览服务、TDX 映射和前端数据面板,已由定向单测、HTTP/OpenAPI、前端状态回归、构建、浏览器视觉验证和 E2E 覆盖;未发现额外业务模块调用方。第三轮修复前又用 MCP 对 toTradeDate 和 mapTurnoverTrend 执行符号级影响分析,直接调用方仅在市场概览映射与测试范围。
  • API 冒烟:/breadth、/sectors、/funds 均返回 source=tdx,status=fresh;完整结果和耗时见 tdx-smoke-report.md。
  • 家庭 LAN 隧道二次复验:五个市场概览接口均为 fresh,指数 3 项、板块 8 项、成交额覆盖 3 个市场且交易日期完整;只保存脱敏统计。
  • 日期对齐与延迟状态修复后,后端 60/60、完整全仓门禁和家庭 LAN 五接口当日 fresh 复验通过;第三轮日期真实性与测试时钟修复后,后端增加至 63/63;第四轮相邻日期修复后,后端增加至 67/67。c2fdfa6 推送前后均执行完整 pnpm verify,契约、Lint、格式、类型、全部测试、构建和 E2E 均通过。
  • 前端单测、typecheck、build、后端 TDX/映射/服务/HTTP/OpenAPI 测试通过。
  • pnpm verify:e2e:4/4 通过(桌面和移动端各覆盖页面与健康契约)。
  • 浏览器桌面与 390px 移动视口验证无横向溢出,视角与引擎切换可用。
  • 五轮独立 Review 均已归档:前四轮发现的数据完整性、状态、日期真实性/顺序、测试时钟和前一根日期校验问题均已关闭;第五轮最终结论为 Ready to merge: Yes,无 Critical、Important 或 Minor 问题。
  • 开发 Schema 按用户确认跳过,沿用 v0.0.10 captured_empty 追溯边界,不读取生产库。
  • 本轮前端日期工具测试覆盖 UTC 到上海时区转换、无效值占位和两个概览组件接线;未修改后端、OpenAPI、数据库或消息契约。