# 185 Admin:蝦皮商品支持批量创建 PDD 采集任务 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#15 Admin 四模块可用闭环 - 状态:已完成 - 日期:2026-08-12 - Gitea 工单: ## 背景与目标 蝦皮商品关联 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 领取本次创建的任务。 ## 相关提交 - `07ca1b0` feat: 支持蝦皮批量创建 PDD 采集任务 (#185)