fix:重构合图模块

This commit is contained in:
Hiven 2023-08-15 18:35:16 +08:00
parent 318f92b869
commit 69f08415fc
3 changed files with 70 additions and 12 deletions

View File

@ -2,6 +2,7 @@ package logic
import (
"encoding/json"
"errors"
"fusenapi/model/gmodel"
"fusenapi/utils/auth"
"fusenapi/utils/basic"
@ -69,11 +70,29 @@ func (l *UploadLogoLogic) UploadLogo(req *types.UploadLogoReq, userinfo *auth.Us
//设置内存大小
l.r.ParseMultipartForm(32 << 20)
fileObject, _, err := l.r.FormFile("file")
fileObject, fileHeader, err := l.r.FormFile("file")
if err != nil {
logx.Error(err)
return resp.SetStatus(basic.CodeFileUploadErr, "file upload err,no files")
}
defer fileObject.Close()
// 获取文件的MIME类型
fileType := fileHeader.Header.Get("Content-Type")
var imageTypes = make(map[string]struct{}, 7)
imageTypes["image/jpg"] = struct{}{}
imageTypes["image/jpeg"] = struct{}{}
imageTypes["image/png"] = struct{}{}
imageTypes["image/gif"] = struct{}{}
imageTypes["image/bmp"] = struct{}{}
imageTypes["image/tiff"] = struct{}{}
imageTypes["image/webp"] = struct{}{}
imageTypes["image/svg+xml"] = struct{}{}
// 判断文件类型是否为图片
_, ok := imageTypes[fileType]
if !ok {
return resp.SetStatus(basic.CodeFileUploadErr, "file upload err,file is not image")
}
// 读取数据流
ioData, err := io.ReadAll(fileObject)
@ -143,10 +162,30 @@ func (l *UploadLogoLogic) UploadLogo(req *types.UploadLogoReq, userinfo *auth.Us
logx.Error(err)
return resp.SetStatus(basic.CodeFileUploadLogoErr, "service fail")
}
resultStr = string(b)
if resultStr == "Internal Server Error" {
return resp.SetStatus(basic.CodeFileUploadLogoErr, resultStr)
if string(b) == "Internal Server Error" {
err = errors.New("BLMService fail Internal Server Error")
logx.Error(err)
return resp.SetStatus(basic.CodeFileUploadLogoErr, "service fail")
} else {
var resData map[string]interface{}
err = json.Unmarshal(b, &resData)
if err != nil || resData == nil {
logx.Error(err)
return resp.SetStatus(basic.CodeFileUploadLogoErr, "service fail")
}
if resData != nil {
if resData["code"].(string) == "200" {
resultStr = resData["data"].(string)
} else {
logx.Error(err)
return resp.SetStatus(basic.CodeFileUploadLogoErrType, "service fail")
}
} else {
logx.Error(err)
return resp.SetStatus(basic.CodeFileUploadLogoErr, "service fail")
}
}
var module = "logo"

View File

@ -165,17 +165,35 @@ func (l *defaultImageHandle) LogoCombine(ctx context.Context, in *LogoCombineReq
logx.Error(err)
return nil, err
}
ress := string(b)
if ress == "Internal Server Error" {
var resultStr string
if string(b) == "Internal Server Error" {
err = errors.New("BLMService fail Internal Server Error")
logx.Error(err)
return nil, err
} else {
var resData map[string]interface{}
err = json.Unmarshal(b, &resData)
if err != nil || resData == nil {
logx.Error(err)
return nil, err
}
if resData != nil {
if resData["code"].(string) == "200" {
resultStr = resData["data"].(string)
} else {
logx.Error(err)
return nil, err
}
} else {
logx.Error(err)
return nil, err
}
}
var resultData map[string]interface{}
err = json.Unmarshal(b, &resultData)
if err != nil {
err = json.Unmarshal([]byte(resultStr), &resultData)
if err != nil || resultData == nil {
logx.Error(err)
return nil, err
}

View File

@ -77,9 +77,10 @@ var (
CodeAesCbcEncryptionErr = &StatusResponse{5106, "encryption data err"} // 加密数据失败
CodeAesCbcDecryptionErr = &StatusResponse{5107, "decryption data err"} // 解密数据失败
CodeFileUploadErr = &StatusResponse{5110, "file upload err"} // 文件上传失败
CodeFileUploadLogoErr = &StatusResponse{5111, "logo upload err"} // 用户上传LOGO失败
CodeFileLogoCombineErr = &StatusResponse{5112, "logo upload err"} // 用户合图失败
CodeFileUploadErr = &StatusResponse{5110, "file upload err"} // 文件上传失败
CodeFileUploadLogoErr = &StatusResponse{5111, "logo upload err"} // 用户上传LOGO失败
CodeFileUploadLogoErrType = &StatusResponse{5111, "logo upload err file is not image"} // 用户上位LOGO失败"}
CodeFileLogoCombineErr = &StatusResponse{5112, "logo upload err"} // 用户合图失败
)
type Response struct {