Admin:顺运宝待采集商品支持批量创建 PDD 采集任务 #153

Closed
opened 2026-08-11 14:50:08 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:缺陷 / 需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 / 顺运宝采购工作台后续
  • 阶段:PDD 数据采集
  • 状态:待验收

要解决什么

顺运宝列表中“PDD 待采集”和“PDD 采集失败”记录的复选框被禁用。当前复选框直接绑定 CanPurchase,只有“可创建采购任务”才能选择;但这两种状态的下一步实际是创建 PDD 采集任务,页面又没有批量入口,只能逐条打开详情操作。

2026-08-11 生产只读核对:店铺 qwg8fkb044 有 50 条待采集明细,对应 36 个 PDD 商品,无规格缺失、无进行中的采集任务。问题来自选择能力与批量动作模型不完整,不是数据或权限异常。

做什么 / 不做什么

  • 做:顺运宝页增加“创建 PDD 采集任务”批量按钮和确认弹窗;“PDD 待采集 / PDD 采集失败”记录可勾选;同一 PDD 商品由服务端去重,只建一条采集任务。
  • 做:采购任务仍只处理“可创建采购任务”记录;批量采集仍只处理可采集记录。前端按动作能力计数和组装 ID,服务端重新校验整批状态和客户端权限。
  • 做:允许选择不指定客户端或当前账号可见客户端;操作后保留店铺、阶段、订单号、页码筛选并显示创建/跳过统计。
  • 做:不可执行任何批量动作的记录继续禁用复选框,并通过 title/无障碍文本说明原因。
  • 不做:不改变 PDD 商品采集规则、任务领取接口、数据库结构、Client 行为和采购任务安全校验;不实现当前仍为骨架的顺运宝删除功能。

怎么做

  • admin/service/syb.go:为列表行分别输出 CanCollect、CanPurchase 和选择提示。
  • admin/service/shopee_pdd.go:增加顺运宝明细批量转 PDD 商品的服务;先去重/校验全部顺运宝 ID,再调用现有 CreatePddCollectTasksForUser,避免复制任务幂等、超时和客户端权限规则。
  • admin/handler/web/others.go、admin/handler/web/web.go:新增带 CSRF 的批量 POST 入口,保留列表筛选状态并返回现有采集结果文案。
  • admin/templates/syb/list.html:增加批量采集按钮、确认弹窗和执行客户端选择;复选框声明自身可用于 collect/purchase 的动作能力。
  • admin/static/js/app.js:通用勾选计数支持按动作能力过滤;采购弹窗只读取采购可用项,采集弹窗只统计并提交采集可用项。JavaScript 只搬运服务端输出的能力和 ID,不判断业务状态。
  • 更新 docs/admin/05-ui-specification.md 及相关 service/handler/template/JS 测试。

验收标准

  • “PDD 待采集”和“PDD 采集失败”行可以勾选;“PDD 采集中”等无批量动作状态仍禁用并说明原因。
  • 勾选可采集行后“创建 PDD 采集任务”可用,确认弹窗显示可采集明细数并可选择当前账号可见客户端或不指定。
  • 同一 PDD 商品关联多条顺运宝明细时只创建一条采集任务,结果文案准确。
  • 混合勾选时,采集动作只提交可采集项,采购动作只展示可采购项,不会把待采集商品带入采购确认。
  • 伪造不存在、不可采集或无权客户端参数时,服务端拒绝整批且不产生部分任务。
  • 操作后保留店铺、处理阶段、订单号和页码条件,并显示成功/跳过统计。
  • 单条详情创建采集任务、PDD 模块批量采集、采购任务创建和 Client 接口行为保持不变。
  • Go 1.23 build/test/vet 通过,模板和原生 JS 行为测试通过。

怎么验证

从 admin/ 执行:

$env:GOTOOLCHAIN="go1.23.0"
go test ./... -count=1
go vet ./...
go build ./...

