diff --git a/docs/40-前端验收清单.md b/docs/40-前端验收清单.md index d00c7d9..17da9a3 100644 --- a/docs/40-前端验收清单.md +++ b/docs/40-前端验收清单.md @@ -22,6 +22,7 @@ | 0-4 | **虚拟资金账户** | `python -m tools.seed_sim_account_demo` | 客户 9001 开 10 万初始资金 + 2 只持仓。
**不跑这步,`/customer/dashboard/` 与 `/customer/cash-ledger/` 必然打不开**(404「客户未开户」)✅实测 | | 0-5 | 风控 Agent 配置 | `python tools/publish_risk_agent_config.py` | `risk_overview`/`risk_search`/`risk_evidence` 三个工具生效 ✅实测 | | 0-6 | **Agent Worker(必开!)** | `python -m app.worker` | **不启动它,所有客服对话都会"超时"** —— 见下方说明 | +| 0-7 | **场内行情同步** | `python tools/sync_market_prices.py` | 下单的硬前置。**不跑它:只有 2 只产品有行情,其余下单直接 503**;行情过期后同理(见下方说明) | ### ⚠️ 0-6 为什么是"必开"而不是"必停" @@ -36,12 +37,27 @@ Agent 请求是**三段式**:API 受理(返回 202)→ **Worker 领单执 排查第一步永远是:查 `agent_run` 最新那行的 `status` 是不是 `queued`。 +### ⚠️ 0-7 为什么下单前必须跑行情同步 + +`fin_market_price` 是下单的硬前置:`TradeService` 要求该产品在这张表里有 +`close_price > 0`、`total_fund_shares > 0`,且 `source_updated_at` 落在 `MAX_QUOTE_AGE` 内。 +**行情过期后没有任何自动刷新机制** —— 表现是下单全线 `503 FUND_QUOTE_UNAVAILABLE`, +而错误信息只说"某产品行情已过期",看不出根因。 + +跑一次 `python tools/sync_market_prices.py` 同时解决两件事: +补齐行情(原本只有 2 只有)+ 把时间戳刷到当前(让新鲜度校验通过)。 + +> 数据源是**腾讯行情**(`qt.gtimg.cn`):东财的 push2 / push2his 两个行情域名在本环境 +> 实测连不上,而它的净值/概况域名正常 —— 即东财只有行情类接口不可达。 +> 总份额按「已有值 → 腾讯总市值推算 → 季度规模兜底」确定,都拿不到就跳过该产品。 + ```powershell # 一次性把前置跑齐(两个终端) python tools/seed_test_rbac.py python tools/set_user_password.py python -m tools.seed_sim_account_demo python tools/publish_risk_agent_config.py +python tools/sync_market_prices.py # ← 下单前必跑 # 终端 1:API python -m uvicorn app.main:app --host 127.0.0.1 --port 8000