Client:正式采购下单前更新地址采购编号标记 #173

Closed
opened 2026-08-12 09:31:35 +08:00 by ila · 2 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#1
  • 所属 MVP / 版本:#2 / Client 可运行任务闭环
  • 阶段:真实采购下单前处理
  • 状态:待验收

要解决什么

正式采购在 PDD 规格面板完成颜色、尺码和数量选择后,需要进入地址页面,将程序以前添加的地址末尾标记替换为本次采购编号,再返回规格面板继续现有下单流程。Admin 只调整采购编号内容,字段仍为现有任务编号,Client 必须原样使用 remote_task_id。

本功能只用于正式采购,不提供演练模式,不用于采集任务。工单、日志、测试和归档不得包含真实姓名、手机号、完整地址或原始无障碍 XML。

做什么 / 不做什么

  • 做:仅在 live 正式采购中执行地址更新。
  • 做:规格与数量选择完成后、不可逆标记和下单点击前进入地址面板。
  • 做:只识别程序生成的末尾标记,保留真实地址主体,生成“地址主体_采购编号”。
  • 做:清空地址输入框、填写新地址、保存、返回规格面板,并重新读取确认保存成功。
  • 做:地址入口、修改按钮、输入框、保存按钮或回读确认不唯一/失败时,立即停止本任务。
  • 做:返回规格面板后继续现有商品、规格、数量、价格和唯一提交按钮复核。
  • 不做:不在演练模式或采集任务中修改地址。
  • 不做:不记录、提交或展示真实个人信息和原始 XML。
  • 不做:不自动付款,不改变不可逆后只准核单的规则。
  • 不做:不修改 Admin 接口或采购编号字段。

已确认的实现方案

  1. 应用服务把现有 remote_task_id 作为地址标记传给 live Adapter;演练 Adapter 接口保持不变。
  2. live Adapter 在规格和数量已经精确验证后执行地址更新。
  3. 后缀替换仅匹配地址末尾程序标记;兼容旧 - / _ 标记,但不得在地址中间任意截断,避免破坏真实地址。
  4. 地址页面每一步均使用最新控件树定位唯一、可见、启用目标;保存后回读确认地址主体未变化且末尾为本次采购编号。
  5. 完成后返回规格面板并由现有流程重新校验规格、数量、价格和提交目标;失败保存为明确采购失败且不下单。
  6. 使用脱敏、最小 XML 固件或构造 XML 单元测试,不把现有含个人信息 XML 加入 Git。

预计修改:

  • client/src/pdd_purchase_adapter.py
  • client/src/pdd_u2_purchase_adapter.py
  • client/src/purchase_task_service.py
  • 对应 client/test 测试
  • docs/task/<工单号>-正式采购地址标记.md

验收标准

  • 只有正式采购执行地址更新,演练和采集不执行。
  • 使用现有 remote_task_id 生成末尾 _采购编号。
  • 旧程序标记可安全替换,真实地址主体保持不变。
  • 地址入口、修改、保存、回读任一步不可靠时,在不可逆阶段前停止且不下单。
  • 返回规格面板后继续现有最终复核、不可逆标记和单次提交门禁。
  • 代码、Git、日志、工单和测试不包含真实个人信息或原始 XML。
  • 精确测试、Client 全量测试和语法检查通过;不执行真机下单或付款。

验证方式

从 client/ 执行相关采购服务与 uiautomator2 Adapter 单元测试,再执行完整 test_*.py 和修改文件 py_compile。自动测试仅使用 Fake Device 与脱敏 XML,不连接真机、不执行真实下单或付款。

风险和回退

  • 地址属于履约关键信息,任何定位歧义或保存结果不确定都必须在不可逆阶段前停止。
  • 地址主体不得因分隔符误判而被截断;只允许处理末尾程序标记。
  • 返回规格面板后必须重新执行现有下单安全复核。
  • 回退本工单代码提交即可;不做数据库迁移和 Admin 接口变更。

实施记录

  • 实现提交:c719fd3
  • 归档提交:6127551
  • 本地归档:docs/task/173-正式采购下单前更新地址标记.md
  • 语法检查通过;Client 全量 432 项测试通过。
  • 四份本地真实 XML 仅做只读脱敏结构检查,五个页面目标均为唯一候选;原始 XML 未加入 Git、日志、工单或文档。
  • 未连接真机修改地址,未执行真实下单或付款;等待用户真机验收。
