不需要客户端再主动调用RegisterDataResource了,RegisterDataResource改为空操作
This commit is contained in:
@@ -579,18 +579,18 @@ 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, model.ImgTypeMain, false)
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuNameExt.Name, skuNameExt.Img, 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, model.ImgTypeMain, true)
|
||||
datares.TryRegisterDataResource(ctx, skuNameExt.Name, skuNameExt.Img2, model.ImgTypeMain, true)
|
||||
}
|
||||
|
||||
if skuNameExt.DescImg != "" {
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuNameExt.Name+"desc", skuNameExt.DescImg, true, model.ImgTypeDesc, false)
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuNameExt.Name+"desc", skuNameExt.DescImg, model.ImgTypeDesc, false)
|
||||
if err = err2; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -697,7 +697,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, model.ImgTypeMain, false)
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuName.Name, valid["img"].(string), model.ImgTypeMain, false)
|
||||
if err = err2; err != nil {
|
||||
return 0, err
|
||||
}
|
||||
@@ -705,13 +705,13 @@ 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, model.ImgTypeMain, true)
|
||||
datares.TryRegisterDataResource(ctx, skuName.Name, valid["img2"].(string), model.ImgTypeMain, true)
|
||||
}
|
||||
|
||||
if valid["descImg"] != nil {
|
||||
descImg := valid["descImg"].(string)
|
||||
if descImg != "" {
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuName.Name+"_desc", descImg, true, model.ImgTypeDesc, false)
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuName.Name+"_desc", descImg, model.ImgTypeDesc, false)
|
||||
if err = err2; err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ package datares
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
@@ -17,12 +17,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
qiniuTokenExpires = 300 // 七牛TOKEN有效时间,5分钟
|
||||
dataResCacheTimeout = 24 * time.Hour
|
||||
)
|
||||
|
||||
var (
|
||||
dataResCache jxutils.SyncMapWithTimeout
|
||||
qiniuTokenExpires = 300 // 七牛TOKEN有效时间,5分钟
|
||||
)
|
||||
|
||||
type UploadResTokenInfo struct {
|
||||
@@ -50,7 +45,6 @@ func GetQiniuUploadToken(ctx *jxcontext.Context, suffix, hashCode string) (upTok
|
||||
Hit: imgURL != "",
|
||||
Img: imgURL,
|
||||
}
|
||||
dataResCache.StoreWithTimeout(imgURL, hashCode, dataResCacheTimeout)
|
||||
return upTokenInfo, err
|
||||
}
|
||||
|
||||
@@ -75,7 +69,9 @@ func getMimeTypeFromURL(resourceURL string) (mimeType string) {
|
||||
return mimeType
|
||||
}
|
||||
|
||||
func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, hashCode string, resBinary []byte, imgType int, isAsync bool) (dataRes *model.DataResource, err error) {
|
||||
// 此函数要求resBinary不能空,mimeType与hashCode必须是正确的
|
||||
func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, hashCode string, resBinary []byte, imgType int, isAsyncUpload2Vendor bool) (dataRes *model.DataResource, err error) {
|
||||
globals.SugarLogger.Debugf("RegisterDataResource, name:%s, resourceURL:%s, mimeType:%s, hashCode:%s, imgType:%d, isAsyncUpload2Vendor;%t", name, resourceURL, mimeType, hashCode, imgType, isAsyncUpload2Vendor)
|
||||
if model.ValidMimeTypes[mimeType] == nil {
|
||||
return nil, fmt.Errorf("MIME type:%s非法", mimeType)
|
||||
}
|
||||
@@ -106,17 +102,17 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h
|
||||
}
|
||||
if imgType > 0 {
|
||||
// 忽略上传错误
|
||||
UploadImage2Vendors(ctx, nil, dataRes, resBinary, isAsync)
|
||||
UploadImage2Vendors(ctx, nil, dataRes, resBinary, isAsyncUpload2Vendor)
|
||||
}
|
||||
return dataRes, err
|
||||
}
|
||||
|
||||
func TryRegisterDataResource(ctx *jxcontext.Context, name, resourceURL string, isAllowDownLoad bool, imgType int, isAsync bool) (dataRes *model.DataResource, err error) {
|
||||
func TryRegisterDataResource(ctx *jxcontext.Context, name, resourceURL string, imgType int, isAsyncUpload2Vendor bool) (dataRes *model.DataResource, err error) {
|
||||
globals.SugarLogger.Debugf("TryRegisterDataResource, name:%s, resourceURL:%s, imgType:%d, isAsyncUpload2Vendor;%t", name, resourceURL, imgType, isAsyncUpload2Vendor)
|
||||
dataRes = &model.DataResource{
|
||||
MainURL: resourceURL,
|
||||
}
|
||||
db := dao.GetDB()
|
||||
err = dao.GetEntity(db, dataRes, "MainURL")
|
||||
err = dao.GetEntity(dao.GetDB(), dataRes, "MainURL")
|
||||
if err != nil {
|
||||
if !dao.IsNoRowsError(err) {
|
||||
return nil, err
|
||||
@@ -124,20 +120,11 @@ func TryRegisterDataResource(ctx *jxcontext.Context, name, resourceURL string, i
|
||||
} else {
|
||||
return dataRes, nil
|
||||
}
|
||||
value, ok := dataResCache.Load(resourceURL)
|
||||
var hashCode string
|
||||
var resBinary []byte
|
||||
if !ok {
|
||||
if !isAllowDownLoad {
|
||||
return nil, nil
|
||||
}
|
||||
if resBinary, hashCode, err = jxutils.DownloadFileByURL(resourceURL); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
hashCode = value.(string)
|
||||
resBinary, hashCode, err := jxutils.DownloadFileByURL(resourceURL)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return RegisterDataResource(ctx, name, resourceURL, getMimeTypeFromURL(resourceURL), hashCode, resBinary, imgType, isAsync)
|
||||
return RegisterDataResource(ctx, name, resourceURL, http.DetectContentType(resBinary), hashCode, resBinary, imgType, isAsyncUpload2Vendor)
|
||||
}
|
||||
|
||||
func GetDataResource(ctx *jxcontext.Context, hashCode string) (resourceURL string, err error) {
|
||||
|
||||
@@ -6,6 +6,7 @@ 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/globals/api2"
|
||||
"git.rosy.net.cn/jx-callback/globals/testinit"
|
||||
|
||||
@@ -36,7 +37,7 @@ func TestGetDataResource(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestTryRegisterDataResource(t *testing.T) {
|
||||
dataRes, err := TryRegisterDataResource(jxcontext.AdminCtx, "test", "http://image.jxc4.com/image/8552261fb928be10f6406b13dc29570e.jpg", true, true, false)
|
||||
dataRes, err := TryRegisterDataResource(jxcontext.AdminCtx, "test", "http://image.jxc4.com/image/37db6b94925e669e0a7b6844ba7ce160.jpg", model.ImgTypeMain, false)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package model
|
||||
|
||||
const (
|
||||
ImgTypeMain = 1 // 商品主图
|
||||
ImgTypeDesc = 2 // 商品描述详情
|
||||
ImgTypeLocal = 0 // 京西自己用的,不需要上传至平台
|
||||
ImgTypeMain = 1 // 商品主图
|
||||
ImgTypeDesc = 2 // 商品描述详情
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -23,7 +24,7 @@ type DataResource struct {
|
||||
|
||||
ResourceType string `orm:"size(48)" json:"resourceType"` // 资料的mime type
|
||||
Name string `orm:"size(48);index" json:"name"`
|
||||
UseType int8 `json:"isVendor"` // 图资源使用方式(大于0才可能需要上传至平台)
|
||||
UseType int8 `json:"useType"` // 图资源使用方式(大于0才可能需要上传至平台)
|
||||
|
||||
MainURL string `orm:"size(512);column(main_url);unique" json:"mainURL"`
|
||||
QiniuURL string `orm:"size(512);column(qiniu_url);index" json:"qiniuURL"`
|
||||
|
||||
@@ -173,7 +173,7 @@ func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgDa
|
||||
return "", fmt.Errorf("找不到一个美团门店来上传图片")
|
||||
}
|
||||
if globals.EnableMtwmStoreWrite {
|
||||
if imgType > 0 {
|
||||
if imgType > model.ImgTypeLocal {
|
||||
if imgData != nil {
|
||||
imgHint, err = api.MtwmAPI.ImageUpload(poiCode4UploadImg, imgName, imgData)
|
||||
} else {
|
||||
|
||||
@@ -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, 0, true)
|
||||
_, err := datares.TryRegisterDataResource(ctx, name, v, model.ImgTypeLocal, true)
|
||||
errList.AddErr(err)
|
||||
}
|
||||
return errList.GetErrListAsOne()
|
||||
|
||||
@@ -118,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, 0, true)
|
||||
// retVal, err = datares.RegisterDataResource(params.Ctx, params.Name, params.ResourceURL, params.MimeType, params.HashCode, nil, model.ImgTypeLocal, true)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user