package data import ( "context" "errors" "eta/eta_task/models/data_manage" "eta/eta_task/services/alarm_msg" "eta/eta_task/utils" "fmt" "strings" "sync" ) // RefreshDataFromThs 刷新同花顺数据 func RefreshDataFromThs(wg *sync.WaitGroup) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromThs Err:" + err.Error()) go alarm_msg.SendAlarmMsg("RefreshDataFromThs ErrMsg:"+err.Error(), 3) } wg.Done() }() var condition string var pars []interface{} condition += " AND source=? " pars = append(pars, utils.DATA_SOURCE_THS) items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0) if err != nil { err = errors.New("GetEdbInfoByCondition:" + err.Error()) return } 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.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 } // RefreshDataFromWind 刷新万得数据 func RefreshDataFromWind(wg *sync.WaitGroup) (err error) { errMsgList := make([]string, 0) defer func() { if err != nil { fmt.Println("RefreshDataFromWind Err:" + err.Error()) go alarm_msg.SendAlarmMsg("RefreshDataFromWind ErrMsg:"+err.Error(), 3) } if len(errMsgList) > 0 { errMsg := "RefreshDataFromWind 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=? AND no_update = 0 ` pars = append(pars, utils.DATA_SOURCE_WIND) items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0) if err != nil { return err } 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.EdbCode, startDate) if err != nil { errMsgList = append(errMsgList, v.EdbCode+"RefreshEdbData Err:"+err.Error()) continue } if resp.Ret != 200 { errMsgList = append(errMsgList, v.EdbCode+";RefreshEdbData Err:"+resp.Msg+";ErrMsg:"+resp.ErrMsg) continue } } fmt.Println("wind刷新结束") return err } // RefreshDataFromPb 刷新彭博数据 func RefreshDataFromPb(wg *sync.WaitGroup) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromPb Err:" + err.Error()) go alarm_msg.SendAlarmMsg("RefreshDataFromPb ErrMsg:"+err.Error(), 3) } wg.Done() }() var condition string var pars []interface{} condition += " AND source=? " pars = append(pars, utils.DATA_SOURCE_PB) 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.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 } // RefreshDataFromPbFinance 刷新彭博财务指标数据 func RefreshDataFromPbFinance(wg *sync.WaitGroup) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromPb Err:" + err.Error()) //go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromPb ErrMsg:"+err.Error(), utils.EmailSendToUsers) go alarm_msg.SendAlarmMsg("RefreshDataFromPb ErrMsg:"+err.Error(), 3) } wg.Done() }() var condition string var pars []interface{} condition += " AND source=? " pars = append(pars, utils.DATA_SOURCE_PB_FINANCE) 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.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 } // RefreshDataFromCalculateAll 刷新所有计算指标 func RefreshDataFromCalculateAll() (err error) { var errmsg string 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) } }() var condition string var pars []interface{} // 查询 普通指标的计算指标 condition += " AND edb_type=? AND edb_info_type=? " pars = append(pars, 2, 0) items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0) if err != nil { return err } for _, v := range items { source := v.Source startDate := v.StartDate.Format(utils.FormatDate) if startDate == "0001-01-01" { continue } 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 continue } if result.Ret != 200 { errmsg += v.EdbCode + "," err = errors.New("RefreshEdbCalculateData err;msg:" + result.Msg + ";errMsg:" + result.ErrMsg) //return err continue } } return err } // RefreshPredictDataFromCalculateAll 刷新所有预测计算指标 func RefreshPredictDataFromCalculateAll() (err error) { defer func() { if err != nil { utils.FileLog.Info("RefreshDataFromCalculateAll Err:" + err.Error()) go alarm_msg.SendAlarmMsg("RefreshDataFromCalculateAll ErrMsg:"+err.Error(), 3) } }() var condition string var pars []interface{} // 查询 普通指标的计算指标 condition += " AND edb_type=? AND edb_info_type=? " pars = append(pars, 2, 1) items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0) if err != nil { return err } for _, v := range items { source := v.Source startDate := v.StartDate.Format(utils.FormatDate) if startDate == "0001-01-01" { continue } 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 } if result.Ret != 200 { err = errors.New("RefreshPredictEdbCalculateData err;msg:" + result.Msg + ";errMsg:" + result.ErrMsg) return err } } return err } // RefreshDataFromManual 刷新手工指标数据 func RefreshDataFromManual(wg *sync.WaitGroup) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromManual Err:" + err.Error()) go alarm_msg.SendAlarmMsg("RefreshDataFromManual ErrMsg:"+err.Error(), 3) } wg.Done() }() var condition string var pars []interface{} condition += " AND source=? " pars = append(pars, utils.DATA_SOURCE_MANUAL) items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0) if err != nil { return errors.New("GetEdbInfoByCondition:" + err.Error()) } for _, v := range items { startDate := v.StartDate.Format(utils.FormatDate) resp, err := RefreshEdbData(v.EdbInfoId, v.Source, 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 } func ResetEdbInfoIsUpdate(cont context.Context) (err error) { go data_manage.ResetEdbInfoIsUpdate() return nil } // RefreshDataFromGoogleTravel RefreshDataFromEic 刷新谷歌出行数据 func RefreshDataFromGoogleTravel(wg *sync.WaitGroup) (err error) { defer func() { if err != nil { fmt.Println("RefreshDataFromGoogleTravel Err:" + err.Error()) go alarm_msg.SendAlarmMsg("RefreshDataFromGoogleTravel ErrMsg:"+err.Error(), 3) } wg.Done() }() var condition string var pars []interface{} condition += " AND source=? " pars = append(pars, utils.DATA_SOURCE_GOOGLE_TRAVEL) 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.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 } // RefreshDataFromEiaSteo 刷新eia steo 报告数据 func RefreshDataFromEiaSteo(wg *sync.WaitGroup) (err error) { 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.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 }