From 53fa68d3babac62d0d35529fed19d5f72c9bf704 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 11 Apr 2019 14:39:45 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E9=A5=BF=E7=99=BE=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=BA=93=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 11 +++++++++ business/jxstore/initdata/initdata.go | 27 +++++++++++++++++++++ business/model/sku.go | 1 + business/partner/purchase/ebai/store_sku.go | 2 +- controllers/init_data.go | 20 +++++++++++++++ routers/commentsRouter_controllers.go | 9 +++++++ 6 files changed, 69 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 36bc1ad3e..0d9c8f758 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -463,6 +463,12 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s 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 { @@ -536,6 +542,11 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf return 0, err } } + if globals.EnableEbaiStoreWrite { + if valid["ImgEbai"], err = api.EbaiAPI.PictureUpload(valid["img"].(string), nil); err != nil { + return 0, err + } + } } 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 { diff --git a/business/jxstore/initdata/initdata.go b/business/jxstore/initdata/initdata.go index 8bd45296f..58a66c70b 100644 --- a/business/jxstore/initdata/initdata.go +++ b/business/jxstore/initdata/initdata.go @@ -230,6 +230,33 @@ func UploadWeimobImg4SkuName(ctx *jxcontext.Context, nameIDs []int, isAsync, isC return hint, err } +func UploadEbaiImg4SkuName(ctx *jxcontext.Context, nameIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { + db := dao.GetDB() + skuNameList, err := dao.GetSkuNames(db, nameIDs) + if err != nil { + return "", err + } + rootTask := tasksch.NewParallelTask("UploadEbaiImg4SkuName", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(5), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + skuName := batchItemList[0].(*model.SkuName) + if skuName.Img != "" && skuName.ImgEbai == "" { + if globals.EnableEbaiStoreWrite { + if skuName.ImgEbai, err = api.EbaiAPI.PictureUpload(skuName.Img, nil); err == nil { + _, err = dao.UpdateEntity(db, skuName, "ImgEbai") + } + } + } + return nil, err + }, skuNameList) + tasksch.ManageTask(rootTask).Run() + if !isAsync { + _, err = rootTask.GetResult(0) + } else { + hint = rootTask.ID + } + return hint, err +} + func getSkuNameKey(prefix, name, comment, specUnit, unit string, specQuality float32) string { return fmt.Sprintf("%s-%s-%f-%s-%s", prefix, name, specQuality, specUnit, unit) } diff --git a/business/model/sku.go b/business/model/sku.go index 89e8e14cd..636f28bd0 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -169,6 +169,7 @@ type SkuName struct { Price int `json:"price"` // 单位为分,标准价,不为份的就为实际标准价,为份的为每市斤价,实际还要乘质量。todo 为份的确定必须有质量 Img string `orm:"size(255)" json:"img"` ImgWeimob string `orm:"size(255)" json:"imgWeimob"` // 微盟图片地址 + ImgEbai string `orm:"size(255)" json:"imgEbai"` // 饿百图片地址 ImgHashCode string `orm:"size(255);index" json:"img_hash_code"` ElmImgHashCode string `orm:"size(255)" json:"-"` // 长度255的原因是从京东初始化数据时临时需要 Upc string `orm:"size(20)"` diff --git a/business/partner/purchase/ebai/store_sku.go b/business/partner/purchase/ebai/store_sku.go index 9b9e5cfc3..1c70af19a 100644 --- a/business/partner/purchase/ebai/store_sku.go +++ b/business/partner/purchase/ebai/store_sku.go @@ -78,7 +78,7 @@ var ( func (p *PurchaseHandler) getDirtyStoreSkus(db *dao.DaoDB, storeID int, skuIDs []int) (storeSkuInfoList []*tStoreSkuFullInfo, err error) { sql := ` SELECT t8.price_percentage, t1.*, t2.spec_quality, t2.spec_unit, t2.weight, t2.status sku_status, - t3.prefix, t3.name, t2.comment, t3.is_global, t3.unit, t3.img, t3.upc, + t3.prefix, t3.name, t2.comment, t3.is_global, t3.unit, IF(t3.img_ebai <> '', t3.img_ebai, t3.img) img, t3.upc, t4.name cat_name, t4.id cat_id, t4.level cat_level, t5.ebai_id cat_ebai_id, t4p.id parent_cat_id, t5p.ebai_id parent_cat_ebai_id, t5p.ebai_sync_status parent_cat_ebai_sync_status, diff --git a/controllers/init_data.go b/controllers/init_data.go index a24d8a3f0..139c94a9c 100644 --- a/controllers/init_data.go +++ b/controllers/init_data.go @@ -73,6 +73,26 @@ func (c *InitDataController) UploadWeimobImg4SkuName() { }) } +// @Title 将SkuName的图片上传到微盟 +// @Description 将SkuName的图片上传到微盟 +// @Param token header string true "认证token" +// @Param nameIDs formData string false "skuNameID" +// @Param isAsync formData bool false "是否异步操作" +// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /UploadEbaiImg4SkuName [post] +func (c *InitDataController) UploadEbaiImg4SkuName() { + c.callUploadEbaiImg4SkuName(func(params *tInitdataUploadEbaiImg4SkuNameParams) (retVal interface{}, errCode string, err error) { + var nameIDs []int + if err = jxutils.Strings2Objs(params.NameIDs, &nameIDs); err != nil { + return retVal, "", err + } + retVal, err = initdata.UploadEbaiImg4SkuName(params.Ctx, nameIDs, params.IsAsync, params.IsContinueWhenError) + return retVal, "", err + }) +} + // @Title 从饿百店建商品 // @Description 从饿百店建商品 // @Param token header string true "认证token" diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 19febb6ca..79f8bf0a6 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -466,6 +466,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"], + beego.ControllerComments{ + Method: "UploadEbaiImg4SkuName", + Router: `/UploadEbaiImg4SkuName`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:InitDataController"], beego.ControllerComments{ Method: "UploadWeimobImg4SkuName",