Parcourir la source

Merge branch 'bug/5265' into custom

Roc il y a 7 mois
Parent
commit
71b69afabd
3 fichiers modifiés avec 498 ajouts et 295 suppressions
  1. 194 288
      services/data/edb_info.go
  2. 295 0
      services/data/old_refresh.go
  3. 9 7
      services/task.go

+ 194 - 288
services/data/edb_info.go

@@ -240,12 +240,17 @@ func RefreshDataFromPbFinance(wg *sync.WaitGroup) (err error) {
 
 // RefreshDataFromCalculateAll 刷新所有计算指标
 func RefreshDataFromCalculateAll() (err error) {
-	var errmsg string
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
-			utils.FileLog.Info("RefreshDataFromCalculateAll Err:" + err.Error())
-			//go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromCalculateAll ErrMsg:"+err.Error(), utils.EmailSendToUsers)
-			go alarm_msg.SendAlarmMsg("RefreshDataFromCalculateAll ErrMsg:"+err.Error(), 3)
+			errMsg := "刷新所有计算指标失败 ErrMsg:" + err.Error()
+			utils.FileLog.Info(errMsg)
+			go alarm_msg.SendAlarmMsg(errMsg, 3)
+		}
+
+		if len(errMsgList) > 0 {
+			utils.FileLog.Info("刷新所有计算指标失败 ErrMsg:" + strings.Join(errMsgList, "\n"))
+			go alarm_msg.SendAlarmMsg("刷新所有计算指标失败 ErrMsg:"+strings.Join(errMsgList, "\n"), 3)
 		}
 	}()
 	var condition string
@@ -268,16 +273,13 @@ func RefreshDataFromCalculateAll() (err error) {
 		fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source)
 
 		fmt.Println("RefreshEdbCalculateData", v.EdbInfoId, v.EdbCode, startDate)
