From 103bfa122450f07b70aa7b9ab1c853667928a1a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 1 Apr 2020 17:18:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=93=B6=E8=B1=B9api=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/yb/store_sku.go | 35 ++++++++++++++++++----- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/business/partner/purchase/yb/store_sku.go b/business/partner/purchase/yb/store_sku.go index 167167402..dd78e14fd 100644 --- a/business/partner/purchase/yb/store_sku.go +++ b/business/partner/purchase/yb/store_sku.go @@ -3,6 +3,7 @@ package yb import ( "fmt" "regexp" + "strings" "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/utils" @@ -36,7 +37,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "εˆ›ε»Ίε•†ε“") } else { storeSku.VendorSkuID = utils.Int64ToStr(result.UID) - // uploadYbImage(vendorStoreID, storeSku.YbBarCode, storeSku.Img) + uploadYbImage(vendorStoreID, storeSku.YbBarCode, storeSku.Img) if !flag { updateYbSku(vendorStoreID, storeSku.YbBarCode) } @@ -484,10 +485,30 @@ func checkYbSku(storeSku *dao.StoreSkuSyncInfo) (flag bool, err error) { return flag, err } -// func uploadYbImage(vendorStoreID, ybBarCode, img string) (err error) { -// ybSkuID, err := api.YinBaoAPI.LoadProductsByPage(vendorStoreID, ybBarCode) -// resBinary, _, err := jxutils.DownloadFileByURL(img) +func uploadYbImage(vendorStoreID, ybBarCode, img string) (err error) { + ybSkuID, err := api.YinBaoAPI.LoadProductsByPage(vendorStoreID, ybBarCode) + resBinary, _, err := jxutils.DownloadFileByURL(img) + fileName := img[strings.LastIndex(img, "/")+1:] + err = uploadYbImageLoop(vendorStoreID, ybSkuID, resBinary, fileName) + return err +} -// api.YinBaoAPI.UploadProductImage(vendorStoreID, ybSkuID, file) -// return err -// } +func uploadYbImageLoop(vendorStoreID, ybSkuID string, resBinary []byte, fileName string) (err error) { + for { + err = api.YinBaoAPI.UploadProductImage(vendorStoreID, ybSkuID, resBinary, fileName) + if err == nil { + break + } else { + if yinbaoapi.IsErrCookie(err) { + err = cms.ChangeYbCookie() + if err != nil { + break + } + err = uploadYbImageLoop(vendorStoreID, ybSkuID, resBinary, fileName) + } else { + break + } + } + } + return err +}