|
@@ -7,6 +7,11 @@ import (
|
|
"github.com/shopspring/decimal"
|
|
"github.com/shopspring/decimal"
|
|
"hongze/fms_api/models/fms"
|
|
"hongze/fms_api/models/fms"
|
|
"hongze/fms_api/services/alarm_msg"
|
|
"hongze/fms_api/services/alarm_msg"
|
|
|
|
+ "hongze/fms_api/services/resource"
|
|
|
|
+ "hongze/fms_api/utils"
|
|
|
|
+ "os"
|
|
|
|
+ "regexp"
|
|
|
|
+ "strings"
|
|
"time"
|
|
"time"
|
|
)
|
|
)
|
|
|
|
|
|
@@ -70,7 +75,7 @@ func CheckContractRegisterAmount(registerId int) {
|
|
}
|
|
}
|
|
|
|
|
|
// HandleContractServiceAndDetail 根据请求数据获取套餐服务详情信息
|
|
// HandleContractServiceAndDetail 根据请求数据获取套餐服务详情信息
|
|
-func HandleContractServiceAndDetail(productId int, serviceList []fms.ContractServiceAddReq) (serviceDetailList []*fms.ContractServiceAndDetail, err error) {
|
|
|
|
|
|
+func HandleContractServiceAndDetail(productId int, serviceList []fms.ContractServiceAddReq, base642Image bool) (serviceDetailList []*fms.ContractServiceAndDetail, err error) {
|
|
serviceDetailList = make([]*fms.ContractServiceAndDetail, 0)
|
|
serviceDetailList = make([]*fms.ContractServiceAndDetail, 0)
|
|
if len(serviceList) < 0 {
|
|
if len(serviceList) < 0 {
|
|
err = errors.New("请至少选择一种套餐")
|
|
err = errors.New("请至少选择一种套餐")
|
|
@@ -161,19 +166,19 @@ func HandleContractServiceAndDetail(productId int, serviceList []fms.ContractSer
|
|
if len(detailList) > 0 {
|
|
if len(detailList) > 0 {
|
|
hasDetail = "是"
|
|
hasDetail = "是"
|
|
}
|
|
}
|
|
- // 报价单图片地址(暂无)
|
|
|
|
|
|
+ // 报价单图片地址
|
|
newValue := item.Value
|
|
newValue := item.Value
|
|
- //if base642Image {
|
|
|
|
- // b, _ := regexp.MatchString(`^data:\s*image\/(\w+);base64,`, newValue)
|
|
|
|
- // if b {
|
|
|
|
- // imageUrl, uploadErr := UploadImageBase64(newValue)
|
|
|
|
- // if uploadErr != nil {
|
|
|
|
- // err = errors.New(fmt.Sprint("base64图片上传失败:", uploadErr))
|
|
|
|
- // return
|
|
|
|
- // }
|
|
|
|
- // newValue = imageUrl
|
|
|
|
- // }
|
|
|
|
- //}
|
|
|
|
|
|
+ if base642Image {
|
|
|
|
+ b, _ := regexp.MatchString(`^data:\s*image\/(\w+);base64,`, newValue)
|
|
|
|
+ if b {
|
|
|
|
+ imageUrl, e := UploadImageBase64(newValue)
|
|
|
|
+ if e != nil {
|
|
|
|
+ err = errors.New(fmt.Sprint("base64图片上传失败:", e))
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ newValue = imageUrl
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
// 合同模板
|
|
// 合同模板
|
|
serviceTemp, e := fms.GetContractServiceTemplateById(item.ServiceTemplateId)
|
|
serviceTemp, e := fms.GetContractServiceTemplateById(item.ServiceTemplateId)
|
|
@@ -218,3 +223,38 @@ func GetContractServiceAndDetail(contractRegisterId int) (serviceList []*fms.Con
|
|
}
|
|
}
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// UploadImageBase64 将base64的图片上传至oss
|
|
|
|
+func UploadImageBase64(base64Str string) (resourceUrl string, err error) {
|
|
|
|
+ ext := ".png"
|
|
|
|
+ uploadDir := "./static"
|
|
|
|
+ randStr := utils.GetRandStringNoSpecialChar(28)
|
|
|
|
+ fileName := randStr + ext
|
|
|
|
+ fpath := uploadDir + "/" + fileName
|
|
|
|
+
|
|
|
|
+ b, _ := regexp.MatchString(`^data:\s*image\/(\w+);base64,`, base64Str)
|
|
|
|
+ if !b {
|
|
|
|
+ err = errors.New("图片格式不正确")
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ re, _ := regexp.Compile(`^data:\s*image\/(\w+);base64,`)
|
|
|
|
+ base64Str = re.ReplaceAllString(base64Str, "")
|
|
|
|
+ base64Str = strings.Replace(base64Str, " ", "", -1)
|
|
|
|
+
|
|
|
|
+ base64Str = strings.Replace(base64Str, " ", "", -1)
|
|
|
|
+ err = utils.SaveBase64ToFile(base64Str, fpath)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ defer os.Remove(fpath)
|
|
|
|
+
|
|
|
|
+ savePath := utils.OssUploadImgDir + time.Now().Format("200601/20060102/")
|
|
|
|
+ savePath += fileName
|
|
|
|
+ // 上传到阿里云
|
|
|
|
+ err = resource.UploadVideoAliyun(fileName, fpath, savePath)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ resourceUrl = utils.OssHost + savePath
|
|
|
|
+ return
|
|
|
|
+}
|