58 lines
5.8 KiB
Markdown
58 lines
5.8 KiB
Markdown
# 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、数据库或消息契约。
|