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 +}