Files
cmautobuy/docs/task/208-全局店铺和渠道别名数据模型.md
T

44 lines
1.8 KiB
Markdown

# 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` 建立全局店铺跨渠道管理