## 基本信息 - 类型:需求 - 父级大工单:#1 - 所属 MVP / 版本:#2 / Client 可运行任务闭环 - 阶段:真实采购下单前处理 - 状态:待验收 ## 要解决什么 正式采购在 PDD 规格面板完成颜色、尺码和数量选择后,需要进入地址页面,将程序以前添加的地址末尾标记替换为本次采购编号,再返回规格面板继续现有下单流程。Admin 只调整采购编号内容,字段仍为现有任务编号,Client 必须原样使用 `remote_task_id`。 本功能只用于正式采购,不提供演练模式,不用于采集任务。工单、日志、测试和归档不得包含真实姓名、手机号、完整地址或原始无障碍 XML。 ## 做什么 / 不做什么 - 做:仅在 `live` 正式采购中执行地址更新。 - 做:规格与数量选择完成后、不可逆标记和下单点击前进入地址面板。 - 做:只识别程序生成的末尾标记,保留真实地址主体,生成“地址主体_采购编号”。 - 做:清空地址输入框、填写新地址、保存、返回规格面板,并重新读取确认保存成功。 - 做:地址入口、修改按钮、输入框、保存按钮或回读确认不唯一/失败时,立即停止本任务。 - 做:返回规格面板后继续现有商品、规格、数量、价格和唯一提交按钮复核。 - 不做:不在演练模式或采集任务中修改地址。 - 不做:不记录、提交或展示真实个人信息和原始 XML。 - 不做:不自动付款,不改变不可逆后只准核单的规则。 - 不做:不修改 Admin 接口或采购编号字段。 ## 已确认的实现方案 1. 应用服务把现有 `remote_task_id` 作为地址标记传给 live Adapter;演练 Adapter 接口保持不变。 2. live Adapter 在规格和数量已经精确验证后执行地址更新。 3. 后缀替换仅匹配地址末尾程序标记;兼容旧 `-` / `_` 标记,但不得在地址中间任意截断,避免破坏真实地址。 4. 地址页面每一步均使用最新控件树定位唯一、可见、启用目标;保存后回读确认地址主体未变化且末尾为本次采购编号。 5. 完成后返回规格面板并由现有流程重新校验规格、数量、价格和提交目标;失败保存为明确采购失败且不下单。 6. 使用脱敏、最小 XML 固件或构造 XML 单元测试,不把现有含个人信息 XML 加入 Git。 预计修改: - `client/src/pdd_purchase_adapter.py` - `client/src/pdd_u2_purchase_adapter.py` - `client/src/purchase_task_service.py` - 对应 `client/test` 测试 - `docs/task/<工单号>-正式采购地址标记.md` ## 验收标准 - [x] 只有正式采购执行地址更新,演练和采集不执行。 - [x] 使用现有 `remote_task_id` 生成末尾 `_采购编号`。 - [x] 旧程序标记可安全替换,真实地址主体保持不变。 - [x] 地址入口、修改、保存、回读任一步不可靠时,在不可逆阶段前停止且不下单。 - [x] 返回规格面板后继续现有最终复核、不可逆标记和单次提交门禁。 - [x] 代码、Git、日志、工单和测试不包含真实个人信息或原始 XML。 - [x] 精确测试、Client 全量测试和语法检查通过;不执行真机下单或付款。 ## 验证方式 从 `client/` 执行相关采购服务与 uiautomator2 Adapter 单元测试,再执行完整 `test_*.py` 和修改文件 `py_compile`。自动测试仅使用 Fake Device 与脱敏 XML,不连接真机、不执行真实下单或付款。 ## 风险和回退 - 地址属于履约关键信息,任何定位歧义或保存结果不确定都必须在不可逆阶段前停止。 - 地址主体不得因分隔符误判而被截断;只允许处理末尾程序标记。 - 返回规格面板后必须重新执行现有下单安全复核。 - 回退本工单代码提交即可;不做数据库迁移和 Admin 接口变更。 ## 实施记录 - 实现提交:`c719fd3` - 归档提交:`6127551` - 本地归档:`docs/task/173-正式采购下单前更新地址标记.md` - 语法检查通过;Client 全量 432 项测试通过。 - 四份本地真实 XML 仅做只读脱敏结构检查,五个页面目标均为唯一候选;原始 XML 未加入 Git、日志、工单或文档。 - 未连接真机修改地址,未执行真实下单或付款;等待用户真机验收。
Author
Owner

实施范围补充

地址更新已经确认属于正式采购的稳定下单前步骤,因此除原预计代码和测试外,同步更新 docs/client/01-requirements.md 与 docs/client/02-architecture.md。仅补充 Client 既有流程说明,不修改 Admin 接口、数据库结构或 pdd_data 契约。

当前精确测试结果:采购服务 13 项、调度器 12 项、U2 采购 Adapter 28 项通过;均使用 Fake Device,未连接真机、未下单或付款。

## 实施范围补充 地址更新已经确认属于正式采购的稳定下单前步骤,因此除原预计代码和测试外,同步更新 `docs/client/01-requirements.md` 与 `docs/client/02-architecture.md`。仅补充 Client 既有流程说明,不修改 Admin 接口、数据库结构或 `pdd_data` 契约。 当前精确测试结果:采购服务 13 项、调度器 12 项、U2 采购 Adapter 28 项通过;均使用 Fake Device,未连接真机、未下单或付款。
Author
Owner

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:ad44f83。现关闭工单。

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:`ad44f83`。现关闭工单。
ila closed this issue 2026-08-13 15:58:35 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#173