docs: 归档任务 #293
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# 293 商品级颜色映射数据模型与失效审计规则
|
||||
|
||||
- 类型:需求
|
||||
- 父级大工单:#291
|
||||
- 所属 MVP / 版本:蝦皮与 PDD 商品颜色匹配 MVP
|
||||
- 状态:已完成
|
||||
- 日期:2026-08-23
|
||||
- Gitea 工单:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/293>
|
||||
|
||||
## 背景与目标
|
||||
|
||||
在正式颜色匹配页面和顺运宝采购复用之前,先建立商品级颜色映射的稳定身份、当前态、
|
||||
追加式审计、候选聚合和上下文失效规则,避免 PDD 换品或重采集后静默套用旧结果。
|
||||
|
||||
## 最终方案
|
||||
|
||||
- MySQL schema v30 新增 `product_color_mappings` 当前态和
|
||||
`product_color_mapping_audits` 追加式审计表;PDD 商品 ID 属于映射主键。
|
||||
- 蝦皮颜色只聚合正式 SKU 的结构化颜色和可确定解析的顺运宝历史观测;身份键仅折叠空白。
|
||||
- PDD 颜色维度必须由显式别名唯一识别,候选只来自 `available=true` 的完整规格组合,
|
||||
价格区间使用整数分。
|
||||
- 上下文版本覆盖 PDD 关联、采集快照、蝦皮颜色集合和规则版本。保存时在事务内重算,
|
||||
任一过期输入使整批拒绝。
|
||||
- 清除只删除当前态,旧值保留在审计;目标从最新候选消失时映射保留但判为失效。
|
||||
|
||||
## 改了哪些
|
||||
|
||||
- `admin/model/model.go`:增加颜色映射及审计领域结构。
|
||||
- `admin/repository/mysql_db.go`:增加 v30 迁移和 schema 自检。
|
||||
- `admin/repository/color_mapping.go`:封装当前映射和审计读写。
|
||||
- `admin/service/color_mapping.go`:实现颜色来源、候选聚合、上下文版本和事务保存。
|
||||
- `admin/service/color_mapping_test.go`、`admin/repository/mysql_db_integration_test.go`:覆盖规则和迁移。
|
||||
- `docs/admin/03-data-model.md`:记录稳定数据模型和边界。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 当前映射按蝦皮商品、颜色键和 PDD 商品隔离 | 通过 |
|
||||
| 保存与清除都追加旧值、新值和操作账号审计 | 通过 |
|
||||
| 候选仅来自当前可购买 PDD 规格并使用整数价格 | 通过 |
|
||||
| PDD 或蝦皮上下文变化时拒绝过期批量保存 | 通过 |
|
||||
| 目标消失时保留映射并动态判为失效 | 通过 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行的命令:`go test ./service ./repository -count=1`;`go vet ./...`;`git diff --check`
|
||||
- 结果:通过。
|
||||
- **没验证到的部分**:未连接独立 MySQL 8.4 `_test` 数据库执行首次迁移、v29 升 v30
|
||||
和重复迁移;已增加对应集成测试,需在具备测试库环境变量时运行。未在生产库执行迁移。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `f06ded8` feat: 建立商品颜色映射数据模型 (#293)
|
||||
Reference in New Issue
Block a user