-		result, err := RefreshEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
-		if err != nil {
-			errmsg += v.EdbCode + ","
-			err = errors.New("RefreshEdbCalculateData Err:" + err.Error())
-			//return err
+		result, tmpErr := RefreshEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
+		if tmpErr != nil {
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
 			continue
 		}
 		if result.Ret != 200 {
-			errmsg += v.EdbCode + ","
-			err = errors.New("RefreshEdbCalculateData err;msg:" + result.Msg + ";errMsg:" + result.ErrMsg)
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;msg:%s;errMsg:%s", v.EdbInfoId, v.EdbCode, result.Msg, result.ErrMsg))
 			//return err
 			continue
 		}
@@ -290,9 +292,15 @@ func RefreshDataFromCalculateAll() (err error) {
 func RefreshBasePredictDataAll() (err error) {
 	errMsgList := make([]string, 0)
 	defer func() {
+		if err != nil {
+			errMsg := "刷新所有计算指标失败 ErrMsg:" + err.Error()
+			utils.FileLog.Info(errMsg)
+			go alarm_msg.SendAlarmMsg(errMsg, 3)
+		}
+
 		if len(errMsgList) > 0 {
-			utils.FileLog.Info("RefreshBasePredictDataAll ErrMsg:" + strings.Join(errMsgList, "\n"))
-			go alarm_msg.SendAlarmMsg("RefreshBasePredictDataAll ErrMsg:"+strings.Join(errMsgList, "\n"), 3)
+			utils.FileLog.Info("刷新所有基础预测指标失败 ErrMsg:" + strings.Join(errMsgList, "\n"))
+			go alarm_msg.SendAlarmMsg("刷新所有基础预测指标失败 ErrMsg:"+strings.Join(errMsgList, "\n"), 3)
 		}
 	}()
 	var condition string
@@ -329,10 +337,17 @@ func RefreshBasePredictDataAll() (err error) {
 
 // RefreshPredictDataFromCalculateAll 刷新所有预测计算指标
 func RefreshPredictDataFromCalculateAll() (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
-			utils.FileLog.Info("RefreshDataFromCalculateAll Err:" + err.Error())
-			go alarm_msg.SendAlarmMsg("RefreshDataFromCalculateAll ErrMsg:"+err.Error(), 3)
+			errMsg := "刷新所有计算预测指标失败 ErrMsg:" + err.Error()
+			utils.FileLog.Info(errMsg)
+			go alarm_msg.SendAlarmMsg(errMsg, 3)
+		}
+
+		if len(errMsgList) > 0 {
+			utils.FileLog.Info("刷新所有计算预测指标失败 Err:" + strings.Join(errMsgList, "\n"))
+			go alarm_msg.SendAlarmMsg("刷新所有计算预测指标失败 Err:"+strings.Join(errMsgList, "\n"), 3)
 		}
 	}()
 	var condition string
@@ -353,14 +368,14 @@ func RefreshPredictDataFromCalculateAll() (err error) {
 		}
 
 		fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source, "======RefreshPredictEdbCalculateData:", startDate)
-		result, err := RefreshPredictEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
-		if err != nil {
-			err = errors.New("RefreshPredictEdbCalculateData Err:" + err.Error())
-			return err
+		result, tmpErr := RefreshPredictEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
+		if tmpErr != nil {
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
+			continue
 		}
 		if result.Ret != 200 {
-			err = errors.New("RefreshPredictEdbCalculateData err;msg:" + result.Msg + ";errMsg:" + result.ErrMsg)
-			return err
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;msg:%s;errMsg:%s", v.EdbInfoId, v.EdbCode, result.Msg, result.ErrMsg))
+			continue
 		}
 	}
 	return err
@@ -413,11 +428,20 @@ func ResetEdbInfoIsUpdate(cont context.Context) (err error) {
 
 // RefreshDataFromGoogleTravel RefreshDataFromEic 刷新谷歌出行数据
 func RefreshDataFromGoogleTravel(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
 			fmt.Println("RefreshDataFromGoogleTravel Err:" + err.Error())
 			go alarm_msg.SendAlarmMsg("RefreshDataFromGoogleTravel ErrMsg:"+err.Error(), 3)
 		}
+
+		if len(errMsgList) > 0 {
+			tips := fmt.Sprintf("RefreshDataFromGoogleTravel ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
+			fmt.Println(tips)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+
 		wg.Done()
 	}()
 	var condition string
@@ -447,10 +471,12 @@ func RefreshDataFromGoogleTravel(wg *sync.WaitGroup) (err error) {
 
 		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
+			continue
 		}
 		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
 		}
 
 	}
@@ -459,193 +485,26 @@ func RefreshDataFromGoogleTravel(wg *sync.WaitGroup) (err error) {
 
 // RefreshDataFromEiaSteo 刷新eia steo 报告数据
 func RefreshDataFromEiaSteo(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
 			fmt.Println("RefreshDataFromEiaSteo Err:" + err.Error())
 			go alarm_msg.SendAlarmMsg("RefreshDataFromEiaSteo ErrMsg:"+err.Error(), 3)
 		}
-		wg.Done()
-	}()
-	var condition string
-	var pars []interface{}
-	condition += " AND source=? "
-	pars = append(pars, utils.DATA_SOURCE_EIA_STEO)
-	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
-	if err != nil {
-		return errors.New("GetEdbInfoByCondition:" + err.Error())
-	}
-
-	for _, v := range items {
-		startDate := ""
-		if v.Frequency == "日度" {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		} else if v.Frequency == "周度" {
-			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
-		} else if v.Frequency == "月度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "季度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "年度" {
-			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
-		} else {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		}
-
-		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
-		if err != nil {
-			return errors.New("RefreshDataFromEiaSteoData Err:" + err.Error())
-		}
-		if resp.Ret != 200 {
-			return errors.New("RefreshDataFromEiaSteoData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
-		}
-	}
-	return err
-}
-
-// RefreshDataFromZz 刷新郑商所数据
-func RefreshDataFromZz(wg *sync.WaitGroup) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println("RefreshDataFromZz Err:" + err.Error())
-			go alarm_msg.SendAlarmMsg("RefreshDataFromZz ErrMsg:"+err.Error(), 3)
-		}
-		wg.Done()
-	}()
-	var condition string
-	var pars []interface{}
-	condition += " AND source=? "
-	pars = append(pars, utils.DATA_SOURCE_ZZ)
-	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
-	if err != nil {
-		return errors.New("GetEdbInfoByCondition:" + err.Error())
-	}
-
-	for _, v := range items {
-		startDate := ""
-		if v.Frequency == "日度" {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		} else if v.Frequency == "周度" {
-			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
-		} else if v.Frequency == "月度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "季度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "年度" {
-			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
-		} else {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		}
-		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
-		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
-		}
-		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
-		}
-	}
-	return err
-}
-
-// RefreshDataFromSh 刷新上期所数据
-func RefreshDataFromSh(wg *sync.WaitGroup) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println("RefreshDataFromSh Err:" + err.Error())
-			go alarm_msg.SendAlarmMsg("RefreshDataFromSh ErrMsg:"+err.Error(), 3)
-		}
-		wg.Done()
-	}()
-	var condition string
-	var pars []interface{}
-	condition += " AND source=? "
-	pars = append(pars, utils.DATA_SOURCE_SH)
-	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
-	if err != nil {
-		return errors.New("GetEdbInfoByCondition:" + err.Error())
-	}
-	for _, v := range items {
-		startDate := ""
-		if v.Frequency == "日度" {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		} else if v.Frequency == "周度" {
-			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
-		} else if v.Frequency == "月度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "季度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "年度" {
-			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
-		} else {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		}
-		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
-		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
-		}
-		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
-		}
-	}
-	return err
-}
-
-// RefreshDataFromShfe 刷新上期能源数据
-func RefreshDataFromShfe(wg *sync.WaitGroup) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println("RefreshDataFromShfe Err:" + err.Error())
-			go alarm_msg.SendAlarmMsg("RefreshDataFromShfe ErrMsg:"+err.Error(), 3)
-		}
-		wg.Done()
-	}()
-	var condition string
-	var pars []interface{}
-	condition += " AND source=? "
-	pars = append(pars, utils.DATA_SOURCE_SHFE)
-	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
-	if err != nil {
-		return errors.New("GetEdbInfoByCondition:" + err.Error())
-	}
 
