Explorar o código

研报图表、分享图表、小程序(ETA图库、我的图库)等,图表来源追溯到原始指标

Roc hai 1 ano
pai
achega
73540cc3cb

+ 10 - 0
controllers/chart.go

@@ -196,6 +196,11 @@ func (this *ChartController) ChartInfoDetail() {
 		}
 	}
 
+	// 图表的指标来源
+	sourceNameList, sourceNameEnList := data.GetEdbSourceByEdbInfoIdList(resp.EdbInfoList)
+	resp.ChartInfo.ChartSource = strings.Join(sourceNameList, ",")
+	resp.ChartInfo.ChartSourceEn = strings.Join(sourceNameEnList, ",")
+
 	resp.ChartInfo = chartInfo
 	resp.EdbInfoList = edbList
 	resp.XEdbIdValue = xEdbIdValue
@@ -458,6 +463,11 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *models.ChartInfo, key string) (
 		}
 	}
 
+	// 图表的指标来源
+	sourceNameList, sourceNameEnList := data.GetEdbSourceByEdbInfoIdList(resp.EdbInfoList)
+	resp.ChartInfo.ChartSource = strings.Join(sourceNameList, ",")
+	resp.ChartInfo.ChartSourceEn = strings.Join(sourceNameEnList, ",")
+
 	resp.ChartInfo = chartInfo
 	resp.EdbInfoList = edbList
 	resp.XEdbIdValue = xEdbIdValue

+ 11 - 0
controllers/chart_common.go

@@ -188,6 +188,11 @@ func GetFutureGoodChartInfoDetailFromUniqueCode(chartInfo *models.ChartInfo, key
 	}
 	chartInfo.UnitEn = baseEdbInfo.UnitEn
 
+	// 图表的指标来源
+	sourceNameList, sourceNameEnList := data.GetEdbSourceByEdbInfoIdList(resp.EdbInfoList)
+	resp.ChartInfo.ChartSource = strings.Join(sourceNameList, ",")
+	resp.ChartInfo.ChartSourceEn = strings.Join(sourceNameEnList, ",")
+
 	resp.ChartInfo = chartInfo
 	resp.EdbInfoList = edbList
 	resp.XEdbIdValue = xEdbIdValue
@@ -363,6 +368,12 @@ func GetCorrelationChartInfoDetailFromUniqueCode(chartInfo *models.ChartInfo, ke
 		errMsg = "获取相关性图表, 完善指标信息失败, Err:" + e.Error()
 		return
 	}
+
+	// 图表的指标来源
+	sourceNameList, sourceNameEnList := data.GetEdbSourceByEdbInfoIdList(resp.EdbInfoList)
+	resp.ChartInfo.ChartSource = strings.Join(sourceNameList, ",")
+	resp.ChartInfo.ChartSourceEn = strings.Join(sourceNameEnList, ",")
+
 	correlationInfo := new(models.CorrelationInfo)
 	correlationInfo.LeadValue = correlationChart.LeadValue
 	correlationInfo.LeadUnit = correlationChart.LeadUnit

+ 2 - 0
models/chart.go

