不需要客户端再主动调用RegisterDataResource了,RegisterDataResource改为空操作
This commit is contained in:
@@ -579,18 +579,18 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
|
|||||||
// return nil, err
|
// return nil, err
|
||||||
// }
|
// }
|
||||||
// skuNameExt.ImgEbai = imgHintMap[model.VendorIDEBAI]
|
// 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 {
|
if err = err2; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
// skuNameExt.ImgHashCode = dataRes.HashCode
|
// skuNameExt.ImgHashCode = dataRes.HashCode
|
||||||
skuNameExt.ImgEbai = dataRes.EbaiURL
|
skuNameExt.ImgEbai = dataRes.EbaiURL
|
||||||
if skuNameExt.Img2 != "" {
|
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 != "" {
|
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 {
|
if err = err2; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -697,7 +697,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
|
|||||||
// }
|
// }
|
||||||
// // valid["ImgWeimob"] = imgHintMap[model.VendorIDWSC]
|
// // valid["ImgWeimob"] = imgHintMap[model.VendorIDWSC]
|
||||||
// valid["ImgEbai"] = imgHintMap[model.VendorIDEBAI]
|
// 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 {
|
if err = err2; err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
@@ -705,13 +705,13 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
|
|||||||
valid["ImgEbai"] = dataRes.EbaiURL
|
valid["ImgEbai"] = dataRes.EbaiURL
|
||||||
}
|
}
|
||||||
if valid["img2"] != nil {
|
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 {
|
if valid["descImg"] != nil {
|
||||||
descImg := valid["descImg"].(string)
|
descImg := valid["descImg"].(string)
|
||||||
if descImg != "" {
|
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 {
|
if err = err2; err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package datares
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"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/jxcontext"
|
||||||
@@ -18,11 +18,6 @@ import (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
qiniuTokenExpires = 300 // 七牛TOKEN有效时间,5分钟
|
qiniuTokenExpires = 300 // 七牛TOKEN有效时间,5分钟
|
||||||
dataResCacheTimeout = 24 * time.Hour
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
dataResCache jxutils.SyncMapWithTimeout
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type UploadResTokenInfo struct {
|
type UploadResTokenInfo struct {
|
||||||
@@ -50,7 +45,6 @@ func GetQiniuUploadToken(ctx *jxcontext.Context, suffix, hashCode string) (upTok
|
|||||||
Hit: imgURL != "",
|
Hit: imgURL != "",
|
||||||
Img: imgURL,
|
Img: imgURL,
|
||||||
}
|
}
|
||||||
dataResCache.StoreWithTimeout(imgURL, hashCode, dataResCacheTimeout)
|
|
||||||
return upTokenInfo, err
|
return upTokenInfo, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +69,9 @@ func getMimeTypeFromURL(resourceURL string) (mimeType string) {
|
|||||||
return mimeType
|
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 {
|
if model.ValidMimeTypes[mimeType] == nil {
|
||||||
return nil, fmt.Errorf("MIME type:%s非法", mimeType)
|
return nil, fmt.Errorf("MIME type:%s非法", mimeType)
|
||||||
}
|
}
|
||||||
@@ -106,17 +102,17 @@ func RegisterDataResource(ctx *jxcontext.Context, name, resourceURL, mimeType, h
|
|||||||
}
|
}
|
||||||
if imgType > 0 {
|
if imgType > 0 {
|
||||||
// 忽略上传错误
|
// 忽略上传错误
|
||||||
UploadImage2Vendors(ctx, nil, dataRes, resBinary, isAsync)
|
UploadImage2Vendors(ctx, nil, dataRes, resBinary, isAsyncUpload2Vendor)
|
||||||
}
|
}
|
||||||
return dataRes, err
|
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{
|
dataRes = &model.DataResource{
|
||||||
MainURL: resourceURL,
|
MainURL: resourceURL,
|
||||||
}
|
}
|
||||||
db := dao.GetDB()
|
err = dao.GetEntity(dao.GetDB(), dataRes, "MainURL")
|
||||||
err = dao.GetEntity(db, dataRes, "MainURL")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !dao.IsNoRowsError(err) {
|
if !dao.IsNoRowsError(err) {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -124,20 +120,11 @@ func TryRegisterDataResource(ctx *jxcontext.Context, name, resourceURL string, i
|
|||||||
} else {
|
} else {
|
||||||
return dataRes, nil
|
return dataRes, nil
|
||||||
}
|
}
|
||||||
value, ok := dataResCache.Load(resourceURL)
|
resBinary, hashCode, err := jxutils.DownloadFileByURL(resourceURL)
|
||||||
var hashCode string
|
if err != nil {
|
||||||
var resBinary []byte
|
|
||||||
if !ok {
|
|
||||||
if !isAllowDownLoad {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
if resBinary, hashCode, err = jxutils.DownloadFileByURL(resourceURL); err != nil {
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
} else {
|
return RegisterDataResource(ctx, name, resourceURL, http.DetectContentType(resBinary), hashCode, resBinary, imgType, isAsyncUpload2Vendor)
|
||||||
hashCode = value.(string)
|
|
||||||
}
|
|
||||||
return RegisterDataResource(ctx, name, resourceURL, getMimeTypeFromURL(resourceURL), hashCode, resBinary, imgType, isAsync)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDataResource(ctx *jxcontext.Context, hashCode string) (resourceURL string, err error) {
|
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/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"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/api2"
|
||||||
"git.rosy.net.cn/jx-callback/globals/testinit"
|
"git.rosy.net.cn/jx-callback/globals/testinit"
|
||||||
|
|
||||||
@@ -36,7 +37,7 @@ func TestGetDataResource(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestTryRegisterDataResource(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 {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
ImgTypeLocal = 0 // 京西自己用的,不需要上传至平台
|
||||||
ImgTypeMain = 1 // 商品主图
|
ImgTypeMain = 1 // 商品主图
|
||||||
ImgTypeDesc = 2 // 商品描述详情
|
ImgTypeDesc = 2 // 商品描述详情
|
||||||
)
|
)
|
||||||
@@ -23,7 +24,7 @@ type DataResource struct {
|
|||||||
|
|
||||||
ResourceType string `orm:"size(48)" json:"resourceType"` // 资料的mime type
|
ResourceType string `orm:"size(48)" json:"resourceType"` // 资料的mime type
|
||||||
Name string `orm:"size(48);index" json:"name"`
|
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"`
|
MainURL string `orm:"size(512);column(main_url);unique" json:"mainURL"`
|
||||||
QiniuURL string `orm:"size(512);column(qiniu_url);index" json:"qiniuURL"`
|
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("找不到一个美团门店来上传图片")
|
return "", fmt.Errorf("找不到一个美团门店来上传图片")
|
||||||
}
|
}
|
||||||
if globals.EnableMtwmStoreWrite {
|
if globals.EnableMtwmStoreWrite {
|
||||||
if imgType > 0 {
|
if imgType > model.ImgTypeLocal {
|
||||||
if imgData != nil {
|
if imgData != nil {
|
||||||
imgHint, err = api.MtwmAPI.ImageUpload(poiCode4UploadImg, imgName, imgData)
|
imgHint, err = api.MtwmAPI.ImageUpload(poiCode4UploadImg, imgName, imgData)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ func tryRegisterDataRes4Recipe(ctx *jxcontext.Context, name, mainImg string, ste
|
|||||||
}
|
}
|
||||||
errList := errlist.New()
|
errList := errlist.New()
|
||||||
for _, v := range imgList {
|
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)
|
errList.AddErr(err)
|
||||||
}
|
}
|
||||||
return errList.GetErrListAsOne()
|
return errList.GetErrListAsOne()
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ func (c *CmsController) GetQiniuUploadToken() {
|
|||||||
// @router /RegisterDataResource [post]
|
// @router /RegisterDataResource [post]
|
||||||
func (c *CmsController) RegisterDataResource() {
|
func (c *CmsController) RegisterDataResource() {
|
||||||
c.callRegisterDataResource(func(params *tCmsRegisterDataResourceParams) (retVal interface{}, errCode string, err error) {
|
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
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user