Browse Source

fix:wind数据刷新逻辑调整

Roc 3 years ago
parent
commit
32b43ccc07
3 changed files with 24 additions and 4 deletions
  1. 11 1
      models/base_from_wind.go
  2. 10 0
      models/edb_data_base.go
  3. 3 3
      services/base_from_wind.go

+ 11 - 1
models/base_from_wind.go

@@ -44,7 +44,7 @@ func AddEdbDataFromWind(edbCode string, item *services.EdbDataFromWind) (err err
 	return
 }
 
-//刷新wind指标数据
+// RefreshEdbDataFromWind 刷新wind指标数据
 func RefreshEdbDataFromWind(edbInfoId int, edbCode, startDate string, item *services.EdbDataFromWind) (err error) {
 	o := orm.NewOrm()
 	source := utils.DATA_SOURCE_WIND
@@ -55,9 +55,11 @@ func RefreshEdbDataFromWind(edbInfoId int, edbCode, startDate string, item *serv
 	condition += " AND edb_info_id=? "
 	pars = append(pars, edbInfoId)
 
+	var startDateTime time.Time
 	if startDate != "" {
 		condition += " AND data_time>=? "
 		pars = append(pars, startDate)
+		startDateTime, _ = time.ParseInLocation(utils.FormatDate, startDate, time.Local)
 	}
 
 	existList, err := GetEdbDataByCondition(source, condition, pars)
@@ -77,6 +79,14 @@ func RefreshEdbDataFromWind(edbInfoId int, edbCode, startDate string, item *serv
 		val := item.Close[k]
 		saveVal := utils.SubFloatToString(val, 30)
 
+		//如果传入的开始时间是空的,且当前数据日期早于传入的开始日期,那么需要判断下当前日期的数据是否存在
+		if !startDateTime.IsZero() && t.Before(startDateTime) {
+			tmpItem, tmpErr := GetEdbDataByDate(source, dateTime)
+			if tmpErr == nil && tmpItem != nil {
+				existMap[tmpItem.DataTime] = tmpItem
+			}
+		}
+
 		if findItem, ok := existMap[dateTime]; !ok {
 			if _, existOk := addMap[dateTime]; !existOk {
 				isAdd = true

+ 10 - 0
models/edb_data_base.go

@@ -85,6 +85,16 @@ func GetEdbDataByCondition(source int, condition string, pars []interface{}) (it
 	return
 }
 
+// GetEdbDataByDate 根据数据日期获取指标数据
+func GetEdbDataByDate(source int, dataTime string) (item *EdbInfoSearchData, err error) {
+	o := orm.NewOrm()
+	tableName := GetEdbDataTableName(source)
+	sql := ` SELECT * FROM %s WHERE 1=1 and data_time =? ORDER BY data_time DESC `
+	sql = fmt.Sprintf(sql, tableName)
+	err = o.Raw(sql, dataTime).QueryRow(&item)
+	return
+}
+
 func ModifyEdbDataById(source, edbDataId int, value string) (err error) {
 	o := orm.NewOrm()
 	tableName := GetEdbDataTableName(source)

+ 3 - 3
services/base_from_wind.go

@@ -17,11 +17,11 @@ type EdbDataFromWind struct {
 func GetEdbDataFromWind(edbCode, startDate, endDate string) (item *EdbDataFromWind, err error) {
 	thsUrl := utils.Hz_Wind_Data_Url + `edbInfo/wind?EdbCode=%s&StartDate=%s&EndDate=%s`
 	thsUrl = fmt.Sprintf(thsUrl, edbCode, startDate, endDate)
-	utils.FileLog.Info("thsUrl:%s", thsUrl)
+	utils.FileLog.Info(fmt.Sprintf("windUrl:%s", thsUrl))
 	body, err := http.Get(thsUrl)
-	fmt.Println("GetEdbDataByThs body:")
+	fmt.Println("GetEdbDataByWind body:")
 	fmt.Println(string(body))
-	utils.FileLog.Info("wind result:", string(body))
+	utils.FileLog.Info(fmt.Sprint("wind result:", string(body)))
 
 	if err != nil {
 		return