Browse Source

fix:同花顺刷新调整到测试环境走终端,生产环境调用官方api

Roc 1 year ago
parent
commit
0863478a75

+ 2 - 2
controllers/base_from_ths.go

@@ -43,7 +43,7 @@ func (this *ThsController) Add() {
 	cacheKey = utils.CACHE_EDB_DATA_ADD + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
-		dataItem, err := services.GetEdbDataFromThsHttp(req.EdbCode, utils.BASE_START_DATE, utils.BASE_END_DATE)
+		dataItem, err := services.GetEdbDataFromThs(req.EdbCode, utils.BASE_START_DATE, utils.BASE_END_DATE)
 		if err != nil {
 			br.Msg = "获取指标信息失败!"
 			br.ErrMsg = "获取指标信息失败 GetEdbDataFromThs,Err:" + err.Error()
@@ -114,7 +114,7 @@ func (this *ThsController) Refresh() {
 	defer func() {
 		utils.Rc.Delete(cacheKey)
 	}()
-	dataItem, err := services.GetEdbDataFromThsHttp(req.EdbCode, req.StartDate, utils.BASE_END_DATE)
+	dataItem, err := services.GetEdbDataFromThs(req.EdbCode, req.StartDate, utils.BASE_END_DATE)
 	if err != nil {
 		br.Msg = "获取指标信息失败!"
 		br.ErrMsg = "获取指标信息失败 GetEdbDataFromThs,Err:" + err.Error()

+ 4 - 4
controllers/future_good/future_good_edb_info.go

@@ -70,10 +70,10 @@ func (this *FutureGoodEdbInfoController) Add() {
 		}
 		endDate := time.Now().Format(utils.FormatDate)
 
-		dataItem, err := services.GetFutureGoodDataFromThsHttp(req.EdbCode, utils.BASE_START_DATE, endDate)
+		dataItem, err := services.GetFutureGoodDataFromThs(req.EdbCode, utils.BASE_START_DATE, endDate)
 		if err != nil {
 			br.Msg = "获取指标信息失败!"
-			br.ErrMsg = "获取指标信息失败 GetFutureGoodDataFromThsHttp,Err:" + err.Error()
+			br.ErrMsg = "获取指标信息失败 GetFutureGoodDataFromThs,Err:" + err.Error()
 			return
 		}
 
@@ -169,10 +169,10 @@ func (this *FutureGoodEdbInfoController) Refresh() {
 	if startDate == `` { // 如果传入的日期为空的话,那么就默认兼容一周的数据吧
 		startDate = endDateTime.AddDate(0, 0, -7).Format(utils.FormatDate)
 	}
-	dataItem, err := services.GetFutureGoodDataFromThsHttp(req.FutureGoodEdbCode, req.StartDate, endDate)
+	dataItem, err := services.GetFutureGoodDataFromThs(req.FutureGoodEdbCode, req.StartDate, endDate)
 	if err != nil {
 		br.Msg = "获取指标信息失败!"
-		br.ErrMsg = "获取指标信息失败 GetFutureGoodDataFromThsHttp,Err:" + err.Error()
+		br.ErrMsg = "获取指标信息失败 GetFutureGoodDataFromThs,Err:" + err.Error()
 		return
 	}
 	err = future_good.RefreshFutureGoodEdbDataFromThs(req.FutureGoodEdbInfoId, req.FutureGoodEdbCode, req.StartDate, dataItem)

+ 21 - 9
services/base_from_ths.go

@@ -25,12 +25,16 @@ type EdbDataFromThsInterface struct {
 	} `json:"tables"`
 }
 
-func GetEdbDataFromThs(edbCode, startDate, endDate string) (item *models.EdbDataFromThs, err error) {
-	return getEdbDataFromThs(edbCode, startDate, endDate, 0)
+func GetEdbDataFromThs(edbCode, startDate, endDate string) (item models.EdbDataFromThs, err error) {
+	if utils.RunMode == `release` { // 生产环境走官方http请求,测试环境走终端
+		return getEdbDataFromThsHttp(edbCode, startDate, endDate)
+	} else {
+		return getEdbDataFromThsApp(edbCode, startDate, endDate, 0)
+	}
 }
 
 // getEdbDataFromThs 获取同花顺接口数据
-func getEdbDataFromThs(edbCode, startDate, endDate string, num int) (item *models.EdbDataFromThs, err error) {
+func getEdbDataFromThsApp(edbCode, startDate, endDate string, num int) (item models.EdbDataFromThs, err error) {
 	thsUrl := utils.Hz_Wind_Data_Url + `edbInfo/ths?EdbCode=%s&StartDate=%s&EndDate=%s`
 	thsUrl = fmt.Sprintf(thsUrl, edbCode, startDate, endDate)
 	utils.FileLog.Info("thsUrl:" + thsUrl)
@@ -56,7 +60,7 @@ func getEdbDataFromThs(edbCode, startDate, endDate string, num int) (item *model
 		//session has expired,please re-login after using the system
 		//如果是同花顺登录session失效了,那么就重新请求获取数据
 		if tmpItems.Errorcode == -1020 && num == 0 {
-			return getEdbDataFromThs(edbCode, startDate, endDate, 1)
+			return getEdbDataFromThsApp(edbCode, startDate, endDate, 1)
 		}
 
 		err = errors.New(string(body))
@@ -102,7 +106,7 @@ func getEdbDataFromThs(edbCode, startDate, endDate string, num int) (item *model
 		}
 		tablesList = append(tablesList, tmpTable)
 	}
-	item = &models.EdbDataFromThs{
+	item = models.EdbDataFromThs{
 		DataVol:   tmpItems.DataVol,
 		Errmsg:    tmpItems.Errmsg,
 		Errorcode: tmpItems.Errorcode,
@@ -146,8 +150,16 @@ type FutureGoodDataFromThsInterface struct {
 	} `json:"tables"`
 }
 
-// GetFutureGoodDataFromThs 通过url获取wind的商品数据
-func GetFutureGoodDataFromThs(edbCode, startDate, endDate string, num int) (item *future_good.FutureGoodDataFromThs, err error) {
+func GetFutureGoodDataFromThs(edbCode, startDate, endDate string) (item future_good.FutureGoodDataFromThs, err error) {
+	if utils.RunMode == `release` { // 生产环境走官方http请求,测试环境走终端
+		return getFutureGoodDataFromThsHttp(edbCode, startDate, endDate)
+	} else {
+		return getFutureGoodDataFromThsApp(edbCode, startDate, endDate, 0)
+	}
+}
+
+// getFutureGoodDataFromThsApp 通过终端获取wind的商品数据
+func getFutureGoodDataFromThsApp(edbCode, startDate, endDate string, num int) (item future_good.FutureGoodDataFromThs, err error) {
 	thsUrl := utils.Hz_Wind_Data_Url + `edbInfo/ths/future_good?EdbCode=%s&StartDate=%s&EndDate=%s`
 	thsUrl = fmt.Sprintf(thsUrl, edbCode, startDate, endDate)
 	utils.FileLog.Info("thsUrl:" + thsUrl)
@@ -173,7 +185,7 @@ func GetFutureGoodDataFromThs(edbCode, startDate, endDate string, num int) (item
 		//session has expired,please re-login after using the system
 		//如果是同花顺登录session失效了,那么就重新请求获取数据
 		if tmpItems.Errorcode == -1020 && num == 0 {
-			return GetFutureGoodDataFromThs(edbCode, startDate, endDate, 1)
+			return getFutureGoodDataFromThsApp(edbCode, startDate, endDate, 1)
 		}
 
 		err = errors.New(string(body))
@@ -184,7 +196,7 @@ func GetFutureGoodDataFromThs(edbCode, startDate, endDate string, num int) (item
 		return
 	}
 	table := tmpItems.Tables[0]
-	item = &future_good.FutureGoodDataFromThs{
+	item = future_good.FutureGoodDataFromThs{
 		DataVol:   tmpItems.DataVol,
 		Errmsg:    tmpItems.Errmsg,
 		Errorcode: tmpItems.Errorcode,

+ 4 - 3
services/base_from_ths_http.go

@@ -20,7 +20,8 @@ import (
 var refreshToken = `eyJzaWduX3RpbWUiOiIyMDIzLTAzLTI0IDEzOjQ3OjExIn0=.eyJ1aWQiOiI1NzY2NDgxMDkifQ==.339B8D21168AC21A0F80840544E38378AB2D04A02D325F0CD1C44251915233F6`
 var tokenRedisKey = `THS_SERVER_ACCESS_TOKEN`
 
-func GetEdbDataFromThsHttp(edbCode, startDate, endDate string) (item models.EdbDataFromThs, err error) {
+// getEdbDataFromThsHttp 通过url获取同花顺的普通数据
+func getEdbDataFromThsHttp(edbCode, startDate, endDate string) (item models.EdbDataFromThs, err error) {
 	thsUrl := `https://quantapi.51ifind.com/api/v1/edb_service`
 	//indicators 是 半角逗号分隔的所有指标,宏观指标过多,推荐使用Windows超级命令生成。 "indicators":"M001620326,M002822183"
 	//functionpara 否 key-value格式,省略时不进行更新时间筛选。两个时间控件更新起始时间(startrtime)和更新结束时间(endrtime),不勾选时省略见下方代码块
@@ -97,8 +98,8 @@ func GetEdbDataFromThsHttp(edbCode, startDate, endDate string) (item models.EdbD
 	return
 }
 
-// GetFutureGoodDataFromThsHttp 通过url获取同花顺的商品数据
-func GetFutureGoodDataFromThsHttp(edbCode, startDate, endDate string) (item future_good.FutureGoodDataFromThs, err error) {
+// getFutureGoodDataFromThsHttp 通过url获取同花顺的商品数据
+func getFutureGoodDataFromThsHttp(edbCode, startDate, endDate string) (item future_good.FutureGoodDataFromThs, err error) {
 	thsUrl := `https://quantapi.51ifind.com/api/v1/cmd_history_quotation`
 
 	//codes 是 半角逗号分隔的所有代码 "codes":"300033.SZ,600030.SH"