Procházet zdrojové kódy

优化中石油bloomberg

hsun před 8 měsíci
rodič
revize
261ee39a9e
2 změnil soubory, kde provedl 29 přidání a 2 odebrání
  1. 24 1
      controllers/base_from_bloomberg.go
  2. 5 1
      services/base_from_pcsg.go

+ 24 - 1
controllers/base_from_bloomberg.go

@@ -246,8 +246,31 @@ func (this *BloombergController) PCSGRefreshTask() {
 			return
 		}
 
+		// 此处重新整理一下, 将同一指标的数据合并, 否则会使刷新时间变得很长
+		var newIndexes []models.BaseFromBloombergApiIndexAndData
+		indexCodeMap := make(map[string]models.BaseFromBloombergApiIndexAndData)
+		indexCodeData := make(map[string][]models.BaseFromBloombergApiIndexData)
+		for _, iv := range indexes {
+			if indexCodeMap[iv.IndexCode].IndexCode == "" {
+				var indexItem models.BaseFromBloombergApiIndexAndData
+				indexItem.IndexCode = iv.IndexCode
+				indexItem.IndexName = iv.IndexName
+				indexItem.Unit = iv.Unit
+				indexItem.Source = iv.Source
+				indexItem.Frequency = iv.Frequency
+				indexItem.CreateTime = iv.CreateTime
+				indexItem.ModifyTime = iv.ModifyTime
+				indexCodeMap[iv.IndexCode] = indexItem
+			}
+			indexCodeData[iv.IndexCode] = append(indexCodeData[iv.IndexCode], iv.Data...)
+		}
+		for _, mv := range indexCodeMap {
+			mv.Data = indexCodeData[mv.IndexCode]
+			newIndexes = append(newIndexes, mv)
+		}
+
 		// 写入数据
-		if e = services.PCSGWrite2BaseBloomberg(indexes, v.VCode); e != nil {
+		if e = services.PCSGWrite2BaseBloomberg(newIndexes, v.VCode); e != nil {
 			br.Msg = "刷新失败"
 			br.ErrMsg = "PCSG-写入Bloomberg数据源失败, Err: " + e.Error()
 			return

+ 5 - 1
services/base_from_pcsg.go

@@ -240,7 +240,11 @@ func PCSGWrite2BaseBloomberg(indexes []models.BaseFromBloombergApiIndexAndData,
 				return
 			}
 			if edb != nil {
-				logic.RefreshBaseEdbInfo(edb, ``)
+				_, _, e = logic.RefreshBaseEdbInfo(edb, ``)
+				if e != nil {
+					utils.FileLog.Info(fmt.Sprintf("Bloomberg RefreshBaseEdbInfo, edbCode: %s, err: %v", index.IndexCode, e))
+					return
+				}
 			}
 		}()
 	}