Admin 已能创建包含 PDD 链接、目标动态规格、数量和人民币价格上限的采购任务,但 Client 目前只有采集任务执行器。若直接开放采购任务领取,任务会被标记为 claimed 后卡住。需要先建立一个只处理本地已保存采购任务的演练执行器,完成商品、规格、数量和价格核对,在最终提交订单前停止,并可靠生成可回传结果。
claimed
task_run
max_price_cent
dry_run
supported_types
CollectTaskService
PurchaseTaskService
AdminTask
purchase_result
mode=dry_run
QObject + moveToThread
预计修改:新增采购任务服务和 PDD 采购适配层文件;按最小范围调整任务模型、Repository/Outbox、事件层;增加对应单元测试、脱敏固件和 Client 基线文档。
collect
从 client/ 执行:
client/
C:/Python310/python.exe -m py_compile src/purchase_task_service.py $env:QT_QPA_PLATFORM="offscreen" C:/Python310/python.exe -m unittest discover -s test -p "test_purchase*.py" -v C:/Python310/python.exe -m unittest discover -s test -p "test_*.py" Remove-Item Env:QT_QPA_PLATFORM
使用脱敏控件树覆盖:正常演练、动态三维规格、价格超限、规格多候选/不存在、验证码、登录失效和未知弹窗。不得用真实下单验证。
PddPurchaseAdapter
options
验证:采购专项 6 项通过;Client 全量 193 项通过;语法检查与 PyQt5 离屏主窗口冒烟通过。
未验证:未连接真机;本工单按范围使用可注入 Mock Adapter 验证应用层和安全边界,不执行真实下单。
实现与归档已完成,等待用户验收。
311d55f feat: 实现采购任务安全演练 (#71)
4606193 docs: 归档任务 #71
docs/task/71-采购任务安全演练.md
用户已于 2026-08-11 明确验收通过。
eca9289
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
Admin 已能创建包含 PDD 链接、目标动态规格、数量和人民币价格上限的采购任务,但 Client 目前只有采集任务执行器。若直接开放采购任务领取,任务会被标记为
claimed后卡住。需要先建立一个只处理本地已保存采购任务的演练执行器,完成商品、规格、数量和价格核对,在最终提交订单前停止,并可靠生成可回传结果。做什么 / 不做什么
做
task_run。max_price_cent;多个候选、规格不存在、价格超限、验证码、登录失效、未知弹窗时停止。dry_run:到达最终提交订单前安全停止,不点击提交订单、不付款。不做
supported_types,不从 Admin 领取采购任务;测试从本地准备任务。已确认的实现方案
CollectTaskService分层,新建独立PurchaseTaskService;UI 不直接调用 uiautomator2、网络或 SQLite 长操作。AdminTask/ Repository 字段,PDD 目标规格保持 JSON 对象,不写死颜色尺码。purchase_result,明确记录mode=dry_run、确认规格、数量、价格和“未提交订单”。QObject + moveToThread;后台不访问 QWidget。预计修改:新增采购任务服务和 PDD 采购适配层文件;按最小范围调整任务模型、Repository/Outbox、事件层;增加对应单元测试、脱敏固件和 Client 基线文档。
验收标准
max_price_cent时停止,不进入最终提交步骤。collect,不会提前领取采购任务。怎么验证
从
client/执行:使用脱敏控件树覆盖:正常演练、动态三维规格、价格超限、规格多候选/不存在、验证码、登录失效和未知弹窗。不得用真实下单验证。
风险和回退
dry_run,不得用调试参数绕过。实施完成,准备提交
PurchaseTaskService,只处理本地已保存采购任务,不领取 Admin 任务。PddPurchaseAdapter窄接口;接口没有提交订单或付款方法,固定dry_run。options对象精确选择和复核,不写死颜色/尺码。collect。验证:采购专项 6 项通过;Client 全量 193 项通过;语法检查与 PyQt5 离屏主窗口冒烟通过。
未验证:未连接真机;本工单按范围使用可注入 Mock Adapter 验证应用层和安全边界,不执行真实下单。
实现与归档已完成,等待用户验收。
311d55f feat: 实现采购任务安全演练 (#71)4606193 docs: 归档任务 #71docs/task/71-采购任务安全演练.mddry_run,仅到订单确认页前停止;没有提交订单或付款入口用户已于 2026-08-11 明确验收通过。
eca9289