Browse Source

修改数据更新

hongze 3 years ago
parent
commit
8c69aeaaaa
2 changed files with 83 additions and 21 deletions
  1. 42 0
      models/data_manage/edb_info.go
  2. 41 21
      services/data_manage/edb_info.go

+ 42 - 0
models/data_manage/edb_info.go

@@ -1,7 +1,11 @@
 package data_manage
 
 import (
+	"errors"
+	"fmt"
+	"hongze/hongze_task/utils"
 	"rdluck_tools/orm"
+	"strconv"
 	"time"
 )
 
@@ -37,3 +41,41 @@ func ModifyEdbDataInfoDate(edbInfoId int, maxDate string) (err error) {
 	_, err = o.Raw(sql, maxDate, edbInfoId).Exec()
 	return
 }
+
+type EdbInfoMaxAndMinInfo struct {
+	MinDate  string  `description:"最小日期"`
+	MaxDate  string  `description:"最大日期"`
+	MinValue float64 `description:"最小值"`
+	MaxValue float64 `description:"最大值"`
+}
+
+func GetEdbInfoMaxAndMinInfo(source int, edbCode string) (item *EdbInfoMaxAndMinInfo, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ``
+	tableName := ``
+	if source == utils.DATA_SOURCE_THS {
+		tableName = `edb_data_ths`
+	} else if source == utils.DATA_SOURCE_WIND {
+		tableName = `edb_data_wind`
+	} else if source == utils.DATA_SOURCE_PB {
+		tableName = `edb_data_pb`
+	} else {
+		errors.New("无效的渠道:" + strconv.Itoa(source))
+		return
+	}
+	sql = ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date,MIN(value) AS min_value,MAX(value) AS max_value FROM %s WHERE edb_code=? `
+	sql = fmt.Sprintf(sql, tableName)
+	fmt.Println("sql:", sql)
+	err = o.Raw(sql, edbCode).QueryRow(&item)
+	return
+}
+
+
+func ModifyEdbInfoMaxAndMinInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` UPDATE edb_info SET start_date=?,end_date=?,min_value=?,max_value=? WHERE edb_info_id=? `
+	_, err = o.Raw(sql, item.MinDate, item.MaxDate, item.MinValue, item.MaxValue, edbInfoId).Exec()
+	return
+}

+ 41 - 21
services/data_manage/edb_info.go

@@ -33,15 +33,25 @@ func RefreshDataFromThs() (err error) {
 		if err != nil {
 			return errors.New("SyncEdbDataByThs:" + err.Error())
 		}
-		minDate, maxDate, err := data_manage.GetEdbDataThsMaxOrMinDate(v.EdbInfoId)
+		item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
 		if err != nil {
-			return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
-		}
-		fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
-		err = data_manage.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
-		if err != nil {
-			return errors.New("ModifyEdbDataInfoDate:" + err.Error())
+			return err
 		}
+		if item != nil {
+			err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
+			if err != nil {
+				return err
+			}
+		}
+		//minDate, maxDate, err := data_manage.GetEdbDataThsMaxOrMinDate(v.EdbInfoId)
+		//if err != nil {
+		//	return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
+		//}
+		//fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
+		//err = data_manage.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
+		//if err != nil {
+		//	return errors.New("ModifyEdbDataInfoDate:" + err.Error())
+		//}
 	}
 	return err
 }
@@ -71,17 +81,17 @@ func RefreshDataFromWind() (err error) {
 		if err != nil {
 			return err
 		}
-		minDate, maxDate, err := data_manage.GetEdbDataWindMaxOrMinDate(v.EdbInfoId)
+		item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
 		if err != nil {
 			return err
 		}
-		fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
-		err = data_manage.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
-		if err != nil {
-			return err
+		if item != nil {
+			err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
+			if err != nil {
+				return err
+			}
 		}
 	}
-
 	return err
 }
 
@@ -110,15 +120,25 @@ func RefreshDataFromPb() (err error) {
 		if err != nil {
 			return errors.New("SyncEdbDataByPb:" + err.Error())
 		}
-		minDate, maxDate, err := data_manage.GetEdbDataPbMaxOrMinDate(v.EdbInfoId)
-		if err != nil {
-			return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
-		}
-		fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
-		err = data_manage.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
+		item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
 		if err != nil {
-			return errors.New("ModifyEdbDataInfoDate:" + err.Error())
+			return err
 		}
+		if item != nil {
+			err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
+			if err != nil {
+				return err
+			}
+		}
+		//minDate, maxDate, err := data_manage.GetEdbDataPbMaxOrMinDate(v.EdbInfoId)
+		//if err != nil {
+		//	return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
+		//}
+		//fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
+		//err = data_manage.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
+		//if err != nil {
+		//	return errors.New("ModifyEdbDataInfoDate:" + err.Error())
+		//}
 	}
 	return err
 }
@@ -151,4 +171,4 @@ func CheckPbDataInterface() (err error) {
 		}
 	}()
 	return
-}
+}