# 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 蝦皮主数据与软删除