3.8 KiB
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支持顺运宝批量创建采集任务