3.0 KiB
3.0 KiB
185 Admin:蝦皮商品支持批量创建 PDD 采集任务
- 类型:需求
- 父级大工单:#14
- 所属 MVP / 版本:#15 Admin 四模块可用闭环
- 状态:已完成
- 日期:2026-08-12
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/185
背景与目标
蝦皮商品关联 PDD 商品后,原来只能逐个打开详情创建采集任务。本次增加列表批量入口,让采购员勾选多个蝦皮商品后一次创建对应的 PDD 采集任务,并可选择当前账号可见的执行客户端。
最终方案
- 在蝦皮列表顶部增加“创建 PDD 采集任务”按钮和确认弹窗,显示勾选数量及“执行客户端”,默认不指定客户端。
- 服务端批量读取所选蝦皮商品的当前 PDD 关联,按 PDD 商品 ID 去重,再复用既有 PDD 采集任务创建、防重、超时恢复和客户端权限校验。
- 未关联、蝦皮商品不存在、PDD 已删除、已采集和正常采集中的数据按原因统计并跳过。
- 保留列表筛选和页码,也保留商品详情中的单商品入口。
- 与建单方案相比,没有新增单独的 JavaScript 或专用任务 SQL:界面复用现有通用采集弹窗逻辑,任务创建复用既有 PDD 服务;蝦皮关联读取仍按方案落在 Repository,并采用一次批量参数化查询。
改了哪些
admin/templates/shopee/list.html:增加批量表单、按钮、确认弹窗和客户端选择。admin/handler/web/shopee.go、admin/handler/web/web.go:加载可选客户端,增加批量 POST 处理和路由。admin/repository/shopee.go:增加蝦皮—PDD 关联批量参数化查询。admin/service/shopee_pdd.go、admin/service/pdd.go:完成关联转换、PDD 去重、任务复用及跳过原因提示。admin/service/shopee_pdd_test.go、admin/main_test.go:覆盖去重、状态、权限和模板入口。docs/admin/01-requirements.md、docs/admin/05-ui-specification.md:同步产品和界面基线。
验收结果
| 验收标准 | 结果 |
|---|---|
| 蝦皮页提供批量入口,未勾选时不能提交 | 通过 |
| 弹窗显示数量及带标签的客户端选择,默认不指定 | 通过 |
| 多个蝦皮商品关联同一 PDD 时只创建一条任务 | 通过 |
| 各类不可创建状态按原因跳过并反馈 | 通过 |
| 待采集及既有规则允许恢复的商品可创建任务 | 通过 |
| 服务端拒绝不可见客户端且整批不创建 | 通过 |
| 保留筛选、页码和单商品入口 | 通过 |
| 无数据库迁移和 Client 接口变化,Go 1.23.0 全量验证通过 | 通过 |
测试
- 执行的命令:
$env:GOTOOLCHAIN='go1.23.0'; go vet ./...; go build ./...; go test ./... -count=1 - 结果:全部通过。
- 没验证到的部分:未在真实浏览器中进行人工点击验收,未部署到生产环境,也未让真实 Client 领取本次创建的任务。
相关提交
07ca1b0feat: 支持蝦皮批量创建 PDD 采集任务 (#185)