Files
cmautobuy/docs/task/75-接入采购演练真机适配器.md
T

69 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 75 接入采购演练真机适配器
- 类型:需求
- 父级大工单:#1
- 所属 MVP / 版本:#2 Client 可运行任务闭环(MVP)
- 状态:已完成,用户验收通过
- 日期:2026-08-10
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/75
## 背景与目标
Client 已能领取采购任务,但主窗口没有注入正式采购 Adapter,
因此客户端不会声明采购能力,Admin 也不会把待领取的采购任务
派给它。本任务接入 uiautomator2 真机 Adapter,仅实现采购演练,
严格停在提交订单之前。
## 最终方案
- 新增 `U2PddPurchaseAdapter`,复用现有 `PddDeviceService` 的连接与会话管理。
- 打开并校验 PDD 商品链接,进入规格面板后精确选择颜色、尺码和数量。
- 从最新无障碍控件树反读商品号、已选规格、数量和单价,
交给现有 `PurchaseTaskService` 执行一致性与限价校验。
- 只支持已确认的 `color` 和 `size` 规格维度;出现未支持维度时
在点击规格前立即停止。
- 验证码、登录、风控和支付页统一视为安全阻断。
- `enter_confirmation()` 和 `stop_before_submit()` 只读取页面状态,
没有下单、提交或付款点击实现。
- 主窗口注入生产工厂,使已选 Android 设备的 Client 可声明
`dry_run` 采购能力。
## 改了哪些文件
- `client/src/pdd_u2_purchase_adapter.py`:uiautomator2 采购演练真机 Adapter。
- `client/src/ui_main.py`:将生产 Adapter 工厂注入 PDD 任务事件层。
- `client/test/test_pdd_u2_purchase_adapter.py`:覆盖演练正常路径和安全阻断。
- `client/test/test_pdd_ui_event.py`:验证主窗口已接入生产工厂。
- `docs/client/02-architecture.md`、`docs/client/06-quality-security.md`:
同步真机 Adapter 边界与采购安全约束。
本任务没有修改数据库表结构或 Admin 接口。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| MainWindow 注入正式采购 Adapter 工厂 | 通过 |
| 有已选设备时可声明 `dry_run` 采购能力 | 通过 |
| 精确选择颜色、尺码、数量并反读校验 | 通过 |
| 价格以分为单位交给现有限价校验 | 通过 |
| 验证码、登录、风控、支付页安全停止 | 通过 |
| Adapter 不点击提交订单或付款 | 通过 |
| Client 全量回归测试 | 通过 |
## 测试
- 执行的命令:
- `C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"`
- `C:/Python310/python.exe -m py_compile src/pdd_u2_purchase_adapter.py src/ui_main.py`
- 使用项目现有三份规格面板 XML 执行页面、数量和单价解析检查。
- 结果:Client 全量 211 项测试通过;语法检查通过;三份 XML
均识别为确认面板,数量均为 1,单价分别为 1180、470 和 1288 分。
- **未验证到的部分**:未连接真实 Admin 和 Android 设备执行完整采购演练;
未对真实 PDD 页面的版本差异、库存变化和网络中断做实机验证。
按安全约束,没有也不应该执行真实提交订单或付款测试。
## 相关提交
- `7e90af0` 接入采购演练真机适配器