docs: 归档任务 #119
This commit is contained in:
@@ -0,0 +1,67 @@
|
|||||||
|
# #119 下单后等待5秒自动进入只读核单闭环
|
||||||
|
|
||||||
|
- 工单号:#119
|
||||||
|
- 类型:缺陷修复
|
||||||
|
- 父级:#1 Client 拼多多任务采集与采购客户端
|
||||||
|
- 版本:Client 真实采购安全闭环
|
||||||
|
- 状态:待用户验收
|
||||||
|
- 日期:2026-08-10
|
||||||
|
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/119>
|
||||||
|
- 实现提交:`b789b50`
|
||||||
|
|
||||||
|
## 背景与目标
|
||||||
|
|
||||||
|
真实采购点击一次下单按钮后,任务虽然已经保存为只准核单,但服务返回
|
||||||
|
`manual_review`,导致 Client 停止自动获取。下一轮只读核单不会自动开始,手机
|
||||||
|
可能一直停留在微信登录或支付页面。
|
||||||
|
|
||||||
|
目标是在不放松防重复下单门禁的前提下,让“下单后等待5秒 → 自动进入下一轮
|
||||||
|
只读核单”形成闭环。
|
||||||
|
|
||||||
|
## 最终方案
|
||||||
|
|
||||||
|
下单点击或点击结果不确定,并成功保存 `reconcile_purchase` 后,服务返回专用的
|
||||||
|
`reconcile_pending` 结果。UI 收到结果后保持自动获取运行,等待 5000 ms 再启动
|
||||||
|
下一轮。Dispatcher 现有优先级保证下一轮先处理待核单采购任务,不领取新任务。
|
||||||
|
|
||||||
|
等待期间用户可以停止自动获取,定时器会被取消;数据库中的不可逆标记和
|
||||||
|
`reconcile_purchase` 状态继续生效,下次恢复仍然只能核单。5秒仅用于页面跳转
|
||||||
|
缓冲,不能用来认定订单创建成功。
|
||||||
|
|
||||||
|
实现与工单方案一致;没有修改数据库、Admin 接口、核单匹配规则或结果格式。
|
||||||
|
|
||||||
|
## 改了哪些文件
|
||||||
|
|
||||||
|
- `client/src/purchase_task_service.py`:下单后返回 `reconcile_pending`。
|
||||||
|
- `client/src/pdd_ui_event.py`:5秒后调度下一轮只读核单。
|
||||||
|
- `client/test/test_purchase_task_service.py`:验证成功和异常点击均进入待核单。
|
||||||
|
- `client/test/test_task_dispatcher.py`:验证结果类型向协调层传递。
|
||||||
|
- `client/test/test_pdd_ui_event.py`:验证5秒调度及停止取消。
|
||||||
|
- `docs/client/06-quality-security.md`:记录稳定的下单后自动核单规则。
|
||||||
|
|
||||||
|
## 验收结果
|
||||||
|
|
||||||
|
- [x] 下单点击前仍先持久化不可逆标记。
|
||||||
|
- [x] 下单按钮最多点击一次,异常也不重新下单。
|
||||||
|
- [x] 保存 `reconcile_purchase` 后返回 `reconcile_pending`。
|
||||||
|
- [x] Client 等待5秒后自动启动下一轮。
|
||||||
|
- [x] Dispatcher 下一轮优先处理只读核单。
|
||||||
|
- [x] 等待期间用户停止会取消下一轮,任务仍保留为待核单。
|
||||||
|
- [x] 核单成功继续沿用 SQLite、Outbox 和 Admin 上报流程。
|
||||||
|
- [ ] 等待用户使用真机采购任务验证微信登录/支付页面后的自动核单。
|
||||||
|
|
||||||
|
## 测试
|
||||||
|
|
||||||
|
从 `client` 目录执行:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
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_task_dispatcher.py"
|
||||||
|
C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_ui_event.py"
|
||||||
|
C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"
|
||||||
|
```
|
||||||
|
|
||||||
|
结果:服务层11项、Dispatcher 12项、PDD UI事件46项、Client全量343项通过。
|
||||||
|
|
||||||
|
未验证到的部分:没有操作真实手机,没有执行真实下单、微信登录或支付;需要用户
|
||||||
|
真机确认5秒后能够从外部页面进入现有只读订单核对流程。
|
||||||
Reference in New Issue
Block a user