Browse Source

Merge branch 'feature/eta1.9.5_feature_good' into debug

xyxie 8 months ago
parent
commit
2dbf943912

+ 2 - 3
controllers/data_manage/future_good/future_good_chart_info.go

@@ -1359,7 +1359,7 @@ func getFutureGoodChartInfo(chartInfo *data_manage.ChartInfoView, chartType, dat
 
 	baseEdbInfoId := barConfig.BaseEdbInfoId
 	var baseEdbInfoMapping *data_manage.ChartEdbInfoMapping
-	// todo 兼容历史数据,
+
 	if baseEdbInfoId == 0 {
 		// 默认取第一个现货指标
 		baseEdbInfoId = edbInfoMappingList[0].EdbInfoId
@@ -1689,7 +1689,7 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 
 	baseEdbInfoId := barConfig.BaseEdbInfoId
 	var baseEdbInfoMapping *data_manage.ChartEdbInfoMapping
-	// todo 兼容历史数据,
+
 	if baseEdbInfoId == 0 {
 		// 默认取第一个现货指标
 		baseEdbInfoId = edbInfoMappingList[0].EdbInfoId
@@ -2165,7 +2165,6 @@ func (this *FutureGoodChartInfoController) BaseChartInfoDetailFromUniqueCode() {
 
 		baseEdbInfoId := barConfig.BaseEdbInfoId
 		var baseEdbInfoMapping *data_manage.ChartEdbInfoMapping
-		// todo 兼容历史数据,
 		if baseEdbInfoId == 0 {
 			// 默认取第一个现货指标
 			baseEdbInfoId = edbInfoMappingList[0].EdbInfoId

+ 5 - 4
services/data/future_good/chart_info.go

@@ -158,7 +158,7 @@ func GetChartEdbData(chartInfoId int, startDate, endDate string, baseEdbInfoMapp
 			EdbName:             v.FutureGoodEdbName,
 			EdbAliasName:        v.FutureGoodEdbName,
 			EdbNameEn:           v.FutureGoodEdbNameEn,
-			EdbType:             baseEdbInfoMapping.EdbType, //todo baseEdbInfoMapping
+			EdbType:             baseEdbInfoMapping.EdbType,
 			Frequency:           baseEdbInfoMapping.Frequency,
 			FrequencyEn:         baseEdbInfoMapping.FrequencyEn,
 			Unit:                baseEdbInfoMapping.Unit,
@@ -357,8 +357,10 @@ func GetChartEdbData(chartInfoId int, startDate, endDate string, baseEdbInfoMapp
 		}
 
 		// 基础指标
+		baseEdbIds := make([]int, 0)
 		for _, tmp := range edbInfoMappingList {
 			edbInfoIdList = append(edbInfoIdList, tmp.EdbInfoId)
+			baseEdbIds = append(baseEdbIds, tmp.EdbInfoId)
 			tmpVal, ok := yDataMap[tmp.EdbInfoId]
 			valueList = append(valueList, tmpVal)
 			if !ok || tmpVal == 0 {
@@ -386,8 +388,8 @@ func GetChartEdbData(chartInfoId int, startDate, endDate string, baseEdbInfoMapp
 
 		for i := lenEdbId - 1; i >= 0; i-- {
 			// 如果没有在无数据的指标列表中找到,那么就找到了最大x轴的下标
-			if _, ok := noDataEdbIdMap[edbInfoIdList[i]]; !ok {
-				// 如果最大x轴的下标 小于 当前下标,那么就重新赋值
+			if _, ok := noDataEdbIdMap[edbInfoIdList[i]]; !ok && !utils.InArrayByInt(baseEdbIds, edbInfoIdList[i]) { //以往的逻辑是碰到第一个无数据的期货指标,那后续的月份都是无数据的,因此需要特殊处理,改成多个现货指标之后需要排除无值的现货指标
+				// 如果最大x轴的下标 小于 当前下标,那么就重新赋值
 				if maxIndex < i-1 {
 					maxIndex = i - 1
 				}
@@ -679,7 +681,6 @@ func handleResultData(regionType string, futureGoodEdbType, baseEdbLen int, yDat
 			if i > maxIndex {
 				break
 			}
-			// todo x轴 内容调整
 			xDataList = append(xDataList, data_manage.XData{
 				Name:   fmt.Sprint("M+", i),
 				NameEn: fmt.Sprint("M+", i),