Browse Source

feat:优化同花顺数据获取

Roc 2 years ago
parent
commit
570b58f56d
2 changed files with 10 additions and 10 deletions
  1. 2 2
      controllers/future_good/future_good_edb_info.go
  2. 8 8
      services/base_from_ths_http.go

+ 2 - 2
controllers/future_good/future_good_edb_info.go

@@ -71,7 +71,7 @@ func (this *FutureGoodEdbInfoController) Add() {
 		dataItem, err := services.GetFutureGoodDataFromThsHttp(req.EdbCode, utils.BASE_START_DATE, endDate)
 		if err != nil {
 			br.Msg = "获取指标信息失败!"
-			br.ErrMsg = "获取指标信息失败 GetEdbDataFromWind,Err:" + err.Error()
+			br.ErrMsg = "获取指标信息失败 GetFutureGoodDataFromThsHttp,Err:" + err.Error()
 			return
 		}
 
@@ -170,7 +170,7 @@ func (this *FutureGoodEdbInfoController) Refresh() {
 	dataItem, err := services.GetFutureGoodDataFromThsHttp(req.FutureGoodEdbCode, req.StartDate, endDate)
 	if err != nil {
 		br.Msg = "获取指标信息失败!"
-		br.ErrMsg = "获取指标信息失败 GetEdbDataFromWind,Err:" + err.Error()
+		br.ErrMsg = "获取指标信息失败 GetFutureGoodDataFromThsHttp,Err:" + err.Error()
 		return
 	}
 	err = future_good.RefreshFutureGoodEdbDataFromThs(req.FutureGoodEdbInfoId, req.FutureGoodEdbCode, req.StartDate, dataItem)

+ 8 - 8
services/base_from_ths_http.go

@@ -16,6 +16,7 @@ import (
 
 // refreshToken 同花顺刷新token
 var refreshToken = `eyJzaWduX3RpbWUiOiIyMDIzLTAzLTI0IDEzOjQ3OjExIn0=.eyJ1aWQiOiI1NzY2NDgxMDkifQ==.339B8D21168AC21A0F80840544E38378AB2D04A02D325F0CD1C44251915233F6`
+var tokenRedisKey = `THS_SERVER_ACCESS_TOKEN`
 
 func GetEdbDataFromThsHttp(edbCode, startDate, endDate string) (item EdbDataFromThs, err error) {
 	thsUrl := `https://quantapi.51ifind.com/api/v1/edb_service`
@@ -94,9 +95,8 @@ func GetEdbDataFromThsHttp(edbCode, startDate, endDate string) (item EdbDataFrom
 	return
 }
 
-// GetFutureGoodDataFromThsHttp 通过url获取wind的商品数据
+// GetFutureGoodDataFromThsHttp 通过url获取同花顺的商品数据
 func GetFutureGoodDataFromThsHttp(edbCode, startDate, endDate string) (item FutureGoodDataFromThs, err error) {
-	//thsUrl := utils.Hz_Wind_Data_Url + `edbInfo/ths/future_good?EdbCode=%s&StartDate=%s&EndDate=%s`
 	thsUrl := `https://quantapi.51ifind.com/api/v1/cmd_history_quotation`
 
 	//codes 是 半角逗号分隔的所有代码 "codes":"300033.SZ,600030.SH"
@@ -197,7 +197,7 @@ func postCurl(urlStr string, dataMap map[string]interface{}, num int) (body []by
 	}
 	//logMsg = fmt.Sprint("post request:", reqStr, "; response:", string(body))
 	//utils.FileLog.Info(logMsg)
-	logMsg = fmt.Sprint("post request url:", urlStr, ";params:", reqStr, ";response:", string(body))
+	logMsg = fmt.Sprint("post request url:", urlStr, ";token:", token, ";params:", reqStr, ";response:", string(body))
 
 	var response BaseThsInterface
 	err = json.Unmarshal(body, &response)
@@ -206,10 +206,10 @@ func postCurl(urlStr string, dataMap map[string]interface{}, num int) (body []by
 		err = errors.New("Unmarshal Err:" + err.Error())
 		return
 	}
-	utils.FileLog.Info(fmt.Sprint("post request url:", urlStr, ";params:", reqStr, ";response:", string(body)))
+	utils.FileLog.Info(fmt.Sprint("post request url:", urlStr, ";token:", token, ";params:", reqStr, ";response:", string(body)))
 
 	//如果是token失效,同时只是第一次请求(没有尝试强制刷新token,那么重新请求)
-	if response.ErrorCode == -1010 && num <= 0 {
+	if utils.InArrayByInt([]int{-1010}, int(response.ErrorCode)) && num <= 0 {
 		//token失效
 		_, tmpErr := refreshAccessToken()
 		if tmpErr != nil {
@@ -227,7 +227,6 @@ func postCurl(urlStr string, dataMap map[string]interface{}, num int) (body []by
 }
 
 // GetAccessToken 获取accessToken
-
 func GetAccessToken(isRefresh bool) (token string, err error) {
 	defer func() {
 		if err != nil {
@@ -235,7 +234,7 @@ func GetAccessToken(isRefresh bool) (token string, err error) {
 			//go utils.SendEmail(utils.APPNAME+"获取上海的token失败:"+time.Now().Format("2006-01-02 15:04:05"), err.Error(), utils.EmailSendToUsers)
 		}
 	}()
-	token, redisErr := utils.Rc.RedisString("SH_ACCESS_TOKEN")
+	token, redisErr := utils.Rc.RedisString(tokenRedisKey)
 	//如果从redis中accessToken 获取失败或者token为空了,再或者需要强制刷新了,那么重新获取accessToken
 	if redisErr != nil || token == `` || isRefresh {
 		return refreshAccessToken()
@@ -265,7 +264,7 @@ func refreshAccessToken() (token string, err error) {
 	}
 
 	//token存入redis
-	err = utils.Rc.Put("THS_SERVER_ACCESS_TOKEN", token, time.Duration(expireTime.Unix()-600)*time.Second)
+	err = utils.Rc.Put(tokenRedisKey, token, time.Duration(expireTime.Unix()-600)*time.Second)
 	if err != nil {
 		go alarm_msg.SendAlarmMsg("获取同花顺的token失败;同花顺token存入redis失败,ERR:"+err.Error(), 3)
 		//go utils.SendEmail(utils.APPNAME+"获取上海的token失败:"+time.Now().Format("2006-01-02 15:04:05"), "上海token存入redis失败:", utils.EmailSendToUsers)
@@ -306,6 +305,7 @@ func getAccessToken() (tokenData TokenData, err error) {
 		err = errors.New("NewRequest Err:" + err.Error())
 		return
 	}
+	utils.FileLog.Info("同花顺刷新token:" + string(body))
 
 	var tokenResp GetTokenResp
 	err = json.Unmarshal(body, &tokenResp)