自动化覆盖 pending/failed/collecting/purchase-ready 能力、PDD 商品去重、整批校验、用户客户端权限、筛选状态、模板数据属性���及采购/采集动作隔离。人工在顺运宝页筛选店铺 qwg8fkb044 和“PDD 待采集”,全选后核对弹窗数量与任务创建结果。

风险和回退

  • 任务创建涉及多条记录,服务端必须在任何写入前完成顺运宝明细状态和参数校验;实际创建继续复用现有事务与幂等逻辑。
  • 一个 PDD 商品可能关联多条顺运宝明细,必须按 PDD 商品 ID 去重,不能按 50 条明细创建 50 条重复任务。
  • 回退代码提交即可;本任务不改数据库结构。
## 基本信息 - 类型:缺陷 / 需求 - 父级大工单:#14 - 所属 MVP / 版本:#15 / 顺运宝采购工作台后续 - 阶段:PDD 数据采集 - 状态:待验收 ## 要解决什么 顺运宝列表中“PDD 待采集”和“PDD 采集失败”记录的复选框被禁用。当前复选框直接绑定 `CanPurchase`,只有“可创建采购任务”才能选择;但这两种状态的下一步实际是创建 PDD 采集任务,页面又没有批量入口,只能逐条打开详情操作。 2026-08-11 生产只读核对:店铺 `qwg8fkb044` 有 50 条待采集明细,对应 36 个 PDD 商品,无规格缺失、无进行中的采集任务。问题来自选择能力与批量动作模型不完整,不是数据或权限异常。 ## 做什么 / 不做什么 - 做:顺运宝页增加“创建 PDD 采集任务”批量按钮和确认弹窗;“PDD 待采集 / PDD 采集失败”记录可勾选;同一 PDD 商品由服务端去重,只建一条采集任务。 - 做:采购任务仍只处理“可创建采购任务”记录;批量采集仍只处理可采集记录。前端按动作能力计数和组装 ID,服务端重新校验整批状态和客户端权限。 - 做:允许选择不指定客户端或当前账号可见客户端;操作后保留店铺、阶段、订单号、页码筛选并显示创建/跳过统计。 - 做:不可执行任何批量动作的记录继续禁用复选框,并通过 title/无障碍文本说明原因。 - 不做:不改变 PDD 商品采集规则、任务领取接口、数据库结构、Client 行为和采购任务安全校验;不实现当前仍为骨架的顺运宝删除功能。 ## 怎么做 - `admin/service/syb.go`:为列表行分别输出 `CanCollect`、`CanPurchase` 和选择提示。 - `admin/service/shopee_pdd.go`:增加顺运宝明细批量转 PDD 商品的服务;先去重/校验全部顺运宝 ID,再调用现有 `CreatePddCollectTasksForUser`,避免复制任务幂等、超时和客户端权限规则。 - `admin/handler/web/others.go`、`admin/handler/web/web.go`:新增带 CSRF 的批量 POST 入口,保留列表筛选状态并返回现有采集结果文案。 - `admin/templates/syb/list.html`:增加批量采集按钮、确认弹窗和执行客户端选择;复选框声明自身可用于 collect/purchase 的动作能力。 - `admin/static/js/app.js`:通用勾选计数支持按动作能力过滤;采购弹窗只读取采购可用项,采集弹窗只统计并提交采集可用项。JavaScript 只搬运服务端输出的能力和 ID,不判断业务状态。 - 更新 `docs/admin/05-ui-specification.md` 及相关 service/handler/template/JS 测试。 ## 验收标准 - [x] “PDD 待采集”和“PDD 采集失败”行可以勾选;“PDD 采集中”等无批量动作状态仍禁用并说明原因。 - [x] 勾选可采集行后“创建 PDD 采集任务”可用,确认弹窗显示可采集明细数并可选择当前账号可见客户端或不指定。 - [x] 同一 PDD 商品关联多条顺运宝明细时只创建一条采集任务,结果文案准确。 - [x] 混合勾选时,采集动作只提交可采集项,采购动作只展示可采购项,不会把待采集商品带入采购确认。 - [x] 伪造不存在、不可采集或无权客户端参数时,服务端拒绝整批且不产生部分任务。 - [x] 操作后保留店铺、处理阶段、订单号和页码条件,并显示成功/跳过统计。 - [x] 单条详情创建采集任务、PDD 模块批量采集、采购任务创建和 Client 接口行为保持不变。 - [x] Go 1.23 build/test/vet 通过,模板和原生 JS 行为测试通过。 ## 怎么验证 从 `admin/` 执行: ```powershell $env:GOTOOLCHAIN="go1.23.0" go test ./... -count=1 go vet ./... go build ./... ``` 自动化覆盖 pending/failed/collecting/purchase-ready 能力、PDD 商品去重、整批校验、用户客户端权限、筛选状态、模板数据属性���及采购/采集动作隔离。人工在顺运宝页筛选店铺 `qwg8fkb044` 和“PDD 待采集”,全选后核对弹窗数量与任务创建结果。 ## 风险和回退 - 任务创建涉及多条记录,服务端必须在任何写入前完成顺运宝明细状态和参数校验;实际创建继续复用现有事务与幂等逻辑。 - 一个 PDD 商品可能关联多条顺运宝明细,必须按 PDD 商品 ID 去重,不能按 50 条明细创建 50 条重复任务。 - 回退代码提交即可;本任务不改数据库结构。
Author
Owner

