Merge remote-tracking branch 'origin/mark' into don

This commit is contained in:
Rosy-zhudan
2019-10-09 08:45:50 +08:00
20 changed files with 221 additions and 68 deletions

View File

@@ -1,9 +1,12 @@
package datares
import (
"bytes"
"fmt"
"image"
"image/jpeg"
"image/png"
"net/http"
"strings"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
@@ -18,6 +21,9 @@ import (
const (
qiniuTokenExpires = 300 // 七牛TOKEN有效时间5分钟
MainImgWidth = 800
MainImgHeight = 800
)
type UploadResTokenInfo struct {
@@ -28,6 +34,19 @@ type UploadResTokenInfo struct {
Img string `json:"img,omitempty"`
}
func Binary2Image(binaryData []byte, mimeType string) (img image.Image, outMimeType string, err error) {
if mimeType == "" {
mimeType = http.DetectContentType(binaryData)
}
switch mimeType {
case model.MimeTypeJpeg:
img, err = jpeg.Decode(bytes.NewReader(binaryData))
case model.MimeTypePng:
img, err = png.Decode(bytes.NewReader(binaryData))
}
return img, mimeType, err
}
func GetQiniuUploadToken(ctx *jxcontext.Context, suffix, hashCode string) (upTokenInfo *UploadResTokenInfo, err error) {
imgURL := ""
if hashCode != "" {
@@ -48,32 +67,20 @@ func GetQiniuUploadToken(ctx *jxcontext.Context, suffix, hashCode string) (upTok
return upTokenInfo, err
}
func suffix2MimeType(suffix string) (mimeType string) {
suffix = strings.Trim(suffix, ". ")
for k, v := range model.ValidMimeTypes {
for _, v2 := range v {
if v2 == suffix {
mimeType = k
break
}
}
}
return mimeType
}
func getMimeTypeFromURL(resourceURL string) (mimeType string) {
index := strings.LastIndex(resourceURL, ".")
if index >= 0 {
mimeType = suffix2MimeType(resourceURL[index:])
}
return mimeType
}
// 此函数要求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)
if model.ValidMimeTypes[mimeType] == 0 {
return nil, fmt.Errorf("MIME type:%s非法,当前只支持:%s", mimeType, model.GetValidMimeTypeDesc())
}
img, _, err := Binary2Image(resBinary, mimeType)
if err != nil {
return nil, err
}
if imgType == model.ImgTypeMain {
if img.Bounds().Dx() != MainImgWidth || img.Bounds().Dy() != MainImgHeight {
return nil, fmt.Errorf("图片大小:%dx%d非法要求必须:%dx%d", img.Bounds().Dx(), img.Bounds().Dy(), MainImgWidth, MainImgHeight)
}
}
dataRes = &model.DataResource{
Name: name,

View File

@@ -575,7 +575,7 @@ func NotifyAfsOrderStatus(afsOrder *model.AfsOrder) (err error) {
"color": WX_HIGHLEVEL_TEMPLATE_COLOR,
},
"keyword3": map[string]interface{}{
"value": utils.Time2Str(afsOrder.CreatedAt),
"value": utils.Time2Str(afsOrder.AfsCreatedAt),
"color": venderColors[order.VendorID],
},
"remark": map[string]interface{}{