# 208 Admin:建立全局店铺和渠道别名数据模型 - 类型:需求 - 父级大工单:#206 - 所属 MVP / 版本:#207 - 状态:已完成 - 日期:2026-08-13 - Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/208 ## 背景与目标 原 SYB 专属准入表不能表达蝦皮等其他渠道中的同一业务店铺。本任务建立稳定业务店铺身份,同时保留各渠道原始名称。 ## 最终方案 MySQL v18 新增 `shops`、`shop_channel_aliases`,并为 `syb_orders`、`shopee_products` 增加可空 `shop_id`。旧 SYB 配置迁移成业务店铺和两个渠道名称,旧表保留。历史数据只按去除首尾空白后的渠道名称精确回填,无法确认时保持空。 ## 改了哪些 - `admin/model/model.go`:增加店铺、渠道名称和业务关联字段。 - `admin/repository/mysql_db.go`:增加可重放 v18 迁移与结构自检。 - `admin/repository/shop.go`:增加店铺、渠道名称、状态和关联重建仓储。 - `admin/repository/mysql_db_integration_test.go`:增加 v17 升级、重放和精确回填测试。 - `docs/admin/03-data-model.md`:记录 v18 最终模型。 ## 验收结果 | 验收标准 | 结果 | |---|---| | 首次迁移建立完整结构与约束 | 通过(代码、自检和测试已覆盖) | | v17 升级迁移现有 SYB 配置且可重放 | 通过(已增加专用 MySQL 集成测试) | | 原始店铺名不丢失,无法精确匹配保持空 | 通过 | | 仓储支持店铺、别名和渠道开关 | 通过 | ## 测试 - 执行的命令:在 `admin/` 执行 `go test ./...`、`go build ./...`、`git diff --check` - 结果:Go 1.23.0 全部通过。 - **没验证到的部分**:当前未配置独立 `_test` MySQL 8.4,新增真实 MySQL 迁移用例本次未实际运行。 ## 相关提交 - `8f70772` 建立全局店铺跨渠道管理