实施完成,等待验收

实现提交:b527204 feat: 支持顺运宝批量创建采集任务 (#153)。

实现结果:

  • PDD 待采集、PDD 采集失败行可勾选并批量创建采集任务;
  • 采集与采购按服务端输出的动作能力分别计数、分别提交;
  • 同一 PDD 商品关联多条顺运宝明细时按商品 ID 去重;
  • 服务端重新推导阶段并校验指定客户端权限,非法参数整批拒绝;
  • 禁用复选框显示当前阶段不能批量操作的原因;
  • 返回列表时保留店铺、阶段、订单号和页码。

验证通过:GOTOOLCHAIN=go1.23.0 go test ./... -count=1、go vet ./...、go build ./...、node --check static/js/app.js。未在生产店铺 qwg8fkb044 实际创建任务,避免在尚未部署和人工确认前改变线上任务状态。

## 实施完成,等待验收 实现提交:`b527204 feat: 支持顺运宝批量创建采集任务 (#153)`。 实现结果: - PDD 待采集、PDD 采集失败行可勾选并批量创建采集任务; - 采集与采购按服务端输出的动作能力分别计数、分别提交; - 同一 PDD 商品关联多条顺运宝明细时按商品 ID 去重; - 服务端重新推导阶段并校验指定客户端权限,非法参数整批拒绝; - 禁用复选框显示当前阶段不能批量操作的原因; - 返回列表时保留店铺、阶段、订单号和页码。 验证通过:`GOTOOLCHAIN=go1.23.0 go test ./... -count=1`、`go vet ./...`、`go build ./...`、`node --check static/js/app.js`。未在生产店铺 `qwg8fkb044` 实际创建任务,避免在尚未部署和人工确认前改变线上任务状态。
Author
Owner

本地归档已完成:

  • 归档文档:docs/task/153-顺运宝批量创建PDD采集任务.md
  • 归档提交:08565d9 docs: 归档任务 #153

工单保持打开,状态为“待验收”;用户验收通过后再关闭并更新父工单 #14、#15。

本地归档已完成: - 归档文档:`docs/task/153-顺运宝批量创建PDD采集任务.md` - 归档提交:`08565d9 docs: 归档任务 #153` 工单保持打开,状态为“待验收”;用户验收通过后再关闭并更新父工单 #14、#15。
Author
Owner

用户于 2026-08-12 明确验收通过。已确认本地归档 docs/task/153-顺运宝批量创建PDD采集任务.md 存在,现关闭工单。

用户于 2026-08-12 明确验收通过。已确认本地归档 `docs/task/153-顺运宝批量创建PDD采集任务.md` 存在,现关闭工单。
ila closed this issue 2026-08-12 10:32:09 +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#153