1.8 KiB
1.8 KiB
208 Admin:建立全局店铺和渠道别名数据模型
- 类型:需求
- 父级大工单:#206
- 所属 MVP / 版本:#207
- 状态:已完成
- 日期:2026-08-13
- Gitea 工单:#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 全部通过。
- 没验证到的部分:当前未配置独立
_testMySQL 8.4,新增真实 MySQL 迁移用例本次未实际运行。
相关提交
8f70772建立全局店铺跨渠道管理