商品详情描述图片加入DataResource管理,老数据还未迁移
This commit is contained in:
@@ -6,7 +6,6 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/datares"
|
||||
@@ -15,7 +14,6 @@ import (
|
||||
"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 {
|
||||
@@ -31,14 +29,14 @@ var (
|
||||
ebaiUploadRTFShopID string // 饿百找一个店用于调用SkuUploadRTF
|
||||
)
|
||||
|
||||
func getAndSetEbaiUploadRTFShopID() (shopID string) {
|
||||
if ebaiUploadRTFShopID == "" {
|
||||
if storeDetail, err := dao.GetStoreDetail(dao.GetDB(), 0, model.VendorIDEBAI); err == nil {
|
||||
ebaiUploadRTFShopID = utils.Int2Str(storeDetail.Store.ID)
|
||||
}
|
||||
}
|
||||
return ebaiUploadRTFShopID
|
||||
}
|
||||
// func getAndSetEbaiUploadRTFShopID() (shopID string) {
|
||||
// if ebaiUploadRTFShopID == "" {
|
||||
// if storeDetail, err := dao.GetStoreDetail(dao.GetDB(), 0, model.VendorIDEBAI); err == nil {
|
||||
// ebaiUploadRTFShopID = utils.Int2Str(storeDetail.Store.ID)
|
||||
// }
|
||||
// }
|
||||
// return ebaiUploadRTFShopID
|
||||
// }
|
||||
|
||||
// parentID 为-1表示所有
|
||||
func GetVendorCategories(ctx *jxcontext.Context, vendorID int, parentID string) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||
@@ -583,18 +581,22 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
|
||||
// return nil, err
|
||||
// }
|
||||
// skuNameExt.ImgEbai = imgHintMap[model.VendorIDEBAI]
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuNameExt.Name, skuNameExt.Img, true, true, false)
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuNameExt.Name, skuNameExt.Img, true, model.ImgTypeMain, false)
|
||||
if err = err2; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
skuNameExt.ImgHashCode = dataRes.HashCode
|
||||
skuNameExt.ImgEbai = dataRes.EbaiURL
|
||||
if skuNameExt.Img2 != "" {
|
||||
datares.TryRegisterDataResource(ctx, skuNameExt.Name, skuNameExt.Img2, true, true, true)
|
||||
datares.TryRegisterDataResource(ctx, skuNameExt.Name, skuNameExt.Img2, true, model.ImgTypeMain, true)
|
||||
}
|
||||
|
||||
if skuNameExt.DescImg != "" && getAndSetEbaiUploadRTFShopID() != "" {
|
||||
skuNameExt.DescImgEbai, err = api.EbaiAPI.SkuUploadRTF(getAndSetEbaiUploadRTFShopID(), ebaiapi.BuildRFTFromImgs(skuNameExt.DescImg))
|
||||
if skuNameExt.DescImg != "" {
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuNameExt.Name+"desc", skuNameExt.DescImg, true, model.ImgTypeDesc, false)
|
||||
if err = err2; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
skuNameExt.DescImgEbai = dataRes.EbaiURL
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -697,7 +699,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
|
||||
// }
|
||||
// // valid["ImgWeimob"] = imgHintMap[model.VendorIDWSC]
|
||||
// valid["ImgEbai"] = imgHintMap[model.VendorIDEBAI]
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuName.Name, valid["img"].(string), true, true, false)
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuName.Name, valid["img"].(string), true, model.ImgTypeMain, false)
|
||||
if err = err2; err != nil {
|
||||
return 0, err
|
||||
}
|
||||
@@ -705,18 +707,17 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
|
||||
valid["ImgEbai"] = dataRes.EbaiURL
|
||||
}
|
||||
if valid["img2"] != nil {
|
||||
datares.TryRegisterDataResource(ctx, skuName.Name, valid["img2"].(string), true, true, true)
|
||||
datares.TryRegisterDataResource(ctx, skuName.Name, valid["img2"].(string), true, model.ImgTypeMain, true)
|
||||
}
|
||||
|
||||
if valid["descImg"] != nil {
|
||||
descImg := valid["descImg"].(string)
|
||||
if descImg != "" {
|
||||
if getAndSetEbaiUploadRTFShopID() != "" {
|
||||
valid["descImgEbai"], err = api.EbaiAPI.SkuUploadRTF(getAndSetEbaiUploadRTFShopID(), ebaiapi.BuildRFTFromImgs(descImg))
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuName.Name+"_desc", descImg, true, model.ImgTypeDesc, false)
|
||||
if err = err2; err != nil {
|
||||
return 0, err
|
||||
}
|
||||
valid["descImgEbai"] = dataRes.EbaiURL
|
||||
} else {
|
||||
valid["descImgEbai"] = ""
|
||||
}
|
||||
|
||||
@@ -287,54 +287,51 @@ func InitVendorCategory(ctx *jxcontext.Context, vendorID int) (num int64, err er
|
||||
}
|
||||
|
||||
func UploadImg4Vendors(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
return hint, err
|
||||
db := dao.GetDB()
|
||||
rootTask := tasksch.NewSeqTask("合并SkuName图片至DataResource", ctx,
|
||||
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||
switch step {
|
||||
case 0: // 计算SkuName中缺失的hashCode
|
||||
var skuNameList []*model.SkuName
|
||||
if err = dao.GetRows(db, &skuNameList, `
|
||||
SELECT t1.*
|
||||
FROM sku_name t1
|
||||
WHERE t1.img <> '' AND t1.img_hash_code = ''
|
||||
`); err == nil && len(skuNameList) > 0 {
|
||||
calcTask := tasksch.NewParallelTask("UploadImg4Vendors calc hashCode",
|
||||
tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(5), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
skuName := batchItemList[0].(*model.SkuName)
|
||||
_, skuName.ImgHashCode, err = jxutils.DownloadFileByURL(skuName.Img)
|
||||
if err == nil {
|
||||
dao.UpdateEntity(db, skuName, "ImgHashCode")
|
||||
}
|
||||
return retVal, err
|
||||
}, skuNameList)
|
||||
tasksch.HandleTask(calcTask, task, false).Run()
|
||||
_, err = calcTask.GetResult(0)
|
||||
}
|
||||
// var skuNameList []*model.SkuName
|
||||
// if err = dao.GetRows(db, &skuNameList, `
|
||||
// SELECT t1.*
|
||||
// FROM sku_name t1
|
||||
// WHERE t1.img <> '' AND t1.img_hash_code = ''
|
||||
// `); err == nil && len(skuNameList) > 0 {
|
||||
// calcTask := tasksch.NewParallelTask("UploadImg4Vendors calc hashCode",
|
||||
// tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError).SetParallelCount(5), ctx,
|
||||
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
// skuName := batchItemList[0].(*model.SkuName)
|
||||
// _, skuName.ImgHashCode, err = jxutils.DownloadFileByURL(skuName.Img)
|
||||
// if err == nil {
|
||||
// dao.UpdateEntity(db, skuName, "ImgHashCode")
|
||||
// }
|
||||
// return retVal, err
|
||||
// }, skuNameList)
|
||||
// tasksch.HandleTask(calcTask, task, false).Run()
|
||||
// _, err = calcTask.GetResult(0)
|
||||
// }
|
||||
case 1: // 从SkuName添加缺失的图片至DataResource
|
||||
_, err = dao.ExecuteSQL(db, `
|
||||
INSERT INTO data_resource(created_at, updated_at, last_operator, hash_code,
|
||||
resource_type, name, main_url, ebai_url, qiniu_url, is_vendor)
|
||||
SELECT t1.created_at, t1.created_at, t1.last_operator, t1.img_hash_code,
|
||||
SELECT t1.created_at, t1.created_at, t1.last_operator, '',
|
||||
CASE
|
||||
WHEN INSTR(t1.img, ".jpg") > 0 OR INSTR(t1.img, ".jpeg") > 0 THEN
|
||||
WHEN INSTR(t1.desc_img, ".jpg") > 0 OR INSTR(t1.desc_img, ".jpeg") > 0 THEN
|
||||
'image/jpeg'
|
||||
WHEN INSTR(t1.img, ".png") > 0 OR INSTR(t1.img, ".peg") > 0 THEN
|
||||
WHEN INSTR(t1.desc_img, ".png") > 0 OR INSTR(t1.desc_img, ".peg") > 0 THEN
|
||||
'image/png'
|
||||
WHEN INSTR(t1.img, ".gif") THEN
|
||||
WHEN INSTR(t1.desc_img, ".gif") THEN
|
||||
'image/gif'
|
||||
ELSE
|
||||
''
|
||||
END resource_type
|
||||
, t1.name, img, img_ebai, IF(INSTR(t1.img, "image.jxc4.com") > 0, t1.img, '') qiniu_url, 1
|
||||
END resource_type,
|
||||
CONCAT(t1.name, '_desc'), desc_img main_url, t1.desc_img_ebai ebai_url,
|
||||
IF(INSTR(t1.desc_img, "image.jxc4.com") > 0, t1.desc_img, '') qiniu_url, 2
|
||||
FROM sku_name t1
|
||||
JOIN (
|
||||
SELECT img_hash_code, MAX(id) id
|
||||
FROM sku_name
|
||||
GROUP BY 1
|
||||
) t3 ON t3.id = t1.id
|
||||
LEFT JOIN data_resource t2 ON ((t2.main_url <> '' AND t2.main_url = t1.img) OR (t2.hash_code <> '' AND t2.hash_code = t1.img_hash_code))
|
||||
WHERE t1.img_hash_code <> '' AND t1.img <> '' AND t2.id IS NULL;
|
||||
LEFT JOIN data_resource t2 ON (t2.main_url <> '' AND t2.main_url = t1.desc_img)
|
||||
WHERE t1.desc_img <> '' AND t2.id IS NULL;
|
||||
`)
|
||||
case 2: // 统一SkuName中同hashCode,不同图片地址至同一地址
|
||||
_, err = dao.ExecuteSQL(db, `
|
||||
|
||||
@@ -5,7 +5,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"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"
|
||||
@@ -76,7 +75,7 @@ func getMimeTypeFromURL(resourceURL string) (mimeType string) {
|
||||
return mimeType
|
||||
}
|
||||
|
||||
func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, hashCode string, resBinary []byte, isUpload2Vendor, isAsync bool) (dataRes *model.DataResource, err error) {
|
||||
func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, hashCode string, resBinary []byte, imgType int, isAsync bool) (dataRes *model.DataResource, err error) {
|
||||
if model.ValidMimeTypes[mimeType] == nil {
|
||||
return nil, fmt.Errorf("MIME type:%s非法", mimeType)
|
||||
}
|
||||
@@ -85,7 +84,7 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h
|
||||
HashCode: hashCode,
|
||||
ResourceType: mimeType,
|
||||
MainURL: resourceURL,
|
||||
IsVendor: int8(utils.Bool2Int(isUpload2Vendor)),
|
||||
IsVendor: int8(imgType),
|
||||
}
|
||||
|
||||
vendorID := jxutils.GuessDataResourceVendor(resourceURL)
|
||||
@@ -105,14 +104,14 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h
|
||||
}
|
||||
return dataRes, err
|
||||
}
|
||||
if isUpload2Vendor {
|
||||
if imgType > 0 {
|
||||
// 忽略上传错误
|
||||
UploadImage2Vendors(ctx, nil, dataRes, resBinary, isAsync)
|
||||
}
|
||||
return dataRes, err
|
||||
}
|
||||
|
||||
func TryRegisterDataResource(ctx *jxcontext.Context, name, resourceURL string, isAllowDownLoad, isUpload2Vendor, isAsync bool) (dataRes *model.DataResource, err error) {
|
||||
func TryRegisterDataResource(ctx *jxcontext.Context, name, resourceURL string, isAllowDownLoad bool, imgType int, isAsync bool) (dataRes *model.DataResource, err error) {
|
||||
dataRes = &model.DataResource{
|
||||
MainURL: resourceURL,
|
||||
}
|
||||
@@ -138,7 +137,7 @@ func TryRegisterDataResource(ctx *jxcontext.Context, name, resourceURL string, i
|
||||
} else {
|
||||
hashCode = value.(string)
|
||||
}
|
||||
return RegisterDataResource(ctx, name, resourceURL, getMimeTypeFromURL(resourceURL), hashCode, resBinary, isUpload2Vendor, isAsync)
|
||||
return RegisterDataResource(ctx, name, resourceURL, getMimeTypeFromURL(resourceURL), hashCode, resBinary, imgType, isAsync)
|
||||
}
|
||||
|
||||
func GetDataResource(ctx *jxcontext.Context, hashCode string) (resourceURL string, err error) {
|
||||
@@ -185,7 +184,7 @@ func UploadImage2Vendors(ctx *jxcontext.Context, parentTask tasksch.ITask, dataR
|
||||
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, dataRes.MainURL, imgData, imgName)
|
||||
imgHint, err2 := handler.UploadImg(ctx, dataRes.MainURL, imgData, imgName, int(dataRes.IsVendor))
|
||||
if err = err2; err == nil {
|
||||
retVal = [][]interface{}{
|
||||
[]interface{}{
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
package model
|
||||
|
||||
const (
|
||||
ImgTypeMain = 1 // 商品主图
|
||||
ImgTypeDesc = 2 // 商品描述详情
|
||||
)
|
||||
|
||||
var (
|
||||
ValidMimeTypes = map[string][]string{
|
||||
"image/jpeg": []string{"jpeg", "jpg"},
|
||||
|
||||
@@ -26,7 +26,7 @@ func GetNeedUploadDataResource(db *DaoDB) (dataResList []*model.DataResource, er
|
||||
sql := `
|
||||
SELECT t1.*
|
||||
FROM data_resource t1
|
||||
WHERE t1.is_vendor = 1 AND (t1.ebai_url = '' OR t1.mtwm_url = '')`
|
||||
WHERE t1.is_vendor <> 0 AND (t1.ebai_url = '' OR t1.mtwm_url = '')`
|
||||
err = GetRows(db, &dataResList, sql)
|
||||
return dataResList, err
|
||||
}
|
||||
|
||||
@@ -222,14 +222,16 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, isDirty bool)
|
||||
SELECT t1.id bind_id, t1.sku_id, t1.price, t1.unit_price, t1.status store_sku_status, %s.%s_id vendor_sku_id,
|
||||
t1.%s_sync_status store_sku_sync_status, %s vendor_name_id, t1.store_id, t1.deleted_at bind_deleted_at,
|
||||
t2.*,
|
||||
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.%s desc_img,
|
||||
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc,
|
||||
IF(t11.%s <> '', t11.%s, t3.img) img,
|
||||
IF(t12.%s <> '', t12.%s, t3.img2) img2,
|
||||
IF(t13.%s <> '', t13.%s, t3.%s) desc_img,
|
||||
t4.%s_category_id vendor_vendor_cat_id`
|
||||
fmtParams := []interface{}{
|
||||
tableName, fieldPrefix, fieldPrefix, vendorSkuNameField, GetDescImgFieldName(vendorID),
|
||||
tableName, fieldPrefix, fieldPrefix, vendorSkuNameField,
|
||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID), GetDescImgFieldName(vendorID),
|
||||
fieldPrefix,
|
||||
}
|
||||
if isSingleStorePF {
|
||||
@@ -249,7 +251,9 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, isDirty bool)
|
||||
LEFT JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ? AND t3.status = ?
|
||||
LEFT JOIN sku_category t4 ON t3.category_id = t4.id AND t4.deleted_at = ?
|
||||
LEFT JOIN data_resource t11 ON t11.main_url = t3.img
|
||||
LEFT JOIN data_resource t12 ON t12.main_url = t3.img2`
|
||||
LEFT JOIN data_resource t12 ON t12.main_url = t3.img2
|
||||
LEFT JOIN data_resource t13 ON t13.main_url = t3.desc_img
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
model.SkuStatusNormal,
|
||||
@@ -308,9 +312,10 @@ func GetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInf
|
||||
SELECT t1.id bind_id, t1.price, t1.unit_price, t1.status store_sku_status, t2.%s_id vendor_sku_id,
|
||||
t1.%s_sync_status store_sku_sync_status, t1.store_id, t1.deleted_at bind_deleted_at,
|
||||
t2.*, t2.id sku_id,
|
||||
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.desc_img,
|
||||
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc,
|
||||
IF(t11.%s <> '', t11.%s, t3.img) img,
|
||||
IF(t12.%s <> '', t12.%s, t3.img2) img2,
|
||||
IF(t13.%s <> '', t13.%s, t3.desc_img) desc_img,
|
||||
t4.%s_category_id vendor_vendor_cat_id,
|
||||
t4.%s_sync_status store_cat_sync_status, t4.%s_id vendor_cat_id,
|
||||
t5sku.%s_sync_status sku_store_cat_sync_status, t5sku.%s_id sku_vendor_cat_id
|
||||
@@ -321,6 +326,7 @@ func GetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInf
|
||||
LEFT JOIN sku_category t5sku ON t2.category_id = t5sku.id
|
||||
LEFT JOIN data_resource t11 ON t11.main_url = t3.img
|
||||
LEFT JOIN data_resource t12 ON t12.main_url = t3.img2
|
||||
LEFT JOIN data_resource t13 ON t13.main_url = t3.desc_img
|
||||
WHERE t2.deleted_at = ? AND t2.status = ? AND t2.%s_id <> 0
|
||||
ORDER BY t1.price DESC`
|
||||
sqlParams := []interface{}{
|
||||
@@ -337,6 +343,7 @@ func GetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInf
|
||||
fieldPrefix,
|
||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
||||
fieldPrefix,
|
||||
fieldPrefix, fieldPrefix,
|
||||
fieldPrefix, fieldPrefix,
|
||||
|
||||
@@ -151,7 +151,7 @@ type IPurchasePlatformHandler interface {
|
||||
|
||||
RefreshAllStoresID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool) (hint string, err error)
|
||||
|
||||
UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error)
|
||||
UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string, imgType int) (imgHint string, err error)
|
||||
}
|
||||
|
||||
// db *dao.DaoDB,
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package ebai
|
||||
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
@@ -18,6 +20,9 @@ var (
|
||||
type PurchaseHandler struct {
|
||||
partner.BasePurchasePlatform
|
||||
putils.DefSingleStorePlatform
|
||||
|
||||
shopList []*ebaiapi.ShopInfo
|
||||
locker sync.RWMutex
|
||||
}
|
||||
|
||||
func init() {
|
||||
@@ -44,16 +49,60 @@ 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) {
|
||||
globals.SugarLogger.Debugf("ebai UploadImg imgURL:%s, imgName:%s", imgURL, imgName)
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string, imgType int) (imgHint string, err error) {
|
||||
globals.SugarLogger.Debugf("ebai UploadImg imgURL:%s, imgName:%s, imgType:%d", imgURL, imgName, imgType)
|
||||
if globals.EnableEbaiStoreWrite {
|
||||
imgHint, err = api.EbaiAPI.PictureUpload(imgURL, imgData)
|
||||
if imgType == model.ImgTypeMain {
|
||||
imgHint, err = api.EbaiAPI.PictureUpload(imgURL, imgData)
|
||||
} else if imgType == model.ImgTypeMain {
|
||||
imgHint, err = api.EbaiAPI.SkuUploadRTF(p.getShopID4UploadRTF(), ebaiapi.BuildRFTFromImgs(imgURL))
|
||||
}
|
||||
} else {
|
||||
imgHint = imgURL + ".ebai"
|
||||
}
|
||||
return imgHint, err
|
||||
}
|
||||
|
||||
func getShopIDFromList(shopList []*ebaiapi.ShopInfo) (shopID string) {
|
||||
if len(shopList) > 0 {
|
||||
shopID = shopList[0].ShopID
|
||||
}
|
||||
return shopID
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) getShopID4UploadRTF() (shopID string) {
|
||||
var shopList []*ebaiapi.ShopInfo
|
||||
p.locker.RLock()
|
||||
shopList = p.shopList
|
||||
p.locker.RUnlock()
|
||||
if len(shopList) > 0 {
|
||||
return getShopIDFromList(shopList)
|
||||
}
|
||||
|
||||
p.locker.Lock()
|
||||
shopList = p.shopList
|
||||
if len(shopList) > 0 {
|
||||
p.locker.Unlock()
|
||||
return getShopIDFromList(shopList)
|
||||
}
|
||||
|
||||
defer p.locker.Unlock()
|
||||
shopList, err := api.EbaiAPI.ShopList(ebaiapi.SysStatusAll)
|
||||
if err == nil {
|
||||
if len(shopList) > 0 {
|
||||
p.shopList = shopList
|
||||
shopID = getShopIDFromList(shopList)
|
||||
} else {
|
||||
// p.shopList = []*ebaiapi.ShopInfo{
|
||||
// &ebaiapi.ShopInfo{
|
||||
// ShopID: "",
|
||||
// },
|
||||
// }
|
||||
}
|
||||
}
|
||||
return shopID
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) getVendorCategories(level int, pid int64) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||
cats, err := api.EbaiAPI.SkuCategoryList("", level, pid)
|
||||
if err != nil {
|
||||
|
||||
@@ -92,7 +92,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) {
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string, imgType int) (imgHint string, err error) {
|
||||
return imgHint, err
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,6 @@ func JxStoreStatus2JdStatus(status int) (yn, closeStatus int) {
|
||||
}
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string, imgType int) (imgHint string, err error) {
|
||||
return imgHint, err
|
||||
}
|
||||
|
||||
@@ -29,6 +29,6 @@ func (c *PurchaseHandler) GetVendorID() int {
|
||||
return model.VendorIDJX
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string, imgType int) (imgHint string, err error) {
|
||||
return imgHint, err
|
||||
}
|
||||
|
||||
@@ -166,17 +166,19 @@ func skuStatusJX2Mtwm(status int) int {
|
||||
return mtwmapi.SellStatusOffline
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string, imgType int) (imgHint string, err error) {
|
||||
globals.SugarLogger.Debugf("mtwm UploadImg imgURL:%s, imgName:%s", imgURL, imgName)
|
||||
poiCode4UploadImg := p.getUploadImgPoiCode()
|
||||
if poiCode4UploadImg == "" {
|
||||
return "", fmt.Errorf("找不到一个美团门店来上传图片")
|
||||
}
|
||||
if globals.EnableMtwmStoreWrite {
|
||||
if imgData != nil {
|
||||
imgHint, err = api.MtwmAPI.ImageUpload(poiCode4UploadImg, imgName, imgData)
|
||||
} else {
|
||||
imgHint, err = api.MtwmAPI.ImageUploadByURL(poiCode4UploadImg, imgName, imgURL)
|
||||
if imgType > 0 {
|
||||
if imgData != nil {
|
||||
imgHint, err = api.MtwmAPI.ImageUpload(poiCode4UploadImg, imgName, imgData)
|
||||
} else {
|
||||
imgHint, err = api.MtwmAPI.ImageUploadByURL(poiCode4UploadImg, imgName, imgURL)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
imgHint = utils.GetUpperUUID()
|
||||
|
||||
@@ -68,7 +68,7 @@ func vendorCategoryID2String(catID int64) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
|
||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string, imgType int) (imgHint string, err error) {
|
||||
if globals.EnableWscStoreWrite {
|
||||
imgHint, err = api.WeimobAPI.UploadImg(imgData, imgName)
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ func tryRegisterDataRes4Recipe(ctx *jxcontext.Context, name, mainImg string, ste
|
||||
}
|
||||
errList := errlist.New()
|
||||
for _, v := range imgList {
|
||||
_, err := datares.TryRegisterDataResource(ctx, name, v, true, false, true)
|
||||
_, err := datares.TryRegisterDataResource(ctx, name, v, true, 0, true)
|
||||
errList.AddErr(err)
|
||||
}
|
||||
return errList.GetErrListAsOne()
|
||||
|
||||
@@ -105,6 +105,7 @@ func (c *CmsController) GetQiniuUploadToken() {
|
||||
})
|
||||
}
|
||||
|
||||
// 此函数可以不用调用,当前只有菜谱图片在调用
|
||||
// @Title 注册数据资源
|
||||
// @Description 注册数据资源
|
||||
// @Param token header string true "认证token"
|
||||
@@ -117,7 +118,7 @@ func (c *CmsController) GetQiniuUploadToken() {
|
||||
// @router /RegisterDataResource [post]
|
||||
func (c *CmsController) RegisterDataResource() {
|
||||
c.callRegisterDataResource(func(params *tCmsRegisterDataResourceParams) (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = datares.RegisterDataResource(params.Ctx, params.Name, params.ResourceURL, params.MimeType, params.HashCode, nil, false, true)
|
||||
retVal, err = datares.RegisterDataResource(params.Ctx, params.Name, params.ResourceURL, params.MimeType, params.HashCode, nil, 0, true)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user