Selaa lähdekoodia

fix:商品期货指标刷新

Roc 2 vuotta sitten
vanhempi
commit
02c49b4fe2

+ 2 - 0
controller/my_chart/my_chart.go

@@ -170,6 +170,7 @@ func (this *MyChartController) Collect(c *gin.Context) {
 		exists.ReportID = req.ReportId
 		exists.ReportChapterID = req.ReportChapterId
 		exists.ModifyTime = nowTime
+		exists.Source = chartInfo.Source
 		updateCols := []string{"ChartName", "ChartImage", "ReportID", "ReportChapterID", "ModifyTime"}
 		if e = exists.Update(updateCols); e != nil {
 			response.FailMsg("操作失败", "更新收藏失败, Err: "+e.Error(), c)
@@ -210,6 +211,7 @@ func (this *MyChartController) Collect(c *gin.Context) {
 		ob.ReportChapterID = req.ReportChapterId
 		ob.CreateTime = nowTime
 		ob.ModifyTime = nowTime
+		ob.Source = chartInfo.Source
 		if e = ob.Create(); e != nil {
 			response.FailMsg("操作失败", "新增收藏失败, Err: "+e.Error(), c)
 			return

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

@@ -9,6 +9,7 @@ import (
 	edbDataModel "hongze/hongze_yb/models/tables/edb_data"
 	"hongze/hongze_yb/models/tables/future_good_edb_data"
 	"hongze/hongze_yb/models/tables/future_good_edb_info"
+	"hongze/hongze_yb/services/alarm_msg"
 	"hongze/hongze_yb/services/chart"
 	"hongze/hongze_yb/utils"
 	"sort"
@@ -463,3 +464,49 @@ func BarChartData(mappingList []*chartEdbMappingModel.ChartEdbInfoMappingList, e
 
 	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 := chartEdbMappingModel.GetEtaEdbChartEdbMapping(chartInfoId)
+	if err != nil {
+		errMsg = "获取需要刷新的ETA指标失败:Err:" + err.Error()
+		return
+	}
+	// 获取期货指标
+	futureGoodEdbInfoMapping, err := chartEdbMappingModel.GetFutureGoodEdbChartEdbMapping(chartInfoId)
+	if err != nil {
+		errMsg = "获取需要刷新的商品期货指标失败:Err:" + err.Error()
+		return
+	}
+
+	// 获取期货指标以及期货数据
+	futureGoodEdbInfoList, err := future_good_edb_info.GetFutureGoodEdbInfoListByParentId(futureGoodEdbInfoMapping.EdbInfoId)
+	if err != nil {
+		return
+	}
+
+	// 批量刷新ETA指标
+	err, _ = chart.EdbInfoRefreshAllFromBase([]int{edbInfoMapping.EdbInfoId}, false)
+	if err != nil {
+		return
+	}
+
+	// 批量刷新期货指标
+	err = FutureGoodEdbInfoRefreshAllFromBase(futureGoodEdbInfoList, false)
+	if err != nil {
+		return
+	}
+
+	return
+}

+ 49 - 0
services/chart/future_good/future_good_edb_info.go

@@ -0,0 +1,49 @@
+package future_good
+
+import (
+	"fmt"
+	"hongze/hongze_yb/models/tables/future_good_edb_info"
+	"hongze/hongze_yb/services/alarm_msg"
+	"hongze/hongze_yb/utils"
+	"time"
+)
+
+// FutureGoodEdbInfoRefreshAllFromBase 批量刷新商品期货指标
+// @author Roc
+// @datetime 2022-09-16 11:04:44
+// @description 将原有的单个指标刷新,调整为批量多个指标刷新
+func FutureGoodEdbInfoRefreshAllFromBase(futureGoodEdbInfoList []*future_good_edb_info.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.IsZero() {
+			continue
+		}
+		//开始时间
+		startDate = ``
+		if refreshAll { //刷新所有数据,用开始时间作为起始日期去刷新
+			startDate = bv.StartDate.Format(utils.FormatDate)
+		} else {
+			limitDay := utils.DATA_REFRESH
+			startDate = bv.StartDate.AddDate(0, 0, -limitDay).Format(utils.FormatDate)
+		}
+		result, err := RefreshEdbData(int(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
+}