Forráskód Böngészése

Merge branch 'feature/eta1.9.1_edb_refresh' into debug

# Conflicts:
#	models/business_conf.go
xyxie 10 hónapja
szülő
commit
592d578314
3 módosított fájl, 216 hozzáadás és 34 törlés
  1. 147 0
      controllers/business_conf.go
  2. 51 34
      models/business_conf.go
  3. 18 0
      routers/commentsRouter.go

+ 147 - 0
controllers/business_conf.go

@@ -279,3 +279,150 @@ func (this *BusinessConfOpenController) CodeEncrypt() {
 	br.Success = true
 	br.Msg = "获取成功"
 }
+
+// SingleSave
+// @Title 保存单项配置
+// @Description 保存配置
+// @Param	request	body map[string]interface{} true "type json string"
+// @Success 200 Ret=200 操作成功
+// @router /single/save [post]
+func (this *BusinessConfController) SingleSave() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req models.BusinessConfSingleSaveReq
+	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + e.Error()
+		return
+	}
+
+	if req.ConfKey == "" {
+		br.Msg = "参数异常!"
+		return
+	}
+
+	// 设置白名单,只有白名单里的配置才允许保存
+	writeList := []string{models.BusinessConfEdbStopRefreshRule}
+	if !utils.InArrayByStr(writeList, req.ConfKey) {
+		br.Msg = "不支持该项配置"
+		return
+	}
+	// 获取配置信息
+	confOb, e := models.GetBusinessConfByKey(req.ConfKey)
+	if e != nil {
+		if e.Error() == utils.ErrNoRow() {
+			br.Msg = "配置不存在"
+			return
+		}
+		br.Msg = "保存失败"
+		br.ErrMsg = "获取配置失败, Err: " + e.Error()
+		return
+	}
+
+	switch confOb.ValType {
+	case 1: // 字符串
+		req.ConfVal = strings.TrimSpace(req.ConfVal)
+		if confOb.Necessary == 1 && req.ConfVal == "" {
+			br.Msg = confOb.Remark + "不可为空"
+			return
+		}
+	}
+	if req.ConfKey == models.BusinessConfEdbStopRefreshRule {
+		//将json转为结构体
+		rule := new(models.EdbStopRefreshRule)
+		err := json.Unmarshal([]byte(req.ConfVal), rule)
+		if err != nil {
+			br.Msg = confOb.Remark + "格式错误"
+			return
+		}
+	}
+	if confOb.ConfVal != req.ConfVal {
+		confOb.ConfVal = req.ConfVal
+		if e = confOb.Update([]string{"ConfVal"}); e != nil {
+			br.Msg = "保存失败"
+			br.ErrMsg = "保存商家配置失败, Err: " + e.Error()
+			return
+		}
+		// 操作日志
+		go func() {
+			b, e := json.Marshal(req)
+			if e != nil {
+				return
+			}
+			recordOb := new(models.BusinessConfOperationRecord)
+			recordOb.SysUserId = sysUser.AdminId
+			recordOb.SysRealName = sysUser.RealName
+			recordOb.Content = string(b)
+			recordOb.CreateTime = time.Now().Local()
+			_ = recordOb.Create()
+		}()
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}
+
+// GetSingle
+// @Title 获取单项配置
+// @Description 保存配置
+// @Param	request	body map[string]interface{} true "type json string"
+// @Success 200 Ret=200 操作成功
+// @router /single [get]
+func (this *BusinessConfController) GetSingle() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	confKey := this.GetString("ConfKey")
+	if confKey == "" {
+		br.Msg = "参数异常!"
+		return
+	}
+
+	// 设置白名单,只有白名单里的配置才允许保存
+	writeList := []string{models.BusinessConfEdbStopRefreshRule}
+	if !utils.InArrayByStr(writeList, confKey) {
+		br.Msg = "不支持该项配置"
+		return
+	}
+	// 获取配置信息
+	confOb, e := models.GetBusinessConfByKey(confKey)
+	if e != nil {
+		if e.Error() == utils.ErrNoRow() {
+			br.Msg = "配置不存在"
+			return
+		}
+		br.Msg = "保存失败"
+		br.ErrMsg = "获取配置失败, Err: " + e.Error()
+		return
+	}
+	resp := models.BusinessConfSingleResp{ConfVal: confOb.ConfVal}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+	br.Data = resp
+}

+ 51 - 34
models/business_conf.go

@@ -9,43 +9,45 @@ import (
 )
 
 const (
-	BusinessConfUseXf                     = "UseXf"
-	BusinessConfXfAppid                   = "XfAppid"
-	BusinessConfXfApiKey                  = "XfApiKey"
-	BusinessConfXfApiSecret               = "XfApiSecret"
-	BusinessConfXfVcn                     = "XfVcn"
-	BusinessConfEnPptCoverImgs            = "EnPptCoverImgs"
-	BusinessConfIsReportApprove           = "IsReportApprove"
-	BusinessConfReportApproveType         = "ReportApproveType"
-	BusinessConfCompanyName               = "CompanyName"
-	BusinessConfCompanyWatermark          = "CompanyWatermark"
-	BusinessConfWatermarkChart            = "WatermarkChart"
-	BusinessConfLoginSmsTpId              = "LoginSmsTpId"
-	BusinessConfLoginSmsGjTpId            = "LoginSmsGjTpId"
-	BusinessConfSmsJhgnAppKey             = "SmsJhgnAppKey"
-	BusinessConfSmsJhgjAppKey             = "SmsJhgjAppKey"
-	BusinessConfLdapHost                  = "LdapHost"
-	BusinessConfLdapBase                  = "LdapBase"
-	BusinessConfLdapPort                  = "LdapPort"
-	BusinessConfEmailClient               = "EmailClient"
-	BusinessConfEmailServerHost           = "EmailServerHost"
-	BusinessConfEmailServerPort           = "EmailServerPort"
-	BusinessConfEmailSender               = "EmailSender"
-	BusinessConfEmailSenderUserName       = "EmailSenderUserName"
-	BusinessConfEmailSenderPassword       = "EmailSenderPassword"
-	BusinessConfSmsClient                 = "SmsClient"
-	BusinessConfNanHuaSmsAppKey           = "NanHuaSmsAppKey"
-	BusinessConfNanHuaSmsAppSecret        = "NanHuaSmsAppSecret"
-	BusinessConfNanHuaSmsApiHost          = "NanHuaSmsApiHost"
-	BusinessConfLoginSmsTplContent        = "LoginSmsTplContent"
-	BusinessConfLoginEmailTemplateSubject = "LoginEmailTemplateSubject"
-	BusinessConfLoginEmailTemplateContent = "LoginEmailTemplateContent"
-	BusinessConfLdapBindUserSuffix        = "LdapBindUserSuffix"
-	BusinessConfLdapUserFilter            = "LdapUserFilter"
-	BusinessConfSmsJhgjVariable           = "SmsJhgjVariable" // 聚合国际短信变量
+	BusinessConfUseXf                        = "UseXf"
+	BusinessConfXfAppid                      = "XfAppid"
+	BusinessConfXfApiKey                     = "XfApiKey"
+	BusinessConfXfApiSecret                  = "XfApiSecret"
+	BusinessConfXfVcn                        = "XfVcn"
+	BusinessConfEnPptCoverImgs               = "EnPptCoverImgs"
+	BusinessConfIsReportApprove              = "IsReportApprove"
+	BusinessConfReportApproveType            = "ReportApproveType"
+	BusinessConfCompanyName                  = "CompanyName"
+	BusinessConfCompanyWatermark             = "CompanyWatermark"
+	BusinessConfWatermarkChart               = "WatermarkChart"
+	BusinessConfLoginSmsTpId                 = "LoginSmsTpId"
+	BusinessConfLoginSmsGjTpId               = "LoginSmsGjTpId"
+	BusinessConfSmsJhgnAppKey                = "SmsJhgnAppKey"
+	BusinessConfSmsJhgjAppKey                = "SmsJhgjAppKey"
+	BusinessConfLdapHost                     = "LdapHost"
+	BusinessConfLdapBase                     = "LdapBase"
+	BusinessConfLdapPort                     = "LdapPort"
+	BusinessConfEmailClient                  = "EmailClient"
+	BusinessConfEmailServerHost              = "EmailServerHost"
+	BusinessConfEmailServerPort              = "EmailServerPort"
+	BusinessConfEmailSender                  = "EmailSender"
+	BusinessConfEmailSenderUserName          = "EmailSenderUserName"
+	BusinessConfEmailSenderPassword          = "EmailSenderPassword"
+	BusinessConfSmsClient                    = "SmsClient"
+	BusinessConfNanHuaSmsAppKey              = "NanHuaSmsAppKey"
+	BusinessConfNanHuaSmsAppSecret           = "NanHuaSmsAppSecret"
+	BusinessConfNanHuaSmsApiHost             = "NanHuaSmsApiHost"
+	BusinessConfLoginSmsTplContent           = "LoginSmsTplContent"
+	BusinessConfLoginEmailTemplateSubject    = "LoginEmailTemplateSubject"
+	BusinessConfLoginEmailTemplateContent    = "LoginEmailTemplateContent"
+	BusinessConfLdapBindUserSuffix           = "LdapBindUserSuffix"
+	BusinessConfLdapUserFilter               = "LdapUserFilter"
+	BusinessConfSmsJhgjVariable              = "SmsJhgjVariable"              // 聚合国际短信变量
 	BusinessConfTencentApiSecretId           = "TencentApiSecretId"           // 腾讯云API-密钥对
 	BusinessConfTencentApiSecretKey          = "TencentApiSecretKey"          // 腾讯云API-密钥对
 	BusinessConfTencentApiRecTaskCallbackUrl = "TencentApiRecTaskCallbackUrl" // 腾讯云API-语音识别回调地址
+
+	BusinessConfEdbStopRefreshRule = "EdbStopRefreshRule" // 是否停止指标刷新规则
 )
 
 const (
@@ -219,3 +221,18 @@ func GetBusinessConfByKey(key string) (item *BusinessConf, err error) {
 	err = o.Raw(sql, key).QueryRow(&item)
 	return
 }
+
+type BusinessConfSingleSaveReq struct {
+	ConfKey string `description:"配置Key"`
+	ConfVal string `description:"配置值"`
+}
+
+type EdbStopRefreshRule struct {
+	IsOpen            int `description:"是否开启自动禁用1,开启,0未开启"`
+	BaseIndexStopDays int `description:"数据源间隔天数未加入指标库则停用"`
+	EdbStopDays       int `description:"指标库间隔天数未引用则停用"`
+}
+
+type BusinessConfSingleResp struct {
+	ConfVal string
+}

+ 18 - 0
routers/commentsRouter.go

@@ -6946,6 +6946,24 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers:BusinessConfController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:BusinessConfController"],
+        beego.ControllerComments{
+            Method: "GetSingle",
+            Router: `/single`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_api/controllers:BusinessConfController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:BusinessConfController"],
+        beego.ControllerComments{
+            Method: "SingleSave",
+            Router: `/single/save`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers:BusinessConfOpenController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:BusinessConfOpenController"],
         beego.ControllerComments{
             Method: "CodeEncrypt",