|
@@ -3,8 +3,8 @@ package controllers
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
"hongze/hz_eta_api/models"
|
|
|
- "hongze/hz_eta_api/utils"
|
|
|
"html"
|
|
|
+ "strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
@@ -17,7 +17,7 @@ type BusinessConfController struct {
|
|
|
// Save
|
|
|
// @Title 保存配置
|
|
|
// @Description 保存配置
|
|
|
-// @Param request body models.BusinessConfSaveReq true "type json string"
|
|
|
+// @Param request body map[string]interface{} true "type json string"
|
|
|
// @Success 200 Ret=200 操作成功
|
|
|
// @router /save [post]
|
|
|
func (this *BusinessConfController) Save() {
|
|
@@ -36,122 +36,106 @@ func (this *BusinessConfController) Save() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- // 参数校验
|
|
|
- var req models.BusinessConfSaveReq
|
|
|
+ var req map[string]interface{}
|
|
|
if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
br.Msg = "参数解析异常!"
|
|
|
br.ErrMsg = "参数解析失败,Err:" + e.Error()
|
|
|
return
|
|
|
}
|
|
|
- req.Disclaimer = strings.TrimSpace(req.Disclaimer)
|
|
|
- if req.Disclaimer == "" {
|
|
|
- br.Msg = "请输入免责声明"
|
|
|
- return
|
|
|
- }
|
|
|
- req.CompanyName = strings.TrimSpace(req.CompanyName)
|
|
|
- if req.CompanyName == "" {
|
|
|
- br.Msg = "请输入公司名称"
|
|
|
- return
|
|
|
- }
|
|
|
- if len(req.CnPptCoverImgs) == 0 {
|
|
|
- br.Msg = "请上传中文PPT封面图"
|
|
|
- return
|
|
|
- }
|
|
|
- if len(req.CnPptCoverImgs) > 3 {
|
|
|
- br.Msg = "封面图最多上传3张"
|
|
|
- return
|
|
|
- }
|
|
|
- if req.CnPptBackgroundImg == "" {
|
|
|
- br.Msg = "请上传中文PPT背景图"
|
|
|
- return
|
|
|
- }
|
|
|
- if req.CnPptBackgroundImg == "" {
|
|
|
- br.Msg = "请上传中文PPT封底图"
|
|
|
- return
|
|
|
- }
|
|
|
- if len(req.EnPptCoverImgs) == 0 {
|
|
|
- br.Msg = "请上传英文PPT封面图"
|
|
|
- return
|
|
|
- }
|
|
|
- if len(req.EnPptCoverImgs) > 3 {
|
|
|
- br.Msg = "封面图最多上传3张"
|
|
|
- return
|
|
|
- }
|
|
|
- if req.EnPptBackgroundImg == "" {
|
|
|
- br.Msg = "请上传英文PPT背景图"
|
|
|
- return
|
|
|
- }
|
|
|
- if req.EnPptBottomImg == "" {
|
|
|
- br.Msg = "请上传英文PPT封底图"
|
|
|
- return
|
|
|
- }
|
|
|
- if req.UseXf == 1 {
|
|
|
- req.XfAppid = strings.TrimSpace(req.XfAppid)
|
|
|
- if req.XfAppid == "" {
|
|
|
- br.Msg = "请输入科大讯飞APPID"
|
|
|
- return
|
|
|
- }
|
|
|
- req.XfApiKey = strings.TrimSpace(req.XfApiKey)
|
|
|
- if req.XfApiKey == "" {
|
|
|
- br.Msg = "请输入科大讯飞APIKey"
|
|
|
- return
|
|
|
- }
|
|
|
- req.XfApiSecret = strings.TrimSpace(req.XfApiSecret)
|
|
|
- if req.XfApiSecret == "" {
|
|
|
- br.Msg = "请输入科大讯飞APISecret"
|
|
|
- return
|
|
|
- }
|
|
|
- req.XfVcn = strings.TrimSpace(req.XfVcn)
|
|
|
- if req.XfVcn == "" {
|
|
|
- br.Msg = "请输入科大讯飞Vcn"
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- item, e := models.GetBusinessConf()
|
|
|
- if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ // 获取配置信息
|
|
|
+ confOb := new(models.BusinessConf)
|
|
|
+ list, e := confOb.GetItemsByCondition("", make([]interface{}, 0), []string{}, "")
|
|
|
+ if e != nil {
|
|
|
br.Msg = "保存失败"
|
|
|
- br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
|
|
|
+ br.ErrMsg = "获取配置列表失败, Err: " + e.Error()
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- isUpdate := false
|
|
|
- if item != nil {
|
|
|
- isUpdate = true
|
|
|
- } else {
|
|
|
- item = new(models.BusinessConf)
|
|
|
+ confMap := make(map[string]*models.BusinessConf)
|
|
|
+ for _, c := range list {
|
|
|
+ confMap[c.ConfKey] = c
|
|
|
}
|
|
|
- item.CompanyName = req.CompanyName
|
|
|
- item.CompanyWatermark = req.CompanyWatermark
|
|
|
- item.WatermarkChart = req.WatermarkChart
|
|
|
- item.CnPptCoverImgs = strings.Join(req.CnPptCoverImgs, ",")
|
|
|
- item.CnPptBackgroundImg = req.CnPptBackgroundImg
|
|
|
- item.CnPptBottomImg = req.CnPptBottomImg
|
|
|
- item.Disclaimer = html.EscapeString(req.Disclaimer)
|
|
|
- item.EnPptCoverImgs = strings.Join(req.EnPptCoverImgs, ",")
|
|
|
- item.EnPptBackgroundImg = req.EnPptBackgroundImg
|
|
|
- item.EnPptBottomImg = req.EnPptBottomImg
|
|
|
- item.UseXf = req.UseXf
|
|
|
- item.XfAppid = req.XfAppid
|
|
|
- item.XfApiKey = req.XfApiKey
|
|
|
- item.XfApiSecret = req.XfApiSecret
|
|
|
- item.XfVcn = req.XfVcn
|
|
|
|
|
|
- if isUpdate {
|
|
|
- cols := []string{
|
|
|
- "CompanyName", "CompanyWatermark", "WatermarkChart", "CnPptCoverImgs", "CnPptBackgroundImg", "CnPptBottomImg", "Disclaimer",
|
|
|
- "EnPptCoverImgs", "EnPptBackgroundImg", "EnPptBottomImg", "UseXf", "XfAppid", "XfApiKey", "XfApiSecret", "XfVcn",
|
|
|
+ // 根据配置类型取值
|
|
|
+ updates := make([]models.BusinessConfUpdate, 0)
|
|
|
+ for k, v := range req {
|
|
|
+ // 过滤掉表中没有的key
|
|
|
+ conf := confMap[k]
|
|
|
+ if conf == nil {
|
|
|
+ continue
|
|
|
}
|
|
|
- if e = item.Update(cols); e != nil {
|
|
|
- br.Msg = "保存失败"
|
|
|
- br.ErrMsg = "更新商家配置失败, Err: " + e.Error()
|
|
|
- return
|
|
|
+
|
|
|
+ switch conf.ValType {
|
|
|
+ case 1: // 字符串
|
|
|
+ str, ok := v.(string)
|
|
|
+ if !ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ str = strings.TrimSpace(str)
|
|
|
+ if conf.Necessary == 1 && str == "" {
|
|
|
+ br.Msg = conf.Remark + "不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ updates = append(updates, models.BusinessConfUpdate{
|
|
|
+ ConfKey: k,
|
|
|
+ ConfVal: str,
|
|
|
+ })
|
|
|
+ case 2: // 数值
|
|
|
+ num, ok := v.(float64)
|
|
|
+ if !ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if conf.Necessary == 1 && num <= 0 {
|
|
|
+ br.Msg = conf.Remark + "不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ val := strconv.FormatFloat(num, 'f', 0, 64)
|
|
|
+ updates = append(updates, models.BusinessConfUpdate{
|
|
|
+ ConfKey: k,
|
|
|
+ ConfVal: val,
|
|
|
+ })
|
|
|
+ case 3: // 字符串数组
|
|
|
+ arr, ok := v.([]interface{})
|
|
|
+ if !ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if conf.Necessary == 1 && len(arr) == 0 {
|
|
|
+ br.Msg = conf.Remark + "不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ strArr := make([]string, 0)
|
|
|
+ for _, a := range arr {
|
|
|
+ if s, ok2 := a.(string); ok2 {
|
|
|
+ strArr = append(strArr, s)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ val := strings.Join(strArr, ",")
|
|
|
+ updates = append(updates, models.BusinessConfUpdate{
|
|
|
+ ConfKey: k,
|
|
|
+ ConfVal: val,
|
|
|
+ })
|
|
|
+ case 4: // 富文本
|
|
|
+ content, ok := v.(string)
|
|
|
+ if !ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ content = strings.TrimSpace(content)
|
|
|
+ if conf.Necessary == 1 && content == "" {
|
|
|
+ br.Msg = conf.Remark + "不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ content = html.EscapeString(content)
|
|
|
+ updates = append(updates, models.BusinessConfUpdate{
|
|
|
+ ConfKey: k,
|
|
|
+ ConfVal: content,
|
|
|
+ })
|
|
|
}
|
|
|
- } else {
|
|
|
- if e = item.Create(); e != nil {
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(updates) > 0 {
|
|
|
+ if e = models.UpdateBusinessConfMulti(updates); e != nil {
|
|
|
br.Msg = "保存失败"
|
|
|
- br.ErrMsg = "新增商家配置失败, Err: " + e.Error()
|
|
|
+ br.ErrMsg = "保存商家配置失败, Err: " + e.Error()
|
|
|
return
|
|
|
}
|
|
|
}
|
|
@@ -197,34 +181,14 @@ func (this *BusinessConfController) Fetch() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- item, e := models.GetBusinessConf()
|
|
|
- if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "保存失败"
|
|
|
+ list, e := models.GetBusinessConf()
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
|
|
|
return
|
|
|
}
|
|
|
- res := new(models.BusinessConfItem)
|
|
|
- res.CnPptCoverImgs = make([]string, 0)
|
|
|
- res.EnPptCoverImgs = make([]string, 0)
|
|
|
- if item != nil {
|
|
|
- res.CompanyName = item.CompanyName
|
|
|
- res.CompanyWatermark = item.CompanyWatermark
|
|
|
- res.WatermarkChart = item.WatermarkChart
|
|
|
- res.CnPptCoverImgs = strings.Split(item.CnPptCoverImgs, ",")
|
|
|
- res.CnPptBackgroundImg = item.CnPptBackgroundImg
|
|
|
- res.CnPptBottomImg = item.CnPptBottomImg
|
|
|
- res.Disclaimer = html.UnescapeString(item.Disclaimer)
|
|
|
- res.EnPptCoverImgs = strings.Split(item.EnPptCoverImgs, ",")
|
|
|
- res.EnPptBackgroundImg = item.EnPptBackgroundImg
|
|
|
- res.EnPptBottomImg = item.EnPptBottomImg
|
|
|
- res.UseXf = item.UseXf
|
|
|
- res.XfAppid = item.XfAppid
|
|
|
- res.XfApiKey = item.XfApiKey
|
|
|
- res.XfApiSecret = item.XfApiSecret
|
|
|
- res.XfVcn = item.XfVcn
|
|
|
- }
|
|
|
|
|
|
- br.Data = res
|
|
|
+ br.Data = list
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|