feat: 完整采集采购尺码候选 (#256)
This commit is contained in:
@@ -86,6 +86,13 @@ Client 应执行:
|
||||
6. 获取并核对订单编号和下单时间。
|
||||
7. 保存本地结果并提交 Admin。
|
||||
|
||||
规格选择先按页面原文精确匹配,再允许繁体、简体等价文字唯一匹配;等价候选不唯一时
|
||||
必须停止。若商品正确、颜色已经可靠选中,但目标尺码在完整可购买列表中确实不存在,
|
||||
Client 应只读遍历当前颜色的全部第二规格,保留规格名称、页面原文、可用状态和页面顺序,
|
||||
生成稳定候选编号及快照哈希,交给后续受审计的规格解析流程。遍历未到边界、页面丢失、
|
||||
候选发生变化,或页面中其实存在目标尺码但点击确认失败时,仍按普通采购失败处理,不能
|
||||
请求远端猜测。本阶段候选只保存在当前执行内存,不写入 SQLite、日志或控件树产物。
|
||||
|
||||
地址更新只允许替换程序生成的末尾标记,不能截断真实地址主体。地址入口、修改按钮、
|
||||
详细地址输入框、保存按钮或保存结果任一项不唯一、不完整或无法回读时,任务必须在
|
||||
不可逆标记写入前失败并停止。姓名、手机号、完整地址和原始控件树只用于本次设备会话,
|
||||
|
||||
@@ -422,10 +422,19 @@ reconcile_purchase(task, run) -> PurchaseResult | ManualReview
|
||||
`ui_main.py` 注入工厂。Adapter 通过设备工作线程绑定的
|
||||
`PersistentPddDeviceService` 独占一次任务会话;同一设备可在 90 秒内复用底层
|
||||
Device 连接,但每次判断都重新读取当前包名和控件树。当前 Admin 下发的 `color` 和 `size`
|
||||
使用精确文字匹配;其他动态维度直接停止,不做相似匹配。原生 PDD
|
||||
先使用原文精确匹配,再使用繁体、简体规范化结果做唯一匹配;其他动态维度直接停止,
|
||||
不做模糊相似匹配。原生 PDD
|
||||
控件树不暴露商品编号,因此商品编号来自 Adapter 本次已校验并打开的
|
||||
PDD URL,包名和页面类型仍以最新控件树确认。
|
||||
|
||||
颜色已可靠选中但尺码确实不在页面时,采购 Adapter 调用
|
||||
`PddCollectService.collect_second_dimension_candidates`,复用采集侧经过真机验证的
|
||||
第二规格只读遍历。遍历完成后,Adapter 在内存中保留全部观察项及可用状态,并仅为
|
||||
可购买项按页面顺序生成 `c1`、`c2` 等候选和 `spec-resolution-v1` 快照哈希。只有完整
|
||||
遍历才能抛出 `PddPurchaseSpecResolutionRequired`;遍历不完整、页面丢失、没有可购买项,
|
||||
或完整列表中仍存在目标的精确/繁简等价文字,都返回普通采购错误。该 Adapter 不调用
|
||||
Admin,也不点击任何远端解析结果;网络请求和解析后复核属于后续工单。
|
||||
|
||||
部分 PDD 页面在点击商品页购买入口后直接进入包含规格和数量的
|
||||
订单确认页。Adapter 只点击这一次可逆入口;`enter_confirmation`
|
||||
和 `stop_before_submit` 只读确认“提交订单”等最终按钮存在,**不点击它**。
|
||||
|
||||
Reference in New Issue
Block a user