Files
cmautobuy/docs/task/203-syb补全蝦皮店铺和图片.md
T

48 lines
2.1 KiB
Markdown

# 203 Admin:SYB 同步低优先级补全蝦皮店铺和图片
- 类型:需求
- 父级大工单:#14
- 所属 MVP / 版本:#15 后续版本
- 状态:已完成,待用户验收
- 日期:2026-08-13
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/203
## 背景与目标
SYB 明细已经提供蝦皮店铺名和无需登录即可访问的图片 URL,但此前只保存在货运单表,
由 SYB 补建的蝦皮商品缺少这两项。目标是在不覆盖人工和商品目录权威字段的前提下补全。
## 最终方案
同步写入蝦皮商品骨架时,非空店铺和图片按字段级 `syb` 低优先级来源写入;只补空值
或更新同来源新观测。商品目录接口可以把 `syb` 值提升为权威来源。MySQL v15 按每个
商品最新非空观测回填历史数据,迁移可重放。图片仍只保存外部 URL,不代理或缓存。
## 改了哪些
- `admin/repository/syb.go`:统一 SYB 商品元数据写入和历史回填。
- `admin/repository/catalog_import.go`:允许目录来源替换 `syb` 低优先级字段。
- `admin/repository/mysql_db.go`:增加 MySQL v15 迁移与自检。
- `admin/repository/syb_test.go`:覆盖同来源更新、接口来源和人工字段保护。
- `docs/admin/`:更新需求、数据来源优先级和界面基线。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 新同步商品可从 SYB 补全店铺和图片 | 通过 |
| 空值、人工值和接口权威值不被 SYB 覆盖 | 通过 |
| 历史记录通过 v15 幂等回填 | 代码与迁移测试已补,待独立 MySQL 8.4 库实跑 |
| 图片继续使用原始 URL,不落二进制 | 通过 |
## 测试
- 执行的命令:`$env:GOTOOLCHAIN="go1.23.0"; go vet ./...; go build ./...; go test ./... -count=1`
- 结果:通过;未配置 MySQL 集成测试开关时,隔离库测试按设计跳过。
- **没验证到的部分**:真实 MySQL 8.4 首次建库、重复迁移和 v14 升级实跑。已尝试
使用 `autobuy_test`,但现有 `buy` 账号无该隔离库权限;未使用生产 `autobuy` 代测。
## 相关提交
- `ad1ccc2` 完善 SYB 蝦皮主数据与软删除