Browse Source

Merge branch 'feature/pcsg_0717' into custom

hsun 7 months ago
parent
commit
9fcff80ea1

+ 6 - 6
controllers/base_from_bloomberg.go

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

+ 5 - 3
models/base_from_bloomberg.go

@@ -354,7 +354,9 @@ type BaseFromBloombergApiIndexData struct {
 
 // PCSGImportHistoryDataReq 导入历史数据
 type PCSGImportHistoryDataReq struct {
-	IndexCode string                `description:"指标编码"`
-	DataMap   map[time.Time]float64 `description:"数据日期/值"`
-	IsVCode   bool                  `description:"是否指标编码中间加V"`
+	IndexCode       string                `description:"指标编码"`
+	DataMap         map[time.Time]float64 `description:"数据日期/值"`
+	IsVCode         bool                  `description:"是否指标编码中间加V"`
+	ExtraLetter     string                `description:"指标编码中间额外加的字母...比如V"`
+	IndexNamePrefix string                `description:"指标名称前缀"`
 }

+ 20 - 7
services/base_from_pcsg.go

@@ -23,9 +23,11 @@ type PCSGBloombergApiReq struct {
 }
 
 type PCSGBloombergTask struct {
-	TaskKey   string `json:"TaskKey"`
-	Frequency string `json:"Frequency"`
-	VCode     bool   `json:"VCode"`
+	TaskKey         string `json:"TaskKey"`
+	Frequency       string `json:"Frequency"`
+	VCode           bool   `json:"VCode"`
+	ExtraLetter     string `json:"ExtraLetter"`
+	IndexNamePrefix string `json:"IndexNamePrefix"`
 }
 
 // LoadPCSGBloombergTask 加载配置
@@ -110,7 +112,7 @@ func GetPCSGBloombergGeneralIndexFromBridge(params PCSGBloombergApiReq) (indexes
 }
 
 // PCSGWrite2BaseBloomberg 写入彭博数据源
-func PCSGWrite2BaseBloomberg(indexes []models.BaseFromBloombergApiIndexAndData, isVCode bool) (err error) {
+func PCSGWrite2BaseBloomberg(indexes []models.BaseFromBloombergApiIndexAndData, isVCode bool, extraLetter, namePrefix string) (err error) {
 	defer func() {
 		if err != nil {
 			tips := fmt.Sprintf("PCSGWrite2BaseBloomberg-写入彭博数据源失败, err: %s", err.Error())
@@ -118,6 +120,11 @@ func PCSGWrite2BaseBloomberg(indexes []models.BaseFromBloombergApiIndexAndData,
 			go alarm_msg.SendAlarmMsg(tips, 3)
 		}
 	}()
+	// 这里挡一下...万一没限制加进库了不好删...
+	if isVCode && extraLetter == "" {
+		err = fmt.Errorf("中间字母有误")
+		return
+	}
 
 	for _, v := range indexes {
 		if v.IndexCode == "" {
@@ -128,7 +135,7 @@ func PCSGWrite2BaseBloomberg(indexes []models.BaseFromBloombergApiIndexAndData,
 			continue
 		}
 		if isVCode {
-			v.IndexCode = utils.InsertStr2StrIdx(v.IndexCode, " ", 1, "V")
+			v.IndexCode = utils.InsertStr2StrIdx(v.IndexCode, " ", 1, extraLetter)
 		}
 
 		// 指标是否存在
@@ -138,11 +145,17 @@ func PCSGWrite2BaseBloomberg(indexes []models.BaseFromBloombergApiIndexAndData,
 			return
 		}
 
+		// 指标名称+前缀
+		indexName := v.IndexName
+		if indexName != "" && namePrefix != "" {
+			indexName = fmt.Sprint(namePrefix, indexName)
+		}
+
 		// 新增指标
 		if index == nil {
 			newIndex := new(models.BaseFromBloombergIndex)
 			newIndex.IndexCode = v.IndexCode
-			newIndex.IndexName = v.IndexName
+			newIndex.IndexName = indexName
 			newIndex.Unit = v.Unit
 			newIndex.Source = utils.DATA_SOURCE_BLOOMBERG
 			newIndex.Frequency = v.Frequency
@@ -156,7 +169,7 @@ func PCSGWrite2BaseBloomberg(indexes []models.BaseFromBloombergApiIndexAndData,
 		} else {
 			// 无指标名称的情况下更新指标基础信息
 			if index.IndexName == "" {
-				index.IndexName = v.IndexName
+				index.IndexName = indexName
 				index.Unit = v.Unit
 				index.Frequency = v.Frequency
 				index.ModifyTime = time.Now().Local()

+ 52 - 9
static/pcsg_task.json

@@ -1,22 +1,65 @@
 [
   {
-    "TaskKey": "IDpcsgDailyRun4",
+    "TaskKey": "IDpcsgDailyRunHistU2",
     "Frequency": "日度",
-    "VCode": false
+    "VCode": false,
+    "ExtraLetter": "",
+    "IndexNamePrefix": ""
   },
   {
-    "TaskKey": "IDpcsgDailyRun5",
+    "TaskKey": "IDpcsgDailyRunHist4",
     "Frequency": "日度",
-    "VCode": true
+    "VCode": false,
+    "ExtraLetter": "",
+    "IndexNamePrefix": ""
   },
   {
-    "TaskKey": "IDpcsgMonthRun2",
-    "Frequency": "月度",
-    "VCode": false
+    "TaskKey": "IDpcsgDailyRunHist1",
+    "Frequency": "日度",
+    "VCode": false,
+    "ExtraLetter": "",
+    "IndexNamePrefix": ""
   },
   {
-    "TaskKey": "IDpcsgDailyRunHist1",
+    "TaskKey": "IDpcsgDailyRunHist2",
     "Frequency": "日度",
-    "VCode": false
+    "VCode": false,
+    "ExtraLetter": "",
+    "IndexNamePrefix": ""
+  },
+  {
+    "TaskKey": "IDpcsgDailyRunHistV1",
+    "Frequency": "日度",
+    "VCode": false,
+    "ExtraLetter": "",
+    "IndexNamePrefix": ""
+  },
+  {
+    "TaskKey": "IDpcsgDailyRun4",
+    "Frequency": "日度",
+    "VCode": false,
+    "ExtraLetter": "",
+    "IndexNamePrefix": ""
+  },
+  {
+    "TaskKey": "IDpcsgDailyRun6",
+    "Frequency": "日度",
+    "VCode": false,
+    "ExtraLetter": "",
+    "IndexNamePrefix": ""
+  },
+  {
+    "TaskKey": "IDpcsgDailyRun7",
+    "Frequency": "日度",
+    "VCode": true,
+    "ExtraLetter": "O",
+    "IndexNamePrefix": "Open Interest -"
+  },
+  {
+    "TaskKey": "IDpcsgMonthRun2",
+    "Frequency": "月度",
+    "VCode": false,
+    "ExtraLetter": "",
+    "IndexNamePrefix": ""
   }
 ]