Browse Source

Merge remote-tracking branch 'origin/fix/eia_end_date'

Roc 2 tháng trước cách đây
mục cha
commit
6cfcbd2289
2 tập tin đã thay đổi với 26 bổ sung3 xóa
  1. 9 1
      models/base_from_eia_steo.go
  2. 17 2
      models/base_from_icpi.go

+ 9 - 1
models/base_from_eia_steo.go

@@ -27,6 +27,7 @@ type BaseFromEiaSteoIndex struct {
 	EndDate                   time.Time `description:"结束日期"`
 	ModifyTime                time.Time `description:"最新更新时间"`
 	CreateTime                time.Time `description:"创建时间"`
+	LatestValue               float64   `description:"最新值"`
 }
 
 // Add 新增指标
@@ -148,6 +149,7 @@ func HandleEiaSteoData(dataList map[string]interface{}, indexInfo *BaseFromEiaSt
 	addBaseFromEiaSteoDataList := make([]*BaseFromEiaSteoData, 0)
 	endDate := indexInfo.EndDate
 	startDate := indexInfo.StartDate
+	var latestValue float64
 
 	for date, v := range dataList {
 		// 实际数据
@@ -166,7 +168,12 @@ func HandleEiaSteoData(dataList map[string]interface{}, indexInfo *BaseFromEiaSt
 		}
 		if currDate.After(endDate) {
 			endDate = currDate
+			latestValue = val
+		} else if currDate.Equal(endDate) {
+			// 修复历史数据
+			latestValue = val
 		}
+
 		if currDate.Before(startDate) {
 			startDate = currDate
 		}
@@ -230,7 +237,8 @@ func HandleEiaSteoData(dataList map[string]interface{}, indexInfo *BaseFromEiaSt
 	{
 		updateParams := make([]string, 0)
 		indexInfo.ModifyTime = time.Now()
-		updateParams = append(updateParams, "ModifyTime")
+		indexInfo.LatestValue = latestValue
+		updateParams = append(updateParams, "ModifyTime", "LatestValue")
 		if endDate.After(indexInfo.EndDate) {
 			indexInfo.EndDate = endDate
 			updateParams = append(updateParams, "EndDate")

+ 17 - 2
models/base_from_icpi.go

@@ -16,6 +16,7 @@ type BaseFromIcpiIndex struct {
 	EndDate                time.Time `description:"结束日期"`
 	CreateTime             time.Time `description:"创建时间"`
 	ModifyTime             time.Time `description:"修改时间"`
+	LatestValue            float64   `description:"最新值"`
 }
 
 type BaseFromIcpiData struct {
@@ -102,14 +103,28 @@ func (m *BaseFromIcpiIndex) GetBaseFromIcpiIndexMaxAndMinInfo(indexCode string)
 	o := orm.NewOrmUsingDB("data")
 	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 base_from_icpi_data WHERE index_code=? `
 	err = o.Raw(sql, indexCode).QueryRow(&item)
+	if err != nil {
+		return
+	}
+
+	// 获取最新日期的值
+	var latestValue float64
+	sql = ` SELECT value FROM base_from_icpi_data WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `
+	err = o.Raw(sql, indexCode).QueryRow(&latestValue)
+	if err != nil {
+		return
+	}
+
+	item.LatestValue = latestValue
+
 	return
 }
 
 // 修改指标的最新数据信息
 func (m *BaseFromIcpiIndex) ModifyEdbInfoMaxAndMinInfo(indexCode string, item *IndexMaxAndMinInfo) (err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE base_from_icpi_index SET start_date=?,end_date=?,modify_time=NOW() WHERE index_code=? `
-	_, err = o.Raw(sql, item.MinDate, item.MaxDate, indexCode).Exec()
+	sql := ` UPDATE base_from_icpi_index SET start_date=?,end_date=?,modify_time=NOW(),latest_value = ? WHERE index_code=? `
+	_, err = o.Raw(sql, item.MinDate, item.MaxDate, item.LatestValue, indexCode).Exec()
 	return
 }