Browse Source

fix: 忽略wind指定错误码

hsun 1 year ago
parent
commit
5fe33a1840
2 changed files with 29 additions and 0 deletions
  1. 19 0
      controllers/base_from_wind.go
  2. 10 0
      services/base_from_wind.go

+ 19 - 0
controllers/base_from_wind.go

@@ -101,6 +101,12 @@ func (this *WindController) Add() {
 			br.Msg = "指标超限!"
 			return
 		}
+		// 指标下架
+		if errCode == services.WindNoAuthCode {
+			br.Ret = 4052
+			br.Msg = "指标已下架"
+			return
+		}
 		if err != nil {
 			br.Msg = "获取指标信息失败!"
 			br.ErrMsg = "获取指标信息失败 GetEdbDataFromWind,Err:" + err.Error()
@@ -185,6 +191,19 @@ func (this *WindController) Refresh() {
 		br.Msg = "指标超限!"
 		return
 	}
+	// 忽略掉指标下架的错误, 并更新指标为停止更新
+	if errCode == services.WindNoAuthCode {
+		edbInfo.NoUpdate = 1
+		edbInfo.ModifyTime = time.Now().Local()
+		if e := edbInfo.Update([]string{"NoUpdate", "ModifyTime"}); e != nil {
+			br.Msg = "刷新失败"
+			br.ErrMsg = "更新wind指标停更失败, Err: " + e.Error()
+			return
+		}
+		br.Ret = 200
+		br.Msg = "操作成功"
+		return
+	}
 	if err != nil {
 		br.Msg = "获取指标信息失败!"
 		br.ErrMsg = "获取指标信息失败 GetEdbDataFromWind,Err:" + err.Error()

+ 10 - 0
services/base_from_wind.go

@@ -11,6 +11,10 @@ import (
 	"time"
 )
 
+const (
+	WindNoAuthCode = -40522015
+)
+
 // GetEdbDataFromWind 获取wind数据
 func GetEdbDataFromWind(edbCode, startDate, endDate string) (item *models.EdbDataFromWind, errorCode int, err error) {
 	windUrl, err := GetWindUrl(edbCode)
@@ -65,6 +69,9 @@ func GetEdbDataFromWind(edbCode, startDate, endDate string) (item *models.EdbDat
 				}
 				go alarm_msg.SendAlarmMsg(fmt.Sprintf("wind数据服务异常,edbCode:%s,ErrorCode:%d,result:%s", edbCode, item.ErrorCode["0"], string(body)), 3)
 				return GetEdbDataFromWind(edbCode, startDate, endDate)
+			} else if item.ErrorCode["0"] == WindNoAuthCode {
+				// 指标下架, 无权限
+				return nil, WindNoAuthCode, nil
 			} else {
 				go alarm_msg.SendAlarmMsg(fmt.Sprintf("wind数据服务异常,edbCode:%s,ErrorCode:%d,result:%s", edbCode, item.ErrorCode["0"], string(body)), 3)
 			}
@@ -119,6 +126,9 @@ func GetEdbDataFromWindUrl(windUrl, edbCode, startDate, endDate string) (item *m
 				err = errors.New("No Python API Authority")
 				go alarm_msg.SendAlarmMsg(fmt.Sprintf("wind数据服务异常,edbCode:%s,ErrorCode:%d,result:%s", edbCode, item.ErrorCode["0"], string(body)), 3)
 				return
+			} else if item.ErrorCode["0"] == WindNoAuthCode {
+				// 指标下架, 无权限
+				return nil, WindNoAuthCode, nil
 			} else {
 				go alarm_msg.SendAlarmMsg(fmt.Sprintf("wind数据服务异常,edbCode:%s,ErrorCode:%d,result:%s", edbCode, item.ErrorCode["0"], string(body)), 3)
 			}