浏览代码

Merge branch 'bzq1/mysteel_chemical2_custom_cf' of eta_server/eta_index_lib into debug

鲍自强 10 月之前
父节点
当前提交
6169d76a87

+ 2 - 1
.gitignore

@@ -13,4 +13,5 @@ eta_index_lib
 /etalogs
 *.gz
 *.exe
-/.vscode/
+test/
+/.vscode

+ 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:"指标名称前缀"`
 }

+ 4 - 1
services/base_from_mysteel_chemical.go

@@ -628,12 +628,12 @@ func MySteelChemicalPost(postUrl, hType string, postData []byte) (body []byte, e
 }
 
 func RefreshDataFromMysteelChemical(edbCode, startDate, endDate string) (err error) {
-
 	indexObj := &models.BaseFromMysteelChemicalIndex{}
 	tmpIndex, err := indexObj.GetIndexItem(edbCode)
 	if err != nil {
 		return
 	}
+	alarm_msg.SendAlarmMsg(fmt.Sprintf("开始刷新钢联化工接口数据, %s", edbCode), 1)
 
 	terminal, err := GetTerminal(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, tmpIndex.TerminalCode)
 	if err != nil {
@@ -658,6 +658,7 @@ func RefreshDataFromMysteelChemical(edbCode, startDate, endDate string) (err err
 			err = errors.New(resp.Message)
 			return
 		}
+		alarm_msg.SendAlarmMsg("获取钢联化工接口数据", 1)
 
 		dataObj := new(models.BaseFromMysteelChemicalData)
 		exitDataList, er := dataObj.GetIndexDataList(edbCode)
@@ -689,6 +690,7 @@ func RefreshDataFromMysteelChemical(edbCode, startDate, endDate string) (err err
 		}
 		// 因为只有一个指标,所以取第一个就可以了
 		items := mysteelChemicalDatas[0]
+		alarm_msg.SendAlarmMsg("钢联化工接口数据转化成功", 1)
 		for _, v := range items {
 			dateStr := v.DataTime.Format(utils.FormatDate)
 			if findData, ok := existDataMap[dateStr]; !ok {
@@ -707,6 +709,7 @@ func RefreshDataFromMysteelChemical(edbCode, startDate, endDate string) (err err
 				}
 			}
 		}
+		alarm_msg.SendAlarmMsg("开始添加数据", 1)
 		err = dataObj.AddV2(addItems)
 		if err != nil {
 			return

+ 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": ""
   }
 ]