feat: 重构顺运宝规格主链路 (#88)
This commit is contained in:
+19
-19
@@ -8,18 +8,18 @@ import (
|
||||
"cmautobuy/admin/model"
|
||||
)
|
||||
|
||||
// GetSKUMapping 读取某个蝦皮 SKU 在指定 PDD 商品下的映射。
|
||||
func GetSKUMapping(q Execer, shopeeSKUID, pddGoodsID string) (*model.SKUMapping, error) {
|
||||
var m model.SKUMapping
|
||||
// GetSpecMapping 读取某个蝦皮商品的顺运宝规格在指定 PDD 商品下的映射。
|
||||
func GetSpecMapping(q Execer, shopeeGoodsID, specKey, pddGoodsID string) (*model.SpecMapping, error) {
|
||||
var m model.SpecMapping
|
||||
var mappedBy sql.NullString
|
||||
err := q.QueryRow(`
|
||||
SELECT shopee_sku_id, pdd_goods_id, pdd_option_key, pdd_options,
|
||||
goods_id, mapped_at, mapped_by
|
||||
FROM sku_mappings
|
||||
WHERE shopee_sku_id = ? AND pdd_goods_id = ?`,
|
||||
shopeeSKUID, pddGoodsID).Scan(
|
||||
&m.ShopeeSKUID, &m.PddGoodsID, &m.PddOptionKey, &m.PddOptions,
|
||||
&m.GoodsID, &m.MappedAt, &mappedBy)
|
||||
SELECT shopee_goods_id, spec_key, pdd_goods_id, pdd_option_key,
|
||||
pdd_options, spec_raw, mapped_at, mapped_by
|
||||
FROM spec_mappings
|
||||
WHERE shopee_goods_id = ? AND spec_key = ? AND pdd_goods_id = ?`,
|
||||
shopeeGoodsID, specKey, pddGoodsID).Scan(
|
||||
&m.ShopeeGoodsID, &m.SpecKey, &m.PddGoodsID, &m.PddOptionKey,
|
||||
&m.PddOptions, &m.SpecRaw, &m.MappedAt, &mappedBy)
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return nil, nil
|
||||
}
|
||||
@@ -30,21 +30,21 @@ func GetSKUMapping(q Execer, shopeeSKUID, pddGoodsID string) (*model.SKUMapping,
|
||||
return &m, nil
|
||||
}
|
||||
|
||||
// UpsertSKUMapping 保存可复用规格映射,唯一键包含当前 PDD 商品。
|
||||
func UpsertSKUMapping(q Execer, m model.SKUMapping) error {
|
||||
// UpsertSpecMapping 保存可复用规格映射,唯一键包含当前 PDD 商品。
|
||||
func UpsertSpecMapping(q Execer, m model.SpecMapping) error {
|
||||
_, err := q.Exec(`
|
||||
INSERT INTO sku_mappings
|
||||
(shopee_sku_id, pdd_goods_id, pdd_option_key, pdd_options,
|
||||
goods_id, mapped_at, mapped_by)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
INSERT INTO spec_mappings
|
||||
(shopee_goods_id, spec_key, pdd_goods_id, pdd_option_key,
|
||||
pdd_options, spec_raw, mapped_at, mapped_by)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
pdd_option_key = VALUES(pdd_option_key),
|
||||
pdd_options = VALUES(pdd_options),
|
||||
goods_id = VALUES(goods_id),
|
||||
spec_raw = VALUES(spec_raw),
|
||||
mapped_at = VALUES(mapped_at),
|
||||
mapped_by = VALUES(mapped_by)`,
|
||||
m.ShopeeSKUID, m.PddGoodsID, m.PddOptionKey, m.PddOptions,
|
||||
m.GoodsID, m.MappedAt, nullableText(m.MappedBy))
|
||||
m.ShopeeGoodsID, m.SpecKey, m.PddGoodsID, m.PddOptionKey,
|
||||
m.PddOptions, m.SpecRaw, m.MappedAt, nullableText(m.MappedBy))
|
||||
if err != nil {
|
||||
return fmt.Errorf("保存规格映射失败: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user