From e7647151d1474c2a242717b3b7f7a63546cec974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 30 Mar 2020 17:45:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=93=B6=E8=B1=B9=E5=85=B3=E6=B3=A8=E5=95=86?= =?UTF-8?q?=E5=93=81=E6=A0=87=E5=93=81=E4=BD=BF=E7=94=A8upc=E4=BD=9C?= =?UTF-8?q?=E4=B8=BAbarcode=EF=BC=8C=E5=90=A6=E5=88=99=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 2 -- business/model/dao/sku.go | 2 +- business/model/sku.go | 1 + business/partner/purchase/yb/store_sku.go | 23 ++++++++++++++++++++++- 4 files changed, 24 insertions(+), 4 deletions(-) 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 +}