@@ -37,6 +37,8 @@ type ChartInfo struct {
 	Source          int       `description:"1:ETA图库;2:商品价格曲线"`
 	UnitEn          string    `description:"英文图表名称"`
 	ExtraConfig     string    `description:"图表额外配置,json数据" json:"-"`
+	ChartSource     string    `description:"图表来源str"`
+	ChartSourceEn   string    `description:"图表来源(英文)"`
 }
 
 func GetChartInfoByUniqueCode(uniqueCode string) (item *ChartInfo, err error) {

+ 3 - 0
models/data_manage/edb_info.go

@@ -92,6 +92,9 @@ func GetRefreshEdbInfoFromBase(edbInfoId, source int) (baseEdbInfoArr, calculate
 		return
 	}
 	for _, item := range calculateList {
+		if item.EdbInfoId == edbInfoId { //	如果查出来关联的指标就是自己的话,那么就过滤
+			continue
+		}
 		if item.EdbType == 1 {
 			baseEdbInfoArr = append(baseEdbInfoArr, item)
 		} else {

+ 38 - 0
services/data/edb_info.go

@@ -3,6 +3,7 @@ package data
 import (
 	"errors"
 	"fmt"
+	"hongze/hongze_chart_lib/models"
 	"hongze/hongze_chart_lib/models/data_manage"
 	"hongze/hongze_chart_lib/services/alarm_msg"
 	"hongze/hongze_chart_lib/utils"
@@ -561,3 +562,40 @@ func getRefreshEdbInfoListByIds(edbInfoIdList []int) (newBaseEdbInfoArr, newBase
 
 	return
 }
+
+// GetEdbSourceByEdbInfoIdList 获取关联指标的来源
+func GetEdbSourceByEdbInfoIdList(chartEdbInfoMappingList []*models.ChartEdbInfoMapping) (sourceNameList, sourceNameEnList []string) {
+	fmt.Println(chartEdbInfoMappingList)
+	sourceNameList = []string{}
+	sourceNameEnList = []string{}
+	sourceMap := make(map[int]string)
+	for _, v := range chartEdbInfoMappingList {
+		// 指标类型:1:基础指标,2:计算指标
+		if v.EdbType == 2 {
+			//sourceMap[0] = "弘则研究"
+			baseEdbInfoArr, _, _ := data_manage.GetRefreshEdbInfoFromBase(v.EdbInfoId, v.Source)
+			for _, baseEdbInfo := range baseEdbInfoArr {
+				sourceMap[baseEdbInfo.Source] = baseEdbInfo.SourceName
+			}
+		} else {
+			sourceMap[v.Source] = v.SourceName
+		}
+	}
+
+	for source, sourceName := range sourceMap {
+		if source == utils.DATA_SOURCE_MANUAL {
+			continue
+		}
+		sourceNameList = append(sourceNameList, sourceName)
+
+		sourceNameEn, ok := utils.DataSourceEnMap[source]
+		if !ok {
+			sourceNameEn = sourceName
+		}
+		sourceNameEnList = append(sourceNameEnList, sourceNameEn)
+	}
+	sourceNameList = append(sourceNameList, `弘则研究`)
+	sourceNameEnList = append(sourceNameEnList, `Horizon Insights`)
+
+	return
+}

+ 25 - 0
utils/constants.go

@@ -151,3 +151,28 @@ const (
 var FrequencyDaysMap = map[string]int{
 	"天": 1, "周": 7, "月": 30, "季": 90, "年": 365,
 }
+
+// DataSourceEnMap 指标来源的英文名称
+var DataSourceEnMap = map[int]string{
+	DATA_SOURCE_WIND:          "Wind",
+	DATA_SOURCE_THS:           "iFind",
+	DATA_SOURCE_PB:            "Bloomberg",
+	DATA_SOURCE_PB_FINANCE:    "Bloomberg Finance",
+	DATA_SOURCE_LT:            "Reuters",
+	DATA_SOURCE_MANUAL:        "Horizon Insights",
+	DATA_SOURCE_LZ:            "OilChem",
+	DATA_SOURCE_YS:            "SMM",
+	DATA_SOURCE_GL:            "MySteel",
+	DATA_SOURCE_ZZ:            "Zhengzhou Commodity Exchange",
+	DATA_SOURCE_DL:            "Dalian Commodity Exchange",
+	DATA_SOURCE_SH:            "Shanghai Futures Exchange",
+	DATA_SOURCE_CFFEX:         "China Financial Futures Exchange",
+	DATA_SOURCE_SHFE:          "Shanghai International Energy Exchange",
+	DATA_SOURCE_GIE:           "Eurostat",
+	DATA_SOURCE_COAL:          "China Coal Transport & Distribution Association",
+	DATA_SOURCE_GOOGLE_TRAVEL: "Our World in Data",
+	DATA_SOURCE_EIA_STEO:      "Energy Information Administration",
+	DATA_SOURCE_COM_TRADE:     "United Nations",
+	DATA_SOURCE_SCI:           "Sublime China Information",
+	DATA_SOURCE_BAIINFO:       "BAIINFO",
+}