Admin:蝦皮商品支持批量创建 PDD 采集任务 #185

Closed
opened 2026-08-12 16:04:44 +08:00 by ila · 1 comment
Owner

基本信息

  • 类型:需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 Admin 四模块可用闭环
  • 阶段:蝦皮商品批量采集

要解决什么

蝦皮商品已经通过商品目录或人工方式关联 PDD 商品时,目前只能逐个打开商品详情创建采集任务。采购员需要在蝦皮列表勾选多个商品,一次创建对应的 PDD 采集任务,并能够选择执行客户端。

做什么 / 不做什么

  • 做:在蝦皮页顶部“导入记录”后增加“创建 PDD 采集任务”按钮。
  • 做:复用现有列表勾选框,弹窗显示选中数量并提供有可见标签的执行客户端下拉框,默认不指定。
  • 做:服务端按蝦皮商品 ID 查当前有效 PDD 关联,再按 PDD 商品 ID 去重。
  • 做:只为待采集、采集失败或采集超时且没有有效任务的 PDD 商品创建任务。
  • 做:统计并反馈未关联、PDD 已删除、已采集、正常采集中/已有任务等跳过原因。
  • 做:管理员可选全部当前客户端;采购员只能选当前归属自己的客户端,服务端重新���验可见范围。
  • 做:保留商品详情的单商品创建入口。
  • 不做:不自动采集、不创建采购任务、不修改 PDD 关联和规格映射。
  • 不做:不新增数据库迁移,不改变 Client 接口,不增加表格行内按钮。

怎么做

  • admin/templates/shopee/list.html:增加隐藏批量表单、顶部按钮和客户端选择确认弹窗,保留当前筛选和页码。
  • admin/handler/web/shopee.go 与路由:增加批量 POST 入口,解析 IDs 和 client_id,调用 Service 后回到原筛选。
  • admin/service/shopee_pdd.go 或现有采集服务:按蝦皮 ID 读取有效 PDD 关联、去重并复用现有任务创建、防重、超时判断与客户端授权。
  • admin/repository/shopee.go:增加批量读取蝦皮商品当前 PDD 关联所需的参数化查询;不复制数据。
  • admin/static/js/app.js:复用现有采集弹窗计数和表单关联机制,不加入业务判断。
  • 同步相关测试及 docs/admin/01-requirements.md、05-ui-specification.md。

验收标准

  • 蝦皮页顶部显示“创建 PDD 采集任务”,未勾选时不能提交。
  • 弹窗显示已选择数量和“执行客户端”可见标签,默认不指定。
  • 同一 PDD 商品被多个蝦皮商品关联时只创建一条采集任务。
  • 未关联、已删除、已采集、正常采集中或已有有效任务的商���按原因跳过并���示统计。
  • 待采集、采集失败以及可恢复的采集超时商品能够创建任务。
  • 指定客户端时执行服务端可见范围校验;伪造他人客户端被拒绝且不创建任务。
  • 操作后保留蝦皮列表全部筛选和页码,单商品详情入口行为不变。
  • 不新增迁移、不改变 Client 接口,固定 Go 1.23.0 全量验证通过。

怎么验证

从 admin/ 使用固定 Go 1.23.0 执行 go vet ./...、go build ./...、go test ./... -count=1。定向测试覆盖 PDD 去重、各状态跳过、超时恢复、客户端权限、表单状态保持和模板入口。

风险和回退

  • 风险:重复任务导致多个 Client 同时采集。控制:在数据库事务内复用现有状态和有效任务防重。
  • 风险:浏览器提交伪造客户端或蝦皮 ID。控制:服务端按当前用户可见范围和最新数据库状态重新校验。
  • 风险:同一 PDD 对应多个蝦皮商品导致重复。控制:创建前按 PDD 商品 ID 去重。
  • 回退:移除批量路由、模板入口和 Service 包装;无数据库迁移和数据回写。

实施记录(2026-08-12)

  • 状态:已完成,待用户验收。
  • 实现提交:07ca1b0(批量入口、批量关联查询、PDD 去重、状态跳过、客户端权限和测试)。
  • 归档提交:2c4f630。
  • 本地归档:docs/task/185-蝦皮批量创建PDD采集任务.md。
  • 固定 Go 1.23.0 验证:go vet ./...、go build ./...、go test ./... -count=1 全部通过。
  • 未验证:真实浏览器人工点击、生产部署、真实 Client 领取任务。
  • 与计划差异:未新增专用 JavaScript,复用既有通用采集弹窗逻辑;Repository 使用一次参数化批量查询,未逐条查询。
## 基本信息 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#15 Admin 四模块可用闭环 - 阶段:蝦皮商品批量采集 ## 要解决什么 蝦皮商品已经通过商品目录或人工方式关联 PDD 商品时,目前只能逐个打开商品详情创建采集任务。采购员需要在蝦皮列表勾选多个商品,一次创建对应的 PDD 采集任务,并能够选择执行客户端。 ## 做什么 / 不做什么 - 做:在蝦皮页顶部“导入记录”后增加“创建 PDD 采集任务”按钮。 - 做:复用现有列表勾选框,弹窗显示选中数量并提供有可见标签的执行客户端下拉框,默认不指定。 - 做:服务端按蝦皮商品 ID 查当前有效 PDD 关联,再按 PDD 商品 ID 去重。 - 做:只为待采集、采集失败或采集超时且没有有效任务的 PDD 商品创建任务。 - 做:统计并反馈未关联、PDD 已删除、已采集、正常采集中/已有任务等跳过原因。 - 做:管理员可选全部当前客户端;采购员只能选当前归属自己的客户端,服务端重新���验可见范围。 - 做:保留商品详情的单商品创建入口。 - 不做:不自动采集、不创建采购任务、不修改 PDD 关联和规格映射。 - 不做:不新增数据库迁移,不改变 Client 接口,不增加表格行内按钮。 ## 怎么做 - admin/templates/shopee/list.html:增加隐藏批量表单、顶部按钮和客户端选择确认弹窗,保留当前筛选和页码。 - admin/handler/web/shopee.go 与路由:增加批量 POST 入口,解析 IDs 和 client_id,调用 Service 后回到原筛选。 - admin/service/shopee_pdd.go 或现有采集服务:按蝦皮 ID 读取有效 PDD 关联、去重并复用现有任务创建、防重、超时判断与客户端授权。 - admin/repository/shopee.go:增加批量读取蝦皮商品当前 PDD 关联所需的参数化查询;不复制数据。 - admin/static/js/app.js:复用现有采集弹窗计数和表单关联机制,不加入业务判断。 - 同步相关测试及 docs/admin/01-requirements.md、05-ui-specification.md。 ## 验收标准 - [x] 蝦皮页顶部显示“创建 PDD 采集任务”,未勾选时不能提交。 - [x] 弹窗显示已选择数量和“执行客户端”可见标签,默认不指定。 - [x] 同一 PDD 商品被多个蝦皮商品关联时只创建一条采集任务。 - [x] 未关联、已删除、已采集、正常采集中或已有有效任务的商���按原因跳过并���示统计。 - [x] 待采集、采集失败以及可恢复的采集超时商品能够创建任务。 - [x] 指定客户端时执行服务端可见范围校验;伪造他人客户端被拒绝且不创建任务。 - [x] 操作后保留蝦皮列表全部筛选和页码,单商品详情入口行为不变。 - [x] 不新增迁移、不改变 Client 接口,固定 Go 1.23.0 全量验证通过。 ## 怎么验证 从 admin/ 使用固定 Go 1.23.0 执行 go vet ./...、go build ./...、go test ./... -count=1。定向测试覆盖 PDD 去重、各状态跳过、超时恢复、客户端权限、表单状态保持和模板入口。 ## 风险和回退 - 风险:重复任务导致多个 Client 同时采集。控制:在数据库事务内复用现有状态和有效任务防重。 - 风险:浏览器提交伪造客户端或蝦皮 ID。控制:服务端按当前用户可见范围和最新数据库状态重新校验。 - 风险:同一 PDD 对应多个蝦皮商品导致重复。控制:创建前按 PDD 商品 ID 去重。 - 回退:移除批量路由、模板入口和 Service 包装;无数据库迁移和数据回写。 ## 实施记录(2026-08-12) - 状态:已完成,待用户验收。 - 实现提交:`07ca1b0`(批量入口、批量关联查询、PDD 去重、状态跳过、客户端权限和测试)。 - 归档提交:`2c4f630`。 - 本地归档:`docs/task/185-蝦皮批量创建PDD采集任务.md`。 - 固定 Go 1.23.0 验证:`go vet ./...`、`go build ./...`、`go test ./... -count=1` 全部通过。 - 未验证:真实浏览器人工点击、生产部署、真实 Client 领取任务。 - 与计划差异:未新增专用 JavaScript,复用既有通用采集弹窗逻辑;Repository 使用一次参数化批量查询,未逐条查询。
Author
Owner

用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。

用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。
ila closed this issue 2026-08-13 15:56:20 +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#185