Browse Source

fix:商品价格图表刷新

Roc 2 years ago
parent
commit
ea5b86cba1

+ 6 - 0
controllers/chart_common.go

@@ -235,6 +235,12 @@ func (this *ChartController) FutureGoodChartInfoRefresh() {
 	}
 	chartId = chartInfo.ChartInfoId
 
+	err = future_goodServ.FutureGoodChartInfoRefresh(chartInfo.ChartInfoId)
+	if err != nil {
+		br.Msg = "刷新失败"
+		br.ErrMsg = "刷新图表关联指标信息失败,Err:" + err.Error()
+		return
+	}
 	//err = data.ChartInfoRefresh(chartInfo.ChartInfoId)
 	//if err != nil {
 	//	br.Msg = "刷新失败"

+ 47 - 0
services/data/future_good/chart_info.go

@@ -6,6 +6,7 @@ import (
 	"hongze/hongze_chart_lib/models"
 	"hongze/hongze_chart_lib/models/data_manage"
 	efuture_good "hongze/hongze_chart_lib/models/data_manage/future_good"
+	"hongze/hongze_chart_lib/services/alarm_msg"
 	"hongze/hongze_chart_lib/services/data"
 	"hongze/hongze_chart_lib/utils"
 	"sort"
@@ -449,3 +450,49 @@ func BarChartData(mappingList []*models.ChartEdbInfoMapping, edbDataListMap map[
 
 	return
 }
+
+// FutureGoodChartInfoRefresh
+// @author Roc
+// @datetime 2023-2-2 18:44:46
+// @description 商品价格曲线图表刷新
+func FutureGoodChartInfoRefresh(chartInfoId int) (err error) {
+	var errMsg string
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("ChartInfoRefresh:"+errMsg, 3)
+			fmt.Println("ChartInfoRefresh Err:" + errMsg)
+		}
+	}()
+
+	edbInfoMapping, err := models.GetEtaEdbChartEdbMapping(chartInfoId)
+	if err != nil {
+		errMsg = "获取需要刷新的ETA指标失败:Err:" + err.Error()
+		return
+	}
+	// 获取期货指标
+	futureGoodEdbInfoMapping, err := models.GetFutureGoodEdbChartEdbMapping(chartInfoId)
+	if err != nil {
+		errMsg = "获取需要刷新的商品期货指标失败:Err:" + err.Error()
+		return
+	}
+
+	// 获取期货指标以及期货数据
+	futureGoodEdbInfoList, err := efuture_good.GetFutureGoodEdbInfoListByParentId(futureGoodEdbInfoMapping.EdbInfoId)
+	if err != nil {
+		return
+	}
+
+	// 批量刷新ETA指标
+	err, _ = data.EdbInfoRefreshAllFromBase([]int{edbInfoMapping.EdbInfoId}, false)
+	if err != nil {
+		return
+	}
+
+	// 批量刷新期货指标
+	err = FutureGoodEdbInfoRefreshAllFromBase(futureGoodEdbInfoList, false)
+	if err != nil {
+		return
+	}
+
+	return
+}

+ 57 - 0
services/data/future_good/future_edb_info.go

@@ -0,0 +1,57 @@
+package future_good
+
+import (
+	"fmt"
+	"hongze/hongze_chart_lib/models/data_manage/future_good"
+	"hongze/hongze_chart_lib/services/alarm_msg"
+	"hongze/hongze_chart_lib/utils"
+	"time"
+)
+
+// FutureGoodEdbInfoRefreshAllFromBase 批量刷新商品期货指标
+// @author Roc
+// @datetime 2022-09-16 11:04:44
+// @description 将原有的单个指标刷新,调整为批量多个指标刷新
+func FutureGoodEdbInfoRefreshAllFromBase(futureGoodEdbInfoList []*future_good.FutureGoodEdbInfo, refreshAll bool) (err error) {
+	var errMsg string
+	defer func() {
+		if err != nil {
+			fmt.Println("FutureGoodEdbInfoRefreshAllFromBase Err:" + err.Error() + ";errMsg:" + errMsg)
+			go alarm_msg.SendAlarmMsg("FutureGoodEdbInfoRefreshAllFromBase,Err"+err.Error()+";errMsg:"+errMsg, 3)
+		}
+	}()
+	var startDate string
+	for _, bv := range futureGoodEdbInfoList {
+		if bv.StartDate == "0000-00-00" {
+			continue
+		}
+		//开始时间
+		startDate = ``
+		if refreshAll { //刷新所有数据,用开始时间作为起始日期去刷新
+			sTime, err := time.Parse(utils.FormatDate, bv.StartDate)
+			if err != nil {
+				return err
+			}
+			startDate = sTime.Format(utils.FormatDate)
+		} else {
+			sTime, err := time.Parse(utils.FormatDate, bv.EndDate)
+			if err != nil {
+				return err
+			}
+			limitDay := utils.DATA_REFRESH
+			startDate = sTime.AddDate(0, 0, -limitDay).Format(utils.FormatDate)
+		}
+		result, err := RefreshEdbData(bv.FutureGoodEdbInfoId, bv.FutureGoodEdbCode, startDate)
+		if err != nil {
+			fmt.Println(bv.FutureGoodEdbInfoId, "FutureGoodRefreshBaseEdbData err", time.Now())
+			errMsg = "FutureGoodRefreshBaseEdbData Err:" + err.Error()
+			return err
+		}
+		if result.Ret != 200 {
+			fmt.Println(bv.FutureGoodEdbInfoId, "FutureGoodRefreshBaseEdbData err;msg:", result.Msg, ";errMsg:", result.ErrMsg)
+			errMsg = fmt.Sprint(bv.FutureGoodEdbInfoId, "FutureGoodRefreshBaseEdbData err;msg:", result.Msg, ";errMsg:", result.ErrMsg)
+			return fmt.Errorf("刷新失败, err:%s", errMsg)
+		}
+	}
+	return err
+}