docs: 更新市场排名验证与代码审查记录
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# 市场排名与 AI 选期代码审查问题记录
|
||||
|
||||
审查基线:`499b084`。记录日期:2026-07-28。
|
||||
|
||||
本文件记录静态代码审查发现的问题。当前 HAR 无法独立构建,修复后仍需在宿主工程完成编译和业务回归。
|
||||
|
||||
## 1. 市场排名空响应仍展示旧缓存
|
||||
|
||||
**状态:待修复;优先级:高**
|
||||
|
||||
`MarketRankingNodeComponent.updateCardData()` 命中 Tab 缓存后,仅在没有缓存时才用 HTTP 返回结果替换 `cardData`。当接口成功返回空数组时,旧榜单仍会显示,且空合约列表不会建立新的行情订阅,页面可能长期停留在旧数据。
|
||||
|
||||
- 证据:`src/main/ets/market-ranking/MarketRankingNodeComponent.ets:183-213`
|
||||
- 建议:将成功的 HTTP 响应视为权威结果;空数组应清空页面和对应缓存。非空响应可按新合约列表保留匹配的旧行情值。
|
||||
- 验证:先加载非空榜单,再让刷新接口返回空数组,页面应进入空状态且不再接收旧订阅回调。
|
||||
|
||||
## 2. HTTP 合约字段缺少运行时校验
|
||||
|
||||
**状态:待修复;优先级:高**
|
||||
|
||||
两个 Fetcher 都通过类型断言直接使用 JSON,未校验合约代码、市场和名称。市场排名点击处仅排除 `undefined`,无法拦截 `null` 或空字符串;AI 选期点击和行情订阅均未做防御。
|
||||
|
||||
- 证据:
|
||||
- `src/main/ets/market-ranking/MarketRankingDataFetcher.ets:47-51`
|
||||
- `src/main/ets/market-ranking/MarketRankingNodeComponent.ets:634-638`
|
||||
- `src/main/ets/ai-pick/AiPickDataFetcher.ets:102-108`
|
||||
- `src/main/ets/ai-pick/AiPickNodeComponent.ets:709-711`
|
||||
- 建议:在 Fetcher 边界过滤或拒绝非法数据;点击跳转前再次校验代码和市场均为非空字符串。
|
||||
- 验证:覆盖字段缺失、`null`、空字符串和错误数组结构,确保不崩溃、不发送非法 4106 请求。
|
||||
|
||||
## 3. 最新价精度被转换或固定
|
||||
|
||||
**状态:待修复;优先级:中**
|
||||
|
||||
行情客户端将价格字符串转换为 `number`。AI 选期随后固定保留两位小数,可能把三位或更多精度的合约价格舍入;市场排名也会丢失尾随精度。
|
||||
|
||||
- 证据:
|
||||
- `src/main/ets/node/clients/AiPickHqRequestClient.ets:122-130`
|
||||
- `src/main/ets/ai-pick/AiPickUtils.ets:161-163`
|
||||
- `src/main/ets/node/clients/MarketRankingHqRequestClient.ets:120-130`
|
||||
- 建议:保留行情层格式化后的价格字符串,或使用宿主统一的合约精度格式化能力。
|
||||
- 验证:选择整数、一位、两位和三位小数精度的合约,与宿主行情页逐项对比。
|
||||
|
||||
## 4. 多语言资源未覆盖
|
||||
|
||||
**状态:待修复;优先级:中**
|
||||
|
||||
市场排名和 AI 选期文案只存在于 base 中文资源中,`zh_CN`、`en_US` 未定义对应条目;本地卡片配置中的中文标题和说明还会优先于资源文案。
|
||||
|
||||
- 证据:
|
||||
- `src/main/resources/base/element/string.json:204-309`
|
||||
- `src/main/resources/zh_CN/element/string.json`
|
||||
- `src/main/resources/en_US/element/string.json`
|
||||
- `src/main/resources/rawfile/first_page_cards_config.json:96-140`
|
||||
- 建议:按仓库约定补齐三套字符串资源,并明确静态卡片配置的本地化策略;大数单位等展示文本也应纳入资源管理。
|
||||
- 验证:切换中文和英文系统语言,检查标题、Tab、空状态、说明弹层、主力标签和数值单位。
|
||||
|
||||
## 测试缺口
|
||||
|
||||
当前测试仅包含模板示例。后续至少应覆盖缓存后空响应、非法合约字段、异步旧回调失效、价格精度,以及市场排名指标与周期参数映射。
|
||||
Reference in New Issue
Block a user