From 93bbca88a83eae98c54b03561092ef65346ba711 Mon Sep 17 00:00:00 2001 From: chengma Date: Mon, 10 Aug 2026 01:09:16 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=BD=92=E6=A1=A3=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?#75?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/task/75-接入采购演练真机适配器.md | 68 ++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 docs/task/75-接入采购演练真机适配器.md diff --git a/docs/task/75-接入采购演练真机适配器.md b/docs/task/75-接入采购演练真机适配器.md new file mode 100644 index 0000000..0a08a88 --- /dev/null +++ b/docs/task/75-接入采购演练真机适配器.md @@ -0,0 +1,68 @@ +# 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` 接入采购演练真机适配器