diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 472006d52..e05026395 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -514,8 +514,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag isContinueWhenError2 := true //如果是银豹平台,则要按照商品skuname维度同步 if vendorID == model.VendorIDYB { - // createList, updateList []*dao.StoreSkuSyncInfo - // deleteList, stockList, onlineList, offlineList, priceList []*partner.StoreSkuInfo if len(createList) > 0 { rList1, _ := changeList2Yb(createList, nil) createList = createList[:] diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index 96505e549..8d1e2c573 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -78,7 +78,7 @@ func GetCategories(db *DaoDB, parentID, level int, catIDs []int, isExd bool) (ca func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int, eclpIDs []string) (skuList []*model.SkuAndName, err error) { sql := ` - SELECT t1.*, t2.name, t2.unit, t2.prefix, t2.is_spu, t2.ex_prefix, t2.ex_prefix_begin, t2.ex_prefix_end + SELECT t1.*, t2.name, t2.unit, t2.prefix, t2.is_spu, t2.ex_prefix, t2.ex_prefix_begin, t2.ex_prefix_end, t2.upc FROM sku t1 JOIN sku_name t2 ON t2.id = t1.name_id AND t2.deleted_at = ? ` diff --git a/business/model/sku.go b/business/model/sku.go index 74ce32d17..93256e65a 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -245,6 +245,7 @@ type SkuAndName struct { Unit string `json:"unit"` Prefix string `json:"prefix"` IsSpu int `json:"isSpu"` + Upc string `json:"upc"` ExPrefix string `json:"exPrefix"` ExPrefixBegin *time.Time `json:"exPrefixBegin"` ExPrefixEnd *time.Time `json:"eExPrefixEndxPrefixEnd"` diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 4877cead5..4ff694710 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -1,6 +1,7 @@ package yb import ( + "fmt" "regexp" "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" @@ -24,7 +25,12 @@ var ( func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableYbStoreWrite { storeSku := storeSkuList[0] - result, err := api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) + var result *yinbaoapi.AddProductInfoResult + if err2 := checkYbSku(storeSku); err2 != nil { + err = err2 + } else { + result, err = api.YinBaoAPI.AddProductInfo(buildProductInfoParam(storeSku)) + } if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品") } else { @@ -431,3 +437,18 @@ func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) { } return err } + +func checkYbSku(storeSku *dao.StoreSkuSyncInfo) (err error) { + skuID := storeSku.SkuID + skus, _ := dao.GetSkus(dao.GetDB(), []int{skuID}, nil, nil, nil, nil) + if len(skus) > 0 { + if skus[0].Unit != model.UnitNames[0] { + if skus[0].Upc == "" { + return fmt.Errorf("创建标品必须指定upc码,skuID[%v]", skuID) + } else { + storeSku.YbBarCode = skus[0].Upc + } + } + } + return err +}