- 重构UploadImg
This commit is contained in:
@@ -8,10 +8,11 @@ import (
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
type SkuNamesInfo struct {
|
||||
@@ -457,24 +458,20 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
|
||||
dao.Rollback(db)
|
||||
return nil, err
|
||||
}
|
||||
if globals.EnableWscStoreWrite {
|
||||
if skuNameExt.ImgWeimob, err = api.WeimobAPI.UploadImg(imgContent, ""); err != nil {
|
||||
dao.Rollback(db)
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if globals.EnableEbaiStoreWrite {
|
||||
if skuNameExt.ImgEbai, err = api.EbaiAPI.PictureUpload(skuNameExt.Img, nil); err != nil {
|
||||
dao.Rollback(db)
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if skuNameExt.ImgHashCode == "" {
|
||||
skuNameExt.ImgHashCode = imgMD5
|
||||
} else if skuNameExt.ImgHashCode != imgMD5 {
|
||||
dao.Rollback(db)
|
||||
return nil, errors.New("图片HASH值不同")
|
||||
}
|
||||
imgHintMap, err := UploadImg2Platforms(ctx, nil, skuNameExt.Img, imgContent, "")
|
||||
if err != nil {
|
||||
dao.Rollback(db)
|
||||
return nil, err
|
||||
}
|
||||
skuNameExt.ImgWeimob = imgHintMap[model.VendorIDWSC]
|
||||
skuNameExt.ImgEbai = imgHintMap[model.VendorIDEBAI]
|
||||
|
||||
if err = dao.CreateEntity(db, &skuNameExt.SkuName); err != nil {
|
||||
dao.Rollback(db)
|
||||
return nil, err
|
||||
@@ -537,16 +534,13 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
|
||||
return 0, err
|
||||
}
|
||||
valid["ImgHashCode"] = imgMD5
|
||||
if globals.EnableWscStoreWrite {
|
||||
if valid["ImgWeimob"], err = api.WeimobAPI.UploadImg(imgContent, ""); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
}
|
||||
if globals.EnableEbaiStoreWrite {
|
||||
if valid["ImgEbai"], err = api.EbaiAPI.PictureUpload(valid["img"].(string), nil); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
imgHintMap, err := UploadImg2Platforms(ctx, nil, valid["img"].(string), imgContent, "")
|
||||
if err != nil {
|
||||
dao.Rollback(db)
|
||||
return 0, err
|
||||
}
|
||||
valid["ImgWeimob"] = imgHintMap[model.VendorIDWSC]
|
||||
valid["ImgEbai"] = imgHintMap[model.VendorIDEBAI]
|
||||
}
|
||||
if num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, skuName, valid, userName, nil, model.FieldJdSyncStatus, model.SyncFlagModifiedMask); err == nil && num == 1 {
|
||||
if utils.Interface2Int64WithDefault(payload["isGlobal"], 0) == 0 && payload["places"] != nil {
|
||||
@@ -784,3 +778,32 @@ func GetVendorSku(ctx *jxcontext.Context, vendorID int, vendorSkuID string) (sku
|
||||
}
|
||||
return nil, ErrCanNotFindVendor
|
||||
}
|
||||
|
||||
func UploadImg2Platforms(ctx *jxcontext.Context, parentTask tasksch.ITask, imgURL string, imgData []byte, imgName string) (imgHintMap map[int]string, err error) {
|
||||
task := tasksch.NewParallelTask("UploadImg2Platforms", nil, ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
vendorID := batchItemList[0].(int)
|
||||
if handler := partner.GetPurchasePlatformFromVendorID(vendorID); handler != nil {
|
||||
imgHint, err2 := handler.UploadImg(ctx, imgURL, imgData, imgName)
|
||||
if err = err2; err == nil {
|
||||
return [][]interface{}{
|
||||
[]interface{}{
|
||||
vendorID,
|
||||
imgHint,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
}
|
||||
return nil, err
|
||||
}, []int{model.VendorIDEBAI, model.VendorIDWSC})
|
||||
tasksch.HandleTask(task, parentTask, false).Run()
|
||||
resultList, err := task.GetResult(0)
|
||||
if err == nil {
|
||||
imgHintMap = make(map[int]string)
|
||||
for _, v := range resultList {
|
||||
vList := v.([]interface{})
|
||||
imgHintMap[vList[0].(int)] = vList[1].(string)
|
||||
}
|
||||
}
|
||||
return imgHintMap, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user