docs: 归档任务 #120
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# #120 减少采购流程重复前台查询并补充分段耗时
|
||||
|
||||
- 工单号:#120
|
||||
- 类型:缺陷修复 / 性能优化
|
||||
- 父级:#1 Client 拼多多任务采集与采购客户端
|
||||
- 版本:Client 真实采购安全闭环
|
||||
- 状态:待用户验收
|
||||
- 日期:2026-08-10
|
||||
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/120>
|
||||
- 实现提交:`59de08b`
|
||||
|
||||
## 背景与目标
|
||||
|
||||
真机一次 `app_current()` 约耗时 10.641 秒,而采购普通状态读取在多个安全步骤
|
||||
重复调用它,导致商品页、规格面板、颜色和尺码操作之间出现十秒级停顿。
|
||||
|
||||
目标是在不削弱最终下单安全核验和价格门禁的前提下,省去可靠 PDD 控件树场景
|
||||
中的重复前台查询,并记录颜色、尺码和状态读取的独立耗时。
|
||||
|
||||
## 最终方案
|
||||
|
||||
采购普通 `read_state()` 先读取最新控件树。控件树中至少有 3 个 PDD 包节点时,
|
||||
直接以 PDD 包名完成页面分类;节点不足时仍调用 `app_current()` 兜底。最终
|
||||
`submit_order_once()` 保留原有独立前台查询,因此高风险点击门禁不变。
|
||||
|
||||
性能日志新增三个阶段:
|
||||
|
||||
- `purchase_read_state`:一次采购状态读取;
|
||||
- `purchase_select_color`:指定颜色选择;
|
||||
- `purchase_select_size`:指定尺码选择。
|
||||
|
||||
实现与工单方案一致。没有修改采集算法、采购规格匹配、价格解析、最高价格门禁、
|
||||
数据库或 Admin 接口。
|
||||
|
||||
## 改了哪些文件
|
||||
|
||||
- `client/src/pdd_u2_purchase_adapter.py`:控件树优先状态读取和分段计时。
|
||||
- `client/test/test_pdd_u2_purchase_adapter.py`:前台查询次数、安全门禁和计时测试。
|
||||
- `docs/client/06-quality-security.md`:记录采购状态读取的性能与安全边界。
|
||||
|
||||
## 验收结果
|
||||
|
||||
- [x] 可靠 PDD 控件树下普通状态读取不调用 `app_current()`。
|
||||
- [x] 归属不明确的控件树仍调用 `app_current()` 兜底。
|
||||
- [x] 最终提交点击前仍独立调用一次 `app_current()`。
|
||||
- [x] 颜色、尺码仍使用原有精确匹配逻辑。
|
||||
- [x] 性能日志能够区分状态读取、颜色选择和尺码选择。
|
||||
- [x] 价格超过上限仍在不可逆标记和下单点击前停止。
|
||||
- [ ] 等待用户真机比较优化后的等待时间。
|
||||
|
||||
## 测试
|
||||
|
||||
从 `client` 目录执行:
|
||||
|
||||
```powershell
|
||||
C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_u2_purchase_adapter.py"
|
||||
C:/Python310/python.exe -m unittest discover -s test -p "test_purchase_task_service.py"
|
||||
C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"
|
||||
```
|
||||
|
||||
结果:采购 Adapter 22 项、PurchaseTaskService 11 项、Client 全量 346 项通过。
|
||||
|
||||
未验证到的部分:没有运行新的真机采购任务,没有执行真实下单或支付;需要用户
|
||||
通过 `client/data/logs/task_performance.jsonl` 比较三个新增阶段的真实耗时。
|
||||
Reference in New Issue
Block a user