Admin:SYB 同步低优先级补全蝦皮店铺和图片 #203

Closed
opened 2026-08-13 10:20:13 +08:00 by ila · 2 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 / 顺运宝数据补全
  • 阶段:蝦皮商品元数据补全

要解决什么

SYB 同步已经取得货运单店铺名和可匿名访问的商品图片地址,但补建 shopee_products 时只写商品 ID、标题和来源,导致蝦皮列表中 SYB 补建商品没有店铺和图片。用户已确认该图片无需登录即可访问。

做什么 / 不做什么

  • 做:
    • 新建 SYB 商品骨架时同时写入非空店铺和图片,字段来源标记为 syb。
    • 对既有商品只补空字段,或以较新 SYB 观测更新原本同为 SYB 来源的字段。
    • 建立字段优先级:人工 > 商品目录/API > SYB;后续权威目录数据可以替换 SYB 值。
    • 空值不清除已有值,SYB 不覆盖人工或非 SYB 权威来源。
    • 对现有 SYB 数据做幂等存量补全。
  • 不做:
    • 不下载或保存图片二进制,不代理图片。
    • 不覆盖 PDD 关联、人工字段或商品目录权威字段。
    • 不修改 Client 四接口。

怎么做

  • 修改 admin/repository/syb.go 的商品骨架 upsert,按字段级来源和观测时间写店铺/图片。
  • 调整 admin/repository/catalog_import.go 的字段更新策略,使权威目录字段可以替换低优先级 syb 值,同时继续保护人工字段、旧观测和其他权威来源。
  • 增加 service/repository 测试,覆盖新建、补空、同来源更新、跨来源升级、人工保护和空值保护。
  • 提供幂等存量补全逻辑,从每个蝦皮商品最新有效 SYB 观测填充,不复活软删除商品。
  • 同步更新 Admin 数据模型和界面字段来源说明。

验收标准

  • 新同步补建的蝦皮商品显示对应店铺和图片,来源均为 SYB。
  • SYB 只补空或更新同为 SYB 来源的较新值,不覆盖人工和权威目录值。
  • 商品目录/API 可以用有效较新值替换 SYB 低优先级值。
  • 空店铺、空图片和无效 URL 不清除或污染已有字段。
  • 存量补全幂等,重复运行数据不变化,且不复活已软删除商品。
  • PDD 关联、正式 SKU、任务和 Client 接口不受影响。
  • 固定 Go 1.23.0 的 build、test、vet 通过。

怎么验证

从 admin/ 使用固定 Go 1.23.0 执行 go build ./...、go test ./... -count=1、go vet ./...;在独立 MySQL 8.4 _test 库验证存量补全与重复执行;浏览器核对匿名图片加载。

风险和回退

  • 风险:错误来源优先级可能覆盖权威图片/店铺。通过字段级来源、人工标志和定向回归控制。
  • 回退:停止 SYB 元数据补全;已经填入且来源为 syb 的值可按来源精确识别,不做无条件清空。
## 基本信息 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#15 / 顺运宝数据补全 - 阶段:蝦皮商品元数据补全 ## 要解决什么 SYB 同步已经取得货运单店铺名和可匿名访问的商品图片地址,但补建 `shopee_products` 时只写商品 ID、标题和来源,导致蝦皮列表中 SYB 补建商品没有店铺和图片。用户已确认该图片无需登录即可访问。 ## 做什么 / 不做什么 - 做: - 新建 SYB 商品骨架时同时写入非空店铺和图片,字段来源标记为 `syb`。 - 对既有商品只补空字段,或以较新 SYB 观测更新原本同为 SYB 来源的字段。 - 建立字段优先级:人工 > 商品目录/API > SYB;后续权威目录数据可以替换 SYB 值。 - 空值不清除已有值,SYB 不覆盖人工或非 SYB 权威来源。 - 对现有 SYB 数据做幂等存量补全。 - 不做: - 不下载或保存图片二进制,不代理图片。 - 不覆盖 PDD 关联、人工字段或商品目录权威字段。 - 不修改 Client 四接口。 ## 怎么做 - 修改 `admin/repository/syb.go` 的商品骨架 upsert,按字段级来源和观测时间写店铺/图片。 - 调整 `admin/repository/catalog_import.go` 的字段更新策略,使权威目录字段可以替换低优先级 `syb` 值,同时继续保护人工字段、旧观测和其他权威来源。 - 增加 service/repository 测试,覆盖新建、补空、同来源更新、跨来源升级、人工保护和空值保护。 - 提供幂等存量补全逻辑,从每个蝦皮商品最新有效 SYB 观测填充,不复活软删除商品。 - 同步更新 Admin 数据模型和界面字段来源说明。 ## 验收标准 - [x] 新同步补建的蝦皮商品显示对应店铺和图片,来源均为 SYB。 - [x] SYB 只补空或更新同为 SYB 来源的较新值,不覆盖人工和权威目录值。 - [x] 商品目录/API 可以用有效较新值替换 SYB 低优先级值。 - [x] 空店铺、空图片和无效 URL 不清除或污染已有字段。 - [x] 存量补全幂等,重复运行数据不变化,且不复活已软删除商品。 - [x] PDD 关联、正式 SKU、任务和 Client 接口不受影响。 - [x] 固定 Go 1.23.0 的 build、test、vet 通过。 ## 怎么验证 从 `admin/` 使用固定 Go 1.23.0 执行 `go build ./...`、`go test ./... -count=1`、`go vet ./...`;在独立 MySQL 8.4 `_test` 库验证存量补全与重复执行;浏览器核对匿名图片加载。 ## 风险和回退 - 风险:错误来源优先级可能覆盖权威图片/店铺。通过字段级来源、人工标志和定向回归控制。 - 回退:停止 SYB 元数据补全;已经填入且来源为 `syb` 的值可按来源精确识别,不做无条件清空。
Author
Owner

实施完成,待验收

  • 实现提交:ad1ccc2
  • 归档提交:901b37a
  • 归档:docs/task/203-syb补全蝦皮店铺和图片.md
  • 已实现:新同步低优先级补全店铺/图片、字段来源保护、目录来源升级、MySQL v15 历史回填。
  • 验证:Go 1.23.0 下 go vet ./...、go build ./...、go test ./... -count=1 通过。
  • 未验证:现有 buy 对隔离库 autobuy_test 无权限,真实 MySQL 8.4 迁移测试被阻止;未使用生产库代测。
## 实施完成,待验收 - 实现提交:ad1ccc2 - 归档提交:901b37a - 归档:docs/task/203-syb补全蝦皮店铺和图片.md - 已实现:新同步低优先级补全店铺/图片、字段来源保护、目录来源升级、MySQL v15 历史回填。 - 验证:Go 1.23.0 下 go vet ./...、go build ./...、go test ./... -count=1 通过。 - 未验证:现有 buy 对隔离库 autobuy_test 无权限,真实 MySQL 8.4 迁移测试被阻止;未使用生产库代测。
Author
Owner

用户于 2026-08-14 明确验收通过。验收清单已确认,现关闭工单。

用户于 2026-08-14 明确验收通过。验收清单已确认,现关闭工单。
ila closed this issue 2026-08-14 09:20:43 +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#203