Files
cmautobuy/docs/task/153-顺运宝批量创建PDD采集任务.md
T
2026-08-11 15:00:21 +08:00

3.8 KiB

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

  • 类型:缺陷 / 需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 / 顺运宝采购工作台后续
  • 状态:已完成
  • 日期:2026-08-11
  • Gitea 工单:#153

背景与目标

顺运宝列表的复选框原本直接绑定 CanPurchase,导致“PDD 待采集”和“PDD 采集失败” 记录虽然下一步是创建采集任务,却无法勾选,只能逐条打开详情操作。生产只读核对显示, 店铺 qwg8fkb044 有 50 条待采集明细、对应 36 个 PDD 商品,问题来自批量动作能力缺失, 不是数据、账号权限或已有采集任务造成。

最终方案

列表行分别输出 CanCollect 和 CanPurchase,复选框通过 data-select-action 携带服务端 已经判断好的动作能力。PDD 待采集、PDD 采集失败行可参与批量采集;采购就绪行只参与 采购动作;其余阶段继续禁用,并显示不可批量操作的具体原因。

工具条增加“创建 PDD 采集任务”和确认弹窗,可不指定客户端或选择当前账号可见客户端。 原生 JavaScript 仅按动作能力统计和搬运已选 ID,不自行推导业务状态;混合勾选时,采集与 采购按钮各自只读取兼容记录。

服务端收到顺运宝明细 ID 后重新读取当前上下文并推导阶段,任何不存在或不可采集的明细 都会使整批请求在写入前失败。通过校验后按 PDD 商品 ID 去重,再复用现有 PDD 批量采集 服务的事务、状态占用、超时重试、任务幂等和客户端权限规则。

改了哪些

  • admin/service/syb.go:增加采集/采购动作能力和禁用原因。
  • admin/service/shopee_pdd.go:增加顺运宝明细批量校验、PDD 商品去重和任务创建入口。
  • admin/handler/web/others.go、admin/handler/web/web.go:增加批量 POST 处理及路由。
  • admin/templates/syb/list.html:增加批量采集按钮、确认弹窗、客户端选择和动作能力属性。
  • admin/static/js/app.js:勾选计数、按钮状态、采购弹窗和采集弹窗支持按动作能力隔离。
  • admin/service/*_test.go、admin/handler/web/others_test.go、admin/main_test.go、admin/syb_interaction_template_test.go:覆盖状态能力、去重、整批拒绝、客户端权限、筛选保留、模板和 JavaScript 静态约束。
  • docs/admin/05-ui-specification.md:记录顺运宝批量采集和复选框语义。

验收结果

验收标准 结果
PDD 待采集、采集失败可勾选,其他无批量动作阶段禁用并说明原因 通过
批量采集弹窗显示兼容明细数并支持可见客户端或不指定 通过
多条顺运宝明细关联同一 PDD 商品时只创建一个任务 通过
混合勾选时采集和采购动作互不混入 通过
不存在、不可采集或不可见客户端参数整批拒绝且不部分写入 通过
操作后保留店铺、阶段、订单号和页码 通过
单条采集、PDD 批量采集和采购任务既有规则不变 通过
Go 1.23 build/test/vet 和 JavaScript 语法检查通过 通过

测试

  • 执行的命令:在 admin/ 使用 GOTOOLCHAIN=go1.23.0 执行 go test ./... -count=1、go vet ./...、go build ./...,并执行 node --check static/js/app.js、git diff --check。
  • 结果:全部通过。
  • 没验证到的部分:未部署生产,也未对生产店铺 qwg8fkb044 实际创建采集任务;避免在用户上线确认前改变线上任务和 PDD 商品状态。未进行登录后的真实浏览器人工点击验收,模板渲染、动作隔离和服务端行为已由自动化测试覆盖。

相关提交

  • b527204 支持顺运宝批量创建采集任务