# 验收标准:07-交易记录本地存储(SQLite)+ 策略关联 ## 验收标准线 1. **两表落地**:store.db 存在 trade_orders(order_id 主键 + insert_ts 派生列)+ trade_fills(trade_id 主键、order_id 关联委托)两表;**两表均无 strategy_id / holding_id 列**(零冗余,Q3 老师定稿); 2. **同步落库**:启动预热 + 60s 定时同步今日 orders+trades 入库;UPSERT 幂等(重复同步不产生重复行、已存在委托状态/成交量覆盖更新); 3. **策略归属推导(FK 链)**:查询时委托时间 join strategy_holdings 生命周期窗口(created_at ≤ t < closed_at)得到策略/持仓归属;一码多策略取份额最大;无命中=未关联;历史委托归属稳定(清仓/删策略转历史不删行); 4. **本地历史查询**:trades/history 端点按 { start, end, code, strategyId, direction } 过滤返回 { orders, fills }(策略过滤走 FK 链 join); 5. **前端**:交易记录 tab 加策略过滤下拉(全部/各策略/未关联);历史范围展示本地库数据(不再「接口开发中」占位);今日仍走 QMT 实时 + 写穿本地; 6. **不回归**:今日实时展示(单表合并/费用/排序/展开)与持仓/策略/行情/连接配置功能正常; 7. **测试隔离**:回归测试在独立数据目录(ODL_TEST_DATA_DIR)执行,真实数据目录无写操作(技术约束-011)。 ## 验收方法 - 独立数据目录(ODL_TEST_DATA_DIR)构造今日委托/成交样例 → 启动插件 → 确认同步落库、UPSERT 幂等(重复同步行数不变、状态覆盖); - 构造持仓生命周期样例(当前持仓 + 已清仓)→ 确认策略归属推导正确(时间窗口命中、一码多策略取份额最大、未关联兜底); - API 实测:trades/history 按时间段/code/策略/方向过滤返回正确; - 前端:策略过滤下拉生效(今日实时 + 历史本地);历史范围展示本地数据; - 回归:今日实时展示与现有功能正常; - 手动核对真实数据目录:store.db 中 trade_orders/trade_fills 持续积累,无 JSON 文件新生。 ## 验收目标 - 交易记录本地持久化闭环:当日实时 + 跨日历史本地可查; - 外键链策略关联正确:按策略过滤 / 复盘交易就绪(R-007 Q10 落地); - 设计约束同步落地:数据存储设计.md §10 + 技术方案约束新增条目。