Files
kyugao bb3f8bd28d feat: 迭代03-05 交易记录接入、行情实时、QMT连接配置、data store 标准化
- R-004 QMT连接配置:多配置管理 + 会话头部快捷切换(03-QMT连接配置)
- R-005 WS盘中价格实时更新:服务端中转+缓存+前端轮询(04-WS盘中价格实时更新)
- R-006 策略数据 JSON data store 标准化(store.json/market.json/schema.json)
- R-007 交易记录接入:当日订单+成交单表合并(委托主行+展开成交明细)、时间段查询(今日/本周/本月+手动起止)、费用计算(佣金费率万m_dCommission+最低5元、印花税卖出万5、过户费双向万0.1)
- 架构治理:api 按领域拆分、component 目录、QmtHealthMonitor
2026-09-01 13:21:49 +08:00

5.0 KiB
Raw Permalink Blame History

迭代 03:验收标准

依据:PLAN-003 验收标准;产品约束-005/006、UI约束-001/002

验收标准线(全部满足才判定达成)

  1. 设置页出现「QMT 连接配置」子 tab(与通用设置/策略分组并列),配置 CRUD 完整可用(名称 + HTTP 地址);
  2. 激活某配置后数据源立即切到该地址(无需重启 DSH)——切换后用「测试连接」/持仓加载验证目标端点随激活配置变化;
  3. 默认配置行为正确:启动自动激活默认;重启后回到默认(即使运行中切过其他配置);列表为空时按 cordis qmtBaseUrl 兜底可用;
  4. 「测试连接」返回可达性 + 延迟;激活不强制先测试;
  5. 删除边界符合产品约束-005:删激活→自动切默认;删默认→默认转移列表第一条并激活;删最后一条被禁止(有提示);
  6. 会话头部 PTC 标签旁出现 QMT: <激活配置名> chip;点开菜单列出全部配置(激活项勾选);点选即激活并 toast 反馈;头部仅切换(无管理入口);
  7. 现有功能(分仓/策略/设置现有子 tab)不回归。

验收方法

  • 服务端:构建通过;curl 逐个验证 7 个端点(CRUD / 激活 / 默认 / 删除边界 / test);
  • 客户端:构建安装后重载页面——设置页走子 tab 全流程;头部 chip 与 PTC 标签并排显示并完成一次真实切换;
  • 需老师配合:提供第二个真实配置地址,完成「切换 → 测试连接 → 持仓加载」闭环验证与重启回默认验证。

验收目标

判定本迭代是否达成 R-004 定稿范围(产品约束-005/006 全量落地);通过后 R-004 移入已完成并归档。

验收进度(2026-08-29,服务端侧)

结果
构建(服务端+客户端 bundle 一次通过,bundle 已含新控件与端点代码
数据层逻辑单测(14 项:CRUD/激活/默认/删除边界/启动解析/cordis 兜底) 全部通过
线上 API 实测 待宿主重启/插件重载后进行(当前宿主进程仍运行旧 libqmt-connections 404
设置页子 tab / 头部 chip UI 验证 待重载页面 + 配合提供第二个真实配置地址
重启回到默认 / 删除边界 UI 实测 同上

下一步(需老师配合):重启 DSH Web(或重载插件)→ 刷新页面 → 按验收标准 1-7 逐条核验。

2026-08-29 第一次验收反馈(老师)

  • 现象:设置页 QMT 子 tab 报 unknown method: qmt-connections;会话头部未见 chip。
  • 定位:① 页面刷新只重载了客户端 bundle(新设置子 tab 已出现),服务端插件代码为宿主进程启动时加载,宿主未重启仍在运行旧 lib —— 端点 404 属预期过渡状态,需重启 DSH Web;② chip 原实现「无配置时隐藏」与 Q4 不迁移组合产生空态不可见问题,已修正为空配置态也显示 chip(菜单提示去设置添加,仅服务端未就绪时隐藏),重新构建通过(66127 bytes)。
  • 待办:老师重启 DSH Web 后按验收标准 1-7 核验。

验收结果(2026-08-29,宿主重启后线上实测)

宿主已重启,新服务端生效;老师已在设置页录入两个真实配置(GEMWIN=http://100.110.38.78:8610 / QMT_CYY=http://192.168.3.43:8610),激活与默认均为 GEMWIN。

验收标准 结果 证据
1. 设置页「QMT 连接配置」子 tab + 配置 CRUD 老师经 UI 实录 2 条配置(GEMWIN/QMT_CYY),列表/激活/默认状态正确返回
2. 激活立即切换(无需重启) 激活 QMT_CYY(不可达)→ 持仓立即 fetch failed(证明数据源已切走);切回 GEMWIN → 持仓立即恢复真实数据;全程无重启
3. 默认/启动行为 (逻辑单测覆盖) 单测:启动激活默认(覆盖上次激活)并回写 activeId;空列表回退 cordis qmtBaseUrl。线上最终激活=GEMWIN=默认,状态一致;下次重启可复核启动日志
4. 测试连接(可达性+延迟),激活不强制先测 GEMWIN:可达 726ms status=okQMT_CYY:不可达 fetch failed(10.1s);激活不可达配置无预检直接成功(符合 Q3)
5. 删除边界 线上实测:新建临时配置→激活→删除,removedWasActive=true、激活自动切回默认 GEMWIN;删默认转移/禁删最后一条由单测覆盖
6. 会话头部 chipPTC 旁、切换+toast 待老师目视确认 bundle 已含 chip 与 slot 注册代码(odl-qmt-switch order=-9);后端切换闭环已通,UI 呈现待确认
7. 现有功能不回归 持仓/策略等端点正常返回真实数据(大连热电等持仓)

过程发现(已记录):拼音映射表外的中文名(如「临时验证」)slug 兜底为通用名 qmt-conn(与策略 generateStrategyId 行为一致),后续可在 PINYIN_MAP 扩词或改用时间戳后缀增强区分度——不阻塞验收。

遗留待确认:验收标准 6(头部 chip UI 呈现),由老师刷新页面目视确认。