不需要客户端再主动调用RegisterDataResource了,RegisterDataResource改为空操作

This commit is contained in:
gazebo
2019-09-27 16:56:51 +08:00
parent f4c13e2159
commit 4af8ebd8ef
7 changed files with 28 additions and 39 deletions

View File

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

View File

@@ -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) {

View File

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

View File

@@ -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"`

View File

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

View File

@@ -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()

View File

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