Bläddra i källkod

优化美国农业部指标更新逻辑

xyxie 2 dagar sedan
förälder
incheckning
ace6eea6b1
2 ändrade filer med 17 tillägg och 6 borttagningar
  1. 1 0
      models/base_from_usda_fas.go
  2. 16 6
      services/base_from_usda_fas.go

+ 1 - 0
models/base_from_usda_fas.go

@@ -216,6 +216,7 @@ type BaseFromUsdaFasIndex struct {
 	Unit           string
 	StartDate      string
 	EndDate        string
+	EndValue       float64
 	ClassifyId     int64
 	Sort           int
 	BaseFileName   string

+ 16 - 6
services/base_from_usda_fas.go

@@ -136,6 +136,7 @@ func handleUsdaFasIndex(req *models.HandleUsdaFasExcelData, terminalCode string,
 			return
 		}
 	}
+	oldIndexObj := item
 	if item != nil && item.BaseFromUsdaFasIndexId > 0 {
 		fmt.Println("item:", item)
 		isAdd = 2
@@ -191,11 +192,13 @@ func handleUsdaFasIndex(req *models.HandleUsdaFasExcelData, terminalCode string,
 		updateColsArr = append(updateColsArr, "frequency")
 		updateColsArr = append(updateColsArr, "sort")
 		updateColsArr = append(updateColsArr, "modify_time")
-
-		e := indexObj.Update(updateColsArr)
-		if e != nil {
-			fmt.Println("Index Update Err:" + e.Error())
-			return
+		// 指标数据有变化才更新
+		if oldIndexObj.IndexName != indexName || oldIndexObj.ClassifyId != classifyId || oldIndexObj.Country != req.Country || oldIndexObj.Commodity != req.Commodity || oldIndexObj.Frequency != req.Frequency || oldIndexObj.Sort != req.Sort {
+		    e := indexObj.Update(updateColsArr)
+		    if e != nil {
+			   fmt.Println("Index Update Err:" + e.Error())
+			   return
+		    }
 		}
 	}
 
@@ -287,7 +290,14 @@ func handleUsdaFasIndex(req *models.HandleUsdaFasExcelData, terminalCode string,
 	}
 
 	go func() {
-		indexObj.ModifyIndexMaxAndMinDate(indexCode, dateItem)
+		if isAdd == 2 && oldIndexObj != nil && oldIndexObj.BaseFromUsdaFasIndexId > 0 {
+			// 判断指标数据是否有变更
+			if oldIndexObj.StartDate != dateItem.MinDate || oldIndexObj.EndDate != dateItem.MaxDate || oldIndexObj.EndValue != dateItem.LatestValue {
+				indexObj.ModifyIndexMaxAndMinDate(indexCode, dateItem)
+			}
+		} else {
+			indexObj.ModifyIndexMaxAndMinDate(indexCode, dateItem)
+		}
 	}()
 
 	// 同步刷新ETA指标库的指标