- 重构UploadImg

This commit is contained in:
gazebo
2019-04-11 16:19:28 +08:00
parent 660ff1e34c
commit 5f9b2a08bb
7 changed files with 80 additions and 22 deletions

View File

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

View File

@@ -166,6 +166,7 @@ type IPurchasePlatformHandler interface {
GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error)
ReplyOrderComment(ctx *jxcontext.Context, orderComment *model.OrderComment, replyComment string) (err error)
UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error)
}
// db *dao.DaoDB,

View File

@@ -2,8 +2,11 @@ package ebai
import (
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
)
var (
@@ -31,3 +34,10 @@ func EbaiBusStatus2JxStatus(ebaiStatus int) int {
func (p *PurchaseHandler) GetVendorID() int {
return model.VendorIDEBAI
}
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
if globals.EnableEbaiStoreWrite {
imgHint, err = api.EbaiAPI.PictureUpload(imgURL, imgData)
}
return imgHint, err
}

View File

@@ -4,6 +4,7 @@ import (
"git.rosy.net.cn/baseapi/platformapi/elmapi"
"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/model"
"git.rosy.net.cn/jx-callback/business/partner"
)
@@ -82,3 +83,7 @@ func (c *PurchaseHandler) OnCallbackMsg(msg *elmapi.CallbackMsg) (retVal *elmapi
}
return retVal
}
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
return imgHint, err
}

View File

@@ -5,6 +5,7 @@ import (
"git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
@@ -83,3 +84,7 @@ func OnAfterSaleMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse
})
return retVal
}
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
return imgHint, err
}

View File

@@ -7,6 +7,7 @@ import (
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"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/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals/api"
@@ -147,3 +148,7 @@ func skuStatusJX2Mtwm(status int) int {
}
return 1
}
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
return imgHint, err
}

View File

@@ -2,8 +2,10 @@ package wsc
import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
)
@@ -63,3 +65,10 @@ func vendorCategoryID2String(catID int64) string {
}
return ""
}
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
if globals.EnableWscStoreWrite {
imgHint, err = api.WeimobAPI.UploadImg(imgData, imgName)
}
return imgHint, err
}