Переглянути джерело

feat:新增获取图表临时token接口

Roc 2 місяців тому
батько
коміт
8a8390f3fd

+ 55 - 0
controllers/data_manage/chart_common.go

@@ -351,3 +351,58 @@ func getBalanceChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoVie
 
 	return
 }
+
+// GeneralChartToken
+// @Title 根据图表唯一code生成token
+// @Description 根据编码获取图表详情接口
+// @Param   UniqueCode   query   int  true       "图表唯一编码,如果是管理后台访问,传固定字符串:7c69b590249049942070ae9dcd5bf6dc"
+// @Success 200 {object} data_manage.ChartInfoDetailFromUniqueCodeResp
+// @router /chart_info/common/general_token [get]
+func (this *ChartInfoController) GeneralChartToken() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	uniqueCode := this.GetString("UniqueCode")
+	if uniqueCode == "" {
+		br.Msg = "参数错误"
+		br.ErrMsg = "参数错误,uniqueCode is empty"
+		return
+	}
+
+	businessConf, err := models.GetBusinessConfByKey(models.BusinessConfChartAuth)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取配置失败,Err:" + err.Error()
+		return
+	}
+
+	var token string
+	if businessConf.ConfVal == `true` {
+		// 缓存key
+		token = utils.MD5(fmt.Sprint(`chart:`, uniqueCode, time.Now().UnixNano()/1e6))
+		key := fmt.Sprint(utils.CACHE_CHART_AUTH, `chart:`, token)
+		err = utils.Rc.Put(key, uniqueCode, 30*time.Minute)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败"
+			return
+		}
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = token
+
+	return
+}

+ 2 - 0
models/business_conf.go

@@ -12,6 +12,7 @@ import (
 var (
 	BusinessConfMap map[string]string
 )
+
 const (
 	BusinessConfUseXf                     = "UseXf"
 	BusinessConfXfAppid                   = "XfAppid"
@@ -55,6 +56,7 @@ const (
 	BusinessConfEdbStopRefreshRule = "EdbStopRefreshRule" // 是否停止指标刷新规则
 	BusinessConfReport2ImgUrl      = "Report2ImgUrl"      // 报告转长图地址(用于兼容内外网环境的)
 	BusinessConfReportViewUrl      = "ReportViewUrl"      // 报告详情地址
+	BusinessConfChartAuth          = "ChartAuth"          // 图表是否鉴权
 )
 
 const (

+ 9 - 0
routers/commentsRouter.go

@@ -3445,6 +3445,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"],
+        beego.ControllerComments{
+            Method: "GeneralChartToken",
+            Router: `/chart_info/common/general_token`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"],
         beego.ControllerComments{
             Method: "ChartInfoConvertDetail",

+ 1 - 0
utils/constants.go

@@ -253,6 +253,7 @@ const (
 	CACHE_EDB_TERMINAL_CODE_URL      = "edb:terminal_code:edb_code:"     // 指标与终端关系的缓存
 
 	CACHE_KEY_REPLACE_EDB = "eta:replace_edb" //系统用户操作日志队列
+	CACHE_CHART_AUTH      = "chart:auth:"     //图表数据
 )
 
 // 模板消息推送类型