소스 검색

fix:数据刷新的开始日期问题,指标拼接数据太多的问题

Roc 1 년 전
부모
커밋
131a5a20e9

+ 2 - 2
controllers/base_from_lt.go

@@ -112,13 +112,13 @@ func (this *LtController) Refresh() {
 		return
 	}
 
-	dataItem, err := services.GetEdbDataFromLt(req.EdbCode, req.StartDate, utils.BASE_END_DATE, edbInfo.TerminalCode)
+	dataItem, err := services.GetEdbDataFromLt(req.EdbCode, utils.GetEdbRefreshStartDate(req.StartDate), utils.BASE_END_DATE, edbInfo.TerminalCode)
 	if err != nil {
 		br.Msg = "获取指标信息失败!"
 		br.ErrMsg = "获取指标信息失败 GetEdbDataFromLt,Err:" + err.Error()
 		return
 	}
-	err = models.RefreshEdbDataFromLt(req.EdbInfoId, req.EdbCode, req.StartDate, dataItem)
+	err = models.RefreshEdbDataFromLt(req.EdbInfoId, req.EdbCode, utils.GetEdbRefreshStartDate(req.StartDate), dataItem)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "刷新指标信息失败!"
 		br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromLt,Err:" + err.Error()

+ 2 - 2
controllers/base_from_ths.go

@@ -114,13 +114,13 @@ func (this *ThsController) Refresh() {
 	defer func() {
 		utils.Rc.Delete(cacheKey)
 	}()
-	dataItem, err := services.GetEdbDataFromThs(req.EdbCode, req.StartDate, utils.BASE_END_DATE, edbInfo.TerminalCode)
+	dataItem, err := services.GetEdbDataFromThs(req.EdbCode, utils.GetEdbRefreshStartDate(req.StartDate), utils.BASE_END_DATE, edbInfo.TerminalCode)
 	if err != nil {
 		br.Msg = "获取指标信息失败!"
 		br.ErrMsg = "获取指标信息失败 GetEdbDataFromThs,Err:" + err.Error()
 		return
 	}
-	err = models.RefreshEdbDataFromThs(req.EdbInfoId, req.EdbCode, req.StartDate, dataItem)
+	err = models.RefreshEdbDataFromThs(req.EdbInfoId, req.EdbCode, utils.GetEdbRefreshStartDate(req.StartDate), dataItem)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "刷新指标信息失败!"
 		br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromThs,Err:" + err.Error()

+ 3 - 3
controllers/base_from_ths_ds.go

@@ -52,7 +52,7 @@ func (this *ThsDsController) Add() {
 			br.ErrMsg = "获取指标信息失败 GetEdbDataFromThsDs,Err:" + err.Error()
 			return
 		}
-		err = models.AddEdbDataFromThsDs(req.StockCode,req.EdbCode, dataItem)
+		err = models.AddEdbDataFromThsDs(req.StockCode, req.EdbCode, dataItem)
 		if err != nil {
 			br.Msg = "获取指标信息失败!"
 			br.ErrMsg = "获取指标信息失败 AddEdbDataFromThs,Err:" + err.Error()
@@ -118,13 +118,13 @@ func (this *ThsDsController) Refresh() {
 	defer func() {
 		utils.Rc.Delete(cacheKey)
 	}()
-	dataItem, err := services.GetEdbDataFromThsDs(edbInfo.StockCode, edbInfo.IndicatorCode, req.StartDate, endDate, edbInfo.TerminalCode)
+	dataItem, err := services.GetEdbDataFromThsDs(edbInfo.StockCode, edbInfo.IndicatorCode, utils.GetEdbRefreshStartDate(req.StartDate), endDate, edbInfo.TerminalCode)
 	if err != nil {
 		br.Msg = "获取指标信息失败!"
 		br.ErrMsg = "获取指标信息失败 GetEdbDataFromThsDs,Err:" + err.Error()
 		return
 	}
-	err = models.RefreshEdbDataFromThsDs(req.EdbInfoId, req.EdbCode, req.StartDate, dataItem)
+	err = models.RefreshEdbDataFromThsDs(req.EdbInfoId, req.EdbCode, utils.GetEdbRefreshStartDate(req.StartDate), dataItem)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "刷新指标信息失败!"
 		br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromThsDs,Err:" + err.Error()

+ 2 - 2
controllers/base_from_wind.go

@@ -209,7 +209,7 @@ func (this *WindController) Refresh() {
 		br.Msg = "终端未配置"
 		return
 	}
-	dataItem, errCode, err := services.GetEdbDataFromWindUrl(terminal.ServerUrl, req.EdbCode, req.StartDate, endDate)
+	dataItem, errCode, err := services.GetEdbDataFromWindUrl(terminal.ServerUrl, req.EdbCode, utils.GetEdbRefreshStartDate(req.StartDate), utils.GetEdbRefreshEndDate(endDate))
 	if errCode == 421 { //指标超限
 		br.Ret = 421
 		br.Msg = "指标超限!"
@@ -233,7 +233,7 @@ func (this *WindController) Refresh() {
 		br.ErrMsg = "获取指标信息失败 GetEdbDataFromWind,Err:" + err.Error()
 		return
 	}
-	err = models.RefreshEdbDataFromWind(req.EdbInfoId, req.EdbCode, req.StartDate, dataItem)
+	err = models.RefreshEdbDataFromWind(req.EdbInfoId, req.EdbCode, utils.GetEdbRefreshStartDate(req.StartDate), dataItem)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "刷新指标信息失败!"
 		br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromWind,Err:" + err.Error()

+ 2 - 2
controllers/base_from_wind_wsd.go

@@ -197,7 +197,7 @@ func (this *WindWsdController) Refresh() {
 		endDate = time.Now().Format(utils.FormatDate)
 	}
 
-	dataItem, errCode, err := services.GetEdbDataFromWindUrlWsd(edbInfo.ServerUrl, edbInfo.StockCode, edbInfo.IndicatorCode, req.StartDate, endDate)
+	dataItem, errCode, err := services.GetEdbDataFromWindUrlWsd(edbInfo.ServerUrl, edbInfo.StockCode, edbInfo.IndicatorCode, utils.GetEdbRefreshStartDate(req.StartDate), utils.GetEdbRefreshEndDate(endDate))
 	if errCode == 421 { //指标超限
 		br.Ret = 421
 		br.Msg = "指标超限!"
@@ -221,7 +221,7 @@ func (this *WindWsdController) Refresh() {
 		br.ErrMsg = "获取指标信息失败 GetEdbDataFromWind,Err:" + err.Error()
 		return
 	}
-	err = models.RefreshEdbDataFromWindWsd(req.EdbInfoId, edbInfo.EdbCode, req.StartDate, dataItem)
+	err = models.RefreshEdbDataFromWindWsd(req.EdbInfoId, edbInfo.EdbCode, utils.GetEdbRefreshStartDate(req.StartDate), dataItem)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "刷新指标信息失败!"
 		br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromWind,Err:" + err.Error()

+ 21 - 4
models/edb_data_calculate_zjpj.go

@@ -508,11 +508,28 @@ func refreshAllCalculateZjpj(to orm.TxOrmer, edbInfo *EdbInfo, existItemA, exist
 
 	//数据入库
 	if len(addDataList) > 0 {
-		_, tmpErr := to.InsertMulti(len(addDataList), addDataList)
-		if tmpErr != nil {
-			err = tmpErr
-			return
+		tmpAddDataList := make([]*EdbDataCalculateZjpj, 0)
+		i := 0
+		for _, v := range addDataList {
+			tmpAddDataList = append(tmpAddDataList, v)
+			i++
+			if i >= 500 {
+				_, err = to.InsertMulti(len(tmpAddDataList), tmpAddDataList)
+				if err != nil {
+					return
+				}
+				i = 0
+				tmpAddDataList = make([]*EdbDataCalculateZjpj, 0)
+			}
+		}
+
+		if len(tmpAddDataList) > 0 {
+			_, err = to.InsertMulti(len(tmpAddDataList), tmpAddDataList)
+			if err != nil {
+				return
+			}
 		}
 	}
+
 	return
 }

+ 30 - 0
utils/common.go

@@ -1171,3 +1171,33 @@ func TimeTransferString(format string, t time.Time) string {
 	}
 	return str
 }
+
+// GetEdbRefreshStartDate
+// @Description: 获取开始刷新时间
+// @author: Roc
+// @datetime 2024-02-05 11:23:55
+// @param startDate string
+// @return string
+func GetEdbRefreshStartDate(startDate string) string {
+	// 没有传入日期,或者日期异常的话,那么就是从1990-01-01开始
+	if startDate == `` || strings.Contains(startDate, "0000-") {
+		return "1990-01-01"
+	}
+
+	return startDate
+}
+
+// GetEdbRefreshEndDate
+// @Description: 获取结束刷新时间
+// @author: Roc
+// @datetime 2024-02-05 11:23:55
+// @param startDate string
+// @return string
+func GetEdbRefreshEndDate(endDate string) string {
+	// 没有传入日期,或者日期异常的话,那么就是从1990-01-01开始
+	if endDate == `` || strings.Contains(endDate, "0000-") {
+		return time.Now().Format(FormatDate)
+	}
+
+	return endDate
+}