-	for _, v := range items {
-		startDate := ""
-		if v.Frequency == "日度" {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		} else if v.Frequency == "周度" {
-			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
-		} else if v.Frequency == "月度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "季度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "年度" {
-			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
-		} else {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		}
-		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
-		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
-		}
-		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+		if len(errMsgList) > 0 {
+			tips := fmt.Sprintf("RefreshDataFromEiaSteo ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
+			fmt.Println(tips)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
 		}
-	}
-	return err
-}
 
-// RefreshDataFromCffex 刷新中金所数据
-func RefreshDataFromCffex(wg *sync.WaitGroup) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println("RefreshDataFromCffex Err:" + err.Error())
-			go alarm_msg.SendAlarmMsg("RefreshDataFromCffex ErrMsg:"+err.Error(), 3)
-		}
 		wg.Done()
 	}()
 	var condition string
 	var pars []interface{}
 	condition += " AND source=? "
-	pars = append(pars, utils.DATA_SOURCE_CFFEX)
+	pars = append(pars, utils.DATA_SOURCE_EIA_STEO)
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
 	if err != nil {
 		return errors.New("GetEdbInfoByCondition:" + err.Error())
@@ -666,56 +525,15 @@ func RefreshDataFromCffex(wg *sync.WaitGroup) (err error) {
 		} else {
 			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
 		}
-		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
-		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
-		}
-		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
-		}
-	}
-	return err
-}
-
-// RefreshDataFromDl 刷新大商所数据
-func RefreshDataFromDl(wg *sync.WaitGroup) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println("RefreshDataFromDl Err:" + err.Error())
-			go alarm_msg.SendAlarmMsg("RefreshDataFromDl ErrMsg:"+err.Error(), 3)
-		}
-		wg.Done()
-	}()
-	var condition string
-	var pars []interface{}
-	condition += " AND source=? "
-	pars = append(pars, utils.DATA_SOURCE_DL)
-	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
-	if err != nil {
-		return errors.New("GetEdbInfoByCondition:" + err.Error())
-	}
 
-	for _, v := range items {
-		startDate := ""
-		if v.Frequency == "日度" {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		} else if v.Frequency == "周度" {
-			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
-		} else if v.Frequency == "月度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "季度" {
-			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
-		} else if v.Frequency == "年度" {
-			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
-		} else {
-			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
-		}
 		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
+			continue
 		}
 		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
 		}
 	}
 	return err
@@ -776,11 +594,20 @@ func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
 
 // 刷新钢联数据
 func RefreshDataFromGl(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
 			fmt.Println("RefreshDataFromGl Err:" + err.Error())
 			go alarm_msg.SendAlarmMsg("RefreshDataFromGl ErrMsg:"+err.Error(), 3)
 		}
+
+		if len(errMsgList) > 0 {
+			tips := fmt.Sprintf("RefreshDataFromGl ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
+			fmt.Println(tips)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+
 		wg.Done()
 	}()
 	var condition string
@@ -809,10 +636,12 @@ func RefreshDataFromGl(wg *sync.WaitGroup) (err error) {
 		}
 		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
+			continue
 		}
 		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
 		}
 	}
 	return err
@@ -859,11 +688,20 @@ func RefreshDataFromLt(wg *sync.WaitGroup) (err error) {
 
 // RefreshDataFromCoal 刷新煤炭网数据
 func RefreshDataFromCoal(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
 			fmt.Println("RefreshDataFromCoal Err:" + err.Error())
 			go alarm_msg.SendAlarmMsg("RefreshDataFromCoal ErrMsg:"+err.Error(), 3)
 		}
+
+		if len(errMsgList) > 0 {
+			tips := fmt.Sprintf("RefreshDataFromCoal ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
+			fmt.Println(tips)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+
 		wg.Done()
 	}()
 	var condition string
@@ -892,10 +730,12 @@ func RefreshDataFromCoal(wg *sync.WaitGroup) (err error) {
 		}
 		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
+			continue
 		}
 		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
 		}
 	}
 	return err
@@ -903,11 +743,20 @@ func RefreshDataFromCoal(wg *sync.WaitGroup) (err error) {
 
 // RefreshDataFromMysteelChemical 刷新钢联化工数据
 func RefreshDataFromMysteelChemical(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
 			fmt.Println("RefreshDataFromMysteelChemical Err:" + err.Error())
 			go alarm_msg.SendAlarmMsg("RefreshDataFromMysteelChemical ErrMsg:"+err.Error(), 3)
 		}
+
+		if len(errMsgList) > 0 {
+			tips := fmt.Sprintf("RefreshDataFromMysteelChemical ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
+			fmt.Println(tips)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+
 		wg.Done()
 	}()
 	var condition string
@@ -936,10 +785,12 @@ func RefreshDataFromMysteelChemical(wg *sync.WaitGroup) (err error) {
 		}
 		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
+			continue
 		}
 		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
 		}
 	}
 	return err
@@ -947,11 +798,20 @@ func RefreshDataFromMysteelChemical(wg *sync.WaitGroup) (err error) {
 
 // RefreshDataFromComTrade 刷新 UN 数据
 func RefreshDataFromComTrade(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
 			fmt.Println("RefreshDataFromComTrade Err:" + err.Error())
 			go alarm_msg.SendAlarmMsg("RefreshDataFromComTrade ErrMsg:"+err.Error(), 3)
 		}
+
+		if len(errMsgList) > 0 {
+			tips := fmt.Sprintf("RefreshDataFromComTrade ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
+			fmt.Println(tips)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+
 		wg.Done()
 	}()
 	var condition string
@@ -981,10 +841,12 @@ func RefreshDataFromComTrade(wg *sync.WaitGroup) (err error) {
 
 		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			return errors.New("RefreshDataFromComTrade Err:" + err.Error())
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
+			continue
 		}
 		if resp.Ret != 200 {
-			return errors.New("RefreshDataFromComTrade Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
 		}
 	}
 	return err
@@ -992,11 +854,20 @@ func RefreshDataFromComTrade(wg *sync.WaitGroup) (err error) {
 
 // RefreshDataFromSci 刷新 卓创 数据
 func RefreshDataFromSci(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
 			fmt.Println("RefreshDataFromSci Err:" + err.Error())
 			go alarm_msg.SendAlarmMsg("RefreshDataFromSci ErrMsg:"+err.Error(), 3)
 		}
+
+		if len(errMsgList) > 0 {
+			tips := fmt.Sprintf("RefreshDataFromSci ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
+			fmt.Println(tips)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+
 		wg.Done()
 	}()
 	var condition string
@@ -1026,22 +897,34 @@ func RefreshDataFromSci(wg *sync.WaitGroup) (err error) {
 
 		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			return errors.New("RefreshDataFromSci Err:" + err.Error())
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
+			continue
 		}
 		if resp.Ret != 200 {
-			return errors.New("RefreshDataFromSci Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
 		}
+
 	}
 	return err
 }
 
 // RefreshDataFromNationalStatistics 刷新统计局数据
 func RefreshDataFromNationalStatistics(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
 			fmt.Println("RefreshDataFromNationalStatistics Err:" + err.Error())
 			go alarm_msg.SendAlarmMsg("RefreshDataFromNationalStatistics ErrMsg:"+err.Error(), 3)
 		}
+
+		if len(errMsgList) > 0 {
+			tips := fmt.Sprintf("RefreshDataFromNationalStatistics ErrMsg: %s", strings.Join(errMsgList, `<br/>`))
+			fmt.Println(tips)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
+		}
+
 		wg.Done()
 	}()
 	var condition string
@@ -1071,11 +954,14 @@ func RefreshDataFromNationalStatistics(wg *sync.WaitGroup) (err error) {
 
 		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			return errors.New("RefreshDataFromNationalStatistics Err:" + err.Error())
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+err.Error())
+			continue
 		}
 		if resp.Ret != 200 {
-			return errors.New("RefreshDataFromNationalStatistics Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+			errMsgList = append(errMsgList, "RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
 		}
+
 	}
 	return err
 }
@@ -1249,24 +1135,30 @@ func RefreshDataFromFubao(wg *sync.WaitGroup) (err error) {
 	return err
 }
 
-// RefreshDataFromDl 刷新广期所数据
-func RefreshDataFromGz(wg *sync.WaitGroup) (err error) {
+// RefreshDataFromBloomberg 刷新Bloomberg
+func RefreshDataFromBloomberg(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
-			fmt.Println("RefreshDataFromGz Err:" + err.Error())
-			go alarm_msg.SendAlarmMsg("RefreshDataFromGz ErrMsg:"+err.Error(), 3)
+			fmt.Println("RefreshDataFromBloomberg Err:" + err.Error())
+			go alarm_msg.SendAlarmMsg("RefreshDataFromBloomberg ErrMsg:"+err.Error(), 3)
+		}
+		if len(errMsgList) > 0 {
+			errMsg := "RefreshDataFromBloomberg Err:" + strings.Join(errMsgList, "\n")
+			fmt.Println(errMsg)
+			go alarm_msg.SendAlarmMsg(errMsg, 3)
 		}
 		wg.Done()
 	}()
 	var condition string
 	var pars []interface{}
-	condition += " AND source=? "
-	pars = append(pars, utils.DATA_SOURCE_GFEX)
+	condition += ` AND source = ? AND no_update = 0 `
+	pars = append(pars, utils.DATA_SOURCE_BLOOMBERG)
+
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
 	if err != nil {
-		return errors.New("GetEdbInfoByCondition:" + err.Error())
+		return err
 	}
-
 	for _, v := range items {
 		startDate := ""
 		if v.Frequency == "日度" {
@@ -1284,34 +1176,39 @@ func RefreshDataFromGz(wg *sync.WaitGroup) (err error) {
 		}
 		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			return errors.New("RefreshEdbData Err:" + err.Error())
+			errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
+			continue
 		}
 		if resp.Ret != 200 {
-			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+			errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			continue
 		}
 	}
+	fmt.Println("Bloomberg刷新结束")
 	return err
 }
 
-// RefreshDataFromBloomberg 刷新Bloomberg
-func RefreshDataFromBloomberg(wg *sync.WaitGroup) (err error) {
+// RefreshDataFromCCF 刷新CCF化纤信息
+func RefreshDataFromCCF(wg *sync.WaitGroup) (err error) {
 	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
-			fmt.Println("RefreshDataFromBloomberg Err:" + err.Error())
-			go alarm_msg.SendAlarmMsg("RefreshDataFromBloomberg ErrMsg:"+err.Error(), 3)
+			tips := fmt.Sprintf("RefreshDataFromCCF err: %v", err)
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
 		}
 		if len(errMsgList) > 0 {
-			errMsg := "RefreshDataFromBloomberg Err:" + strings.Join(errMsgList, "\n")
-			fmt.Println(errMsg)
-			go alarm_msg.SendAlarmMsg(errMsg, 3)
+			tips := fmt.Sprintf("RefreshDataFromCCF ErrMsg: %s", strings.Join(errMsgList, "\n"))
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 3)
 		}
 		wg.Done()
 	}()
+
 	var condition string
 	var pars []interface{}
 	condition += ` AND source = ? AND no_update = 0 `
-	pars = append(pars, utils.DATA_SOURCE_BLOOMBERG)
+	pars = append(pars, utils.DATA_SOURCE_CCF)
 
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
 	if err != nil {
@@ -1342,36 +1239,45 @@ func RefreshDataFromBloomberg(wg *sync.WaitGroup) (err error) {
 			continue
 		}
 	}
-	fmt.Println("Bloomberg刷新结束")
+	fmt.Println("CCF化纤信息刷新结束")
 	return err
 }
 
-// RefreshDataFromCCF 刷新CCF化纤信息
-func RefreshDataFromCCF(wg *sync.WaitGroup) (err error) {
+// RefreshBaseDataFromSource
+// @Description: 刷新基础数据
+// @author: Roc
+// @datetime 2024-08-01 18:10:03
+// @param wg *sync.WaitGroup
+// @param source int
+// @return err error
+func RefreshBaseDataFromSource(wg *sync.WaitGroup, source int) (err error) {
 	errMsgList := make([]string, 0)
 	defer func() {
 		if err != nil {
-			tips := fmt.Sprintf("RefreshDataFromCCF err: %v", err)
-			utils.FileLog.Info(tips)
-			go alarm_msg.SendAlarmMsg(tips, 3)
+			errMsg := fmt.Sprintf("刷新基础数据失败,来源:%d,ErrMsg:%s", source, err.Error())
+			utils.FileLog.Info(errMsg)
+			go alarm_msg.SendAlarmMsg(errMsg, 3)
 		}
+
 		if len(errMsgList) > 0 {
-			tips := fmt.Sprintf("RefreshDataFromCCF ErrMsg: %s", strings.Join(errMsgList, "\n"))
-			utils.FileLog.Info(tips)
-			go alarm_msg.SendAlarmMsg(tips, 3)
+			errMsg := fmt.Sprintf("刷新基础数据失败,来源:%d,ErrMsg:%s", source, strings.Join(errMsgList, "\n"))
+			utils.FileLog.Info(errMsg)
+			go alarm_msg.SendAlarmMsg(errMsg, 3)
 		}
+
 		wg.Done()
 	}()
 
 	var condition string
 	var pars []interface{}
-	condition += ` AND source = ? AND no_update = 0 `
-	pars = append(pars, utils.DATA_SOURCE_CCF)
+	condition += " AND source=? "
+	pars = append(pars, source)
 
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
 	if err != nil {
-		return err
+		return errors.New("GetEdbInfoByCondition:" + err.Error())
 	}
+
 	for _, v := range items {
 		startDate := ""
 		if v.Frequency == "日度" {
@@ -1387,16 +1293,16 @@ func RefreshDataFromCCF(wg *sync.WaitGroup) (err error) {
 		} else {
 			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
 		}
-		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+
+		resp, tmpErr := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
 		if err != nil {
-			errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error())
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
 			continue
 		}
 		if resp.Ret != 200 {
-			errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg)
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;msg:%s;errMsg:%s", v.EdbInfoId, v.EdbCode, resp.Msg, resp.ErrMsg))
 			continue
 		}
 	}
-	fmt.Println("CCF化纤信息刷新结束")
 	return err
 }

+ 295 - 0
services/data/old_refresh.go

@@ -0,0 +1,295 @@
+package data
+
+import (
+	"errors"
+	"eta/eta_task/models/data_manage"
+	"eta/eta_task/services/alarm_msg"
+	"eta/eta_task/utils"
+	"fmt"
+	"strings"
+	"sync"
+)
+
+// RefreshDataFromDl 刷新广期所数据
+func RefreshDataFromGz(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
+	defer func() {
+		if err != nil {
+			errMsg := "刷新广期所数据 ErrMsg:" + err.Error()
+			utils.FileLog.Info(errMsg)
+			go alarm_msg.SendAlarmMsg(errMsg, 3)
+		}
+
+		if len(errMsgList) > 0 {
+			utils.FileLog.Info("刷新广期所数据 Err:" + strings.Join(errMsgList, "\n"))
+			go alarm_msg.SendAlarmMsg("刷新广期所数据 Err:"+strings.Join(errMsgList, "\n"), 3)
+		}
+		wg.Done()
+	}()
+
+	var condition string
+	var pars []interface{}
+	condition += " AND source=? "
+	pars = append(pars, utils.DATA_SOURCE_GFEX)
+	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
+	if err != nil {
+		return errors.New("GetEdbInfoByCondition:" + err.Error())
+	}
+
+	for _, v := range items {
+		startDate := ""
+		if v.Frequency == "日度" {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		} else if v.Frequency == "周度" {
+			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
+		} else if v.Frequency == "月度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "季度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "年度" {
+			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
+		} else {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		}
+
+		resp, tmpErr := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+		if err != nil {
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
+			continue
+		}
+		if resp.Ret != 200 {
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;msg:%s;errMsg:%s", v.EdbInfoId, v.EdbCode, resp.Msg, resp.ErrMsg))
+			continue
+		}
+	}
+	return err
+}
+
+// RefreshDataFromDl 刷新大商所数据
+func RefreshDataFromDl(wg *sync.WaitGroup) (err error) {
+	errMsgList := make([]string, 0)
+	defer func() {
+		if err != nil {
+			errMsg := "刷新大商所数据 ErrMsg:" + err.Error()
+			utils.FileLog.Info(errMsg)
+			go alarm_msg.SendAlarmMsg(errMsg, 3)
+		}
+
+		if len(errMsgList) > 0 {
+			utils.FileLog.Info("刷新大商所数据 Err:" + strings.Join(errMsgList, "\n"))
+			go alarm_msg.SendAlarmMsg("刷新大商所数据 Err:"+strings.Join(errMsgList, "\n"), 3)
+		}
+		wg.Done()
+	}()
+
+	var condition string
+	var pars []interface{}
+	condition += " AND source=? "
+	pars = append(pars, utils.DATA_SOURCE_DL)
+	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
+	if err != nil {
+		return errors.New("GetEdbInfoByCondition:" + err.Error())
+	}
+
+	for _, v := range items {
+		startDate := ""
+		if v.Frequency == "日度" {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		} else if v.Frequency == "周度" {
+			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
+		} else if v.Frequency == "月度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "季度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "年度" {
+			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
+		} else {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		}
+		resp, tmpErr := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+		if err != nil {
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
+			continue
+		}
+		if resp.Ret != 200 {
+			errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;msg:%s;errMsg:%s", v.EdbInfoId, v.EdbCode, resp.Msg, resp.ErrMsg))
+			continue
+		}
+	}
+	return err
+}
+
+// RefreshDataFromCffex 刷新中金所数据
+func RefreshDataFromCffex(wg *sync.WaitGroup) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("RefreshDataFromCffex Err:" + err.Error())
+			go alarm_msg.SendAlarmMsg("RefreshDataFromCffex ErrMsg:"+err.Error(), 3)
+		}
+		wg.Done()
+	}()
+	var condition string
+	var pars []interface{}
+	condition += " AND source=? "
+	pars = append(pars, utils.DATA_SOURCE_CFFEX)
+	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
+	if err != nil {
+		return errors.New("GetEdbInfoByCondition:" + err.Error())
+	}
+
+	for _, v := range items {
+		startDate := ""
+		if v.Frequency == "日度" {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		} else if v.Frequency == "周度" {
+			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
+		} else if v.Frequency == "月度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "季度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "年度" {
+			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
+		} else {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		}
+		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+		if err != nil {
+			return errors.New("RefreshEdbData Err:" + err.Error())
+		}
+		if resp.Ret != 200 {
+			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+		}
+	}
+	return err
+}
+
+// RefreshDataFromShfe 刷新上期能源数据
+func RefreshDataFromShfe(wg *sync.WaitGroup) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("RefreshDataFromShfe Err:" + err.Error())
+			go alarm_msg.SendAlarmMsg("RefreshDataFromShfe ErrMsg:"+err.Error(), 3)
+		}
+		wg.Done()
+	}()
+	var condition string
+	var pars []interface{}
+	condition += " AND source=? "
+	pars = append(pars, utils.DATA_SOURCE_SHFE)
+	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
+	if err != nil {
+		return errors.New("GetEdbInfoByCondition:" + err.Error())
+	}
+
+	for _, v := range items {
+		startDate := ""
+		if v.Frequency == "日度" {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		} else if v.Frequency == "周度" {
+			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
+		} else if v.Frequency == "月度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "季度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "年度" {
+			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
+		} else {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		}
+		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+		if err != nil {
+			return errors.New("RefreshEdbData Err:" + err.Error())
+		}
+		if resp.Ret != 200 {
+			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+		}
+	}
+	return err
+}
+
+// RefreshDataFromSh 刷新上期所数据
+func RefreshDataFromSh(wg *sync.WaitGroup) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("RefreshDataFromSh Err:" + err.Error())
+			go alarm_msg.SendAlarmMsg("RefreshDataFromSh ErrMsg:"+err.Error(), 3)
+		}
+		wg.Done()
+	}()
+	var condition string
+	var pars []interface{}
+	condition += " AND source=? "
+	pars = append(pars, utils.DATA_SOURCE_SH)
+	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
+	if err != nil {
+		return errors.New("GetEdbInfoByCondition:" + err.Error())
+	}
+	for _, v := range items {
+		startDate := ""
+		if v.Frequency == "日度" {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		} else if v.Frequency == "周度" {
+			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
+		} else if v.Frequency == "月度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "季度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "年度" {
+			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
+		} else {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		}
+		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+		if err != nil {
+			return errors.New("RefreshEdbData Err:" + err.Error())
+		}
+		if resp.Ret != 200 {
+			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+		}
+	}
+	return err
+}
+
+// RefreshDataFromZz 刷新郑商所数据
+func RefreshDataFromZz(wg *sync.WaitGroup) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println("RefreshDataFromZz Err:" + err.Error())
+			go alarm_msg.SendAlarmMsg("RefreshDataFromZz ErrMsg:"+err.Error(), 3)
+		}
+		wg.Done()
+	}()
+	var condition string
+	var pars []interface{}
+	condition += " AND source=? "
+	pars = append(pars, utils.DATA_SOURCE_ZZ)
+	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
+	if err != nil {
+		return errors.New("GetEdbInfoByCondition:" + err.Error())
+	}
+
+	for _, v := range items {
+		startDate := ""
+		if v.Frequency == "日度" {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		} else if v.Frequency == "周度" {
+			startDate = v.EndDate.AddDate(0, 0, -(utils.DATA_REFRESH * 7)).Format(utils.FormatDate)
+		} else if v.Frequency == "月度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "季度" {
+			startDate = v.EndDate.AddDate(0, -utils.DATA_REFRESH*3, 0).Format(utils.FormatDate)
+		} else if v.Frequency == "年度" {
+			startDate = v.EndDate.AddDate(-utils.DATA_REFRESH, 0, 0).Format(utils.FormatDate)
+		} else {
+			startDate = v.EndDate.AddDate(0, 0, -utils.DATA_REFRESH).Format(utils.FormatDate)
+		}
+		resp, err := RefreshEdbData(v.EdbInfoId, v.Source, v.SubSource, v.EdbCode, startDate)
+		if err != nil {
+			return errors.New("RefreshEdbData Err:" + err.Error())
+		}
+		if resp.Ret != 200 {
+			return errors.New("RefreshEdbData Err:" + resp.Msg + ";ErrMsg:" + resp.ErrMsg)
+		}
+	}
+	return err
+}

+ 9 - 7
services/task.go

@@ -251,18 +251,20 @@ func RefreshTradeData(cont context.Context) (err error) {
 	wg.Add(6)
 
 	//郑商所
-	go data.RefreshDataFromZz(&wg)
+	go data.RefreshBaseDataFromSource(&wg, utils.DATA_SOURCE_ZZ)
 	//上期所
-	go data.RefreshDataFromSh(&wg)
+	go data.RefreshBaseDataFromSource(&wg, utils.DATA_SOURCE_SH)
 	//上期能源
-	go data.RefreshDataFromShfe(&wg)
+	go data.RefreshBaseDataFromSource(&wg, utils.DATA_SOURCE_SHFE)
 	//中金所
-	go data.RefreshDataFromCffex(&wg)
+	go data.RefreshBaseDataFromSource(&wg, utils.DATA_SOURCE_CFFEX)
 	//大商所
-	go data.RefreshDataFromDl(&wg)
-	//大商所
-	go data.RefreshDataFromGz(&wg)
+	go data.RefreshBaseDataFromSource(&wg, utils.DATA_SOURCE_DL)
+	//广期所数据
+	go data.RefreshBaseDataFromSource(&wg, utils.DATA_SOURCE_GFEX)
+
 	wg.Wait()
+
 	//计算指标
 	data.RefreshDataFromCalculateAll()