Browse Source

修改wind数据bug

hongze 3 năm trước cách đây
mục cha
commit
7589538c95

+ 13 - 6
models/data_manage/edb_info.go

@@ -74,10 +74,11 @@ func ModifyEdbDataInfoDate(edbInfoId int, maxDate string) (err error) {
 }
 
 type EdbInfoMaxAndMinInfo struct {
-	MinDate  string  `description:"最小日期"`
-	MaxDate  string  `description:"最大日期"`
-	MinValue float64 `description:"最小值"`
-	MaxValue float64 `description:"最大值"`
+	MinDate     string  `description:"最小日期"`
+	MaxDate     string  `description:"最大日期"`
+	MinValue    float64 `description:"最小值"`
+	MaxValue    float64 `description:"最大值"`
+	LatestValue float64 `description:"最新值"`
 }
 
 func GetEdbInfoMaxAndMinInfo(source int, edbCode string) (item *EdbInfoMaxAndMinInfo, err error) {
@@ -88,14 +89,20 @@ func GetEdbInfoMaxAndMinInfo(source int, edbCode string) (item *EdbInfoMaxAndMin
 	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)
 	err = o.Raw(sql, edbCode).QueryRow(&item)
+
+	var latest_value float64
+	sql = ` SELECT value AS latest_value FROM %s WHERE edb_code=? ORDER BY data_time DESC LIMIT 1 `
+	sql = fmt.Sprintf(sql, tableName)
+	err = o.Raw(sql, edbCode).QueryRow(&latest_value)
+	item.LatestValue = latest_value
 	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=?,is_update=2,modify_time=NOW() WHERE edb_info_id=? `
-	_, err = o.Raw(sql, item.MinDate, item.MaxDate, item.MinValue, item.MaxValue, edbInfoId).Exec()
+	sql := ` UPDATE edb_info SET start_date=?,end_date=?,min_value=?,max_value=?,is_update=2,latest_date=?,latest_value=?,modify_time=NOW() WHERE edb_info_id=? `
+	_, err = o.Raw(sql, item.MinDate, item.MaxDate, item.MinValue, item.MaxValue, item.MaxDate, item.LatestValue, edbInfoId).Exec()
 	return
 }
 

+ 1 - 3
services/data/data_ths.go

@@ -28,9 +28,7 @@ func SyncEdbDataByThs(edbInfoId int64, edbCode, startDate, endDate string) (err
 	thsUrl = fmt.Sprintf(thsUrl, edbCode, startDate, endDate)
 	utils.FileLog.Info("thsUrl:" + thsUrl)
 	body, err := http.Get(thsUrl)
-	fmt.Println(thsUrl)
-	fmt.Println("GetEdbDataByThs body:")
-	fmt.Println(string(body))
+
 	if strings.Contains(string(body), "html") {
 		return nil
 	}

+ 7 - 7
services/data/data_wind.go

@@ -2,6 +2,7 @@ package data
 
 import (
 	"encoding/json"
+	"errors"
 	"fmt"
 	"hongze/hongze_task/models/data_manage"
 	"hongze/hongze_task/utils"
@@ -19,19 +20,17 @@ type EdbDataFromWind struct {
 func SyncEdbDataByWind(edbInfoId int64, edbCode, startDate, endDate string) (err error) {
 	defer func() {
 		if err != nil {
-			fmt.Println("GetEdbDataByWind Err:" + err.Error())
+			utils.FileLog.Info("GetEdbDataByWind Err:" + err.Error())
 		}
 	}()
 
 	windUrl := utils.Hz_Data_Url + `edbInfo/wind?EdbCode=%s&StartDate=%s&EndDate=%s`
 	windUrl = fmt.Sprintf(windUrl, edbCode, startDate, endDate)
-	utils.FileLog.Info("windUrl:", windUrl)
+	utils.FileLog.Info("windUrl:" + windUrl)
 	body, err := http.Get(windUrl)
-	fmt.Println(windUrl)
-	fmt.Println("SyncEdbDataByWind body:")
-	fmt.Println(string(body))
-	utils.FileLog.Info("wind result:", string(body))
-	if strings.Contains(string(body), "html") {
+	bodyStr := string(body)
+	utils.FileLog.Info("wind result:" + bodyStr)
+	if strings.Contains(bodyStr, "html") || strings.Contains(bodyStr, "CWSDService: No data.") {
 		return nil
 	}
 	if err != nil {
@@ -40,6 +39,7 @@ func SyncEdbDataByWind(edbInfoId int64, edbCode, startDate, endDate string) (err
 	item := new(EdbDataFromWind)
 	err = json.Unmarshal(body, &item)
 	if err != nil {
+		err = errors.New("Err:"+err.Error() +" EdbCode:"+ edbCode + "\n" +" BodyStr:"+ string(body))
 		return
 	}
 

+ 1 - 0
services/data/edb_info.go

@@ -87,6 +87,7 @@ func RefreshDataFromWind(wg *sync.WaitGroup) (err error) {
 	var pars []interface{}
 	condition += " AND source=? "
 	pars = append(pars, utils.DATA_SOURCE_WIND)
+
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
 	if err != nil {
 		return err

+ 1 - 0
services/task.go

@@ -177,6 +177,7 @@ func RefreshData(cont context.Context) (err error) {
 	go data.RefreshDataFromGl(&wg)
 
 	wg.Wait()
+	//计算指标
 	data.RefreshDataFromCalculateAll()
 
 	time.Sleep(2 * time.Second)