xyxie пре 1 година
родитељ
комит
ac231c3a02
1 измењених фајлова са 22 додато и 23 уклоњено
  1. 22 23
      services/chart/chart_info.go

+ 22 - 23
services/chart/chart_info.go

@@ -726,7 +726,8 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*edbDataModel.EdbDataList, lates
 	quarterMap := make(map[string][]*edbDataModel.EdbDataList, 0)
 
 	//整理出日期
-	leftNameFlag := true
+	idx := 1
+	chartLegendMap := make(map[string]int, 0)
 	for currentStartYear := startYear; currentStartYear <= endYear; currentStartYear++ {
 		startStr := fmt.Sprintf("%d-%s", currentStartYear, xStartDate)
 		currentEndYear := currentStartYear
@@ -753,11 +754,7 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*edbDataModel.EdbDataList, lates
 			//如果最新的日期在起始日之前,则跳出循环
 			break
 		}
-		if startT.Before(lastDateT) && endT.After(lastDateT) {
-			if endYear > currentStartYear {
-				leftNameFlag = false
-			}
-		}
+
 		if endT.Year() > nowYear {
 			//如果最新的日期比真实年份要大,则数据全部按照最大的年份补齐
 			nowYear = endT.Year()
@@ -768,16 +765,17 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*edbDataModel.EdbDataList, lates
 			ShowName:  showName,
 		}
 		dataMap[name] = item
+		chartLegendMap[name] = idx
+		idx++
 		if lastDateT.Before(endT) {
 			//如果最新的日期在起始日之前,则跳出循环
 			break
 		}
 	}
+	lenYear := len(dataMap)
 	for k, v := range dataMap {
-		if leftNameFlag {
-			v.ChartLegend = strconv.Itoa(v.StartDate.Year())
-		} else {
-			v.ChartLegend = strconv.Itoa(v.EndDate.Year())
+		if i, ok := chartLegendMap[k]; ok {
+			v.ChartLegend = strconv.Itoa(endYear - lenYear + i)
 		}
 		dataMap[k] = v
 	}
@@ -833,7 +831,9 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*edbDataModel.EdbDataList, lates
 		quarterItem.Year = v.ChartLegend
 		quarterItem.ChartLegend = v.ChartLegend
 		if le, ok := legendMap[v.ShowName]; ok {
-			quarterItem.ChartLegend = le
+			if le != strconv.Itoa(v.StartDate.Year()) && le != strconv.Itoa(v.EndDate.Year()) {
+				quarterItem.ChartLegend = le
+			}
 		}
 		quarterItem.DataList = itemList
 		quarterItem.CuttingDataTimestamp = v.CuttingDataTimestamp
@@ -914,7 +914,8 @@ func GetSeasonEdbInfoDataListByXDateNong(result *edbDataModel.EdbDataResult, lat
 	quarterMap := make(map[string][]*edbDataModel.EdbDataList, 0)
 
 	//整理出日期
-	leftNameFlag := true
+	idx := 1
+	chartLegendMap := make(map[string]int, 0)
 	for currentStartYear := startYear; currentStartYear <= endYear; currentStartYear++ {
 		startStr := fmt.Sprintf("%d-%s", currentStartYear, xStartDate)
 		currentEndYear := currentStartYear
@@ -940,11 +941,7 @@ func GetSeasonEdbInfoDataListByXDateNong(result *edbDataModel.EdbDataResult, lat
 			//如果最新的日期在起始日之前,则跳出循环
 			break
 		}
-		if startT.Before(lastDateT) && endT.After(lastDateT) {
-			if endYear > currentStartYear {
-				leftNameFlag = false
-			}
-		}
+
 		if endT.Year() > nowYear {
 			//如果最新的日期比真实年份要大,则数据全部按照最大的年份补齐
 			nowYear = endT.Year()
@@ -955,17 +952,17 @@ func GetSeasonEdbInfoDataListByXDateNong(result *edbDataModel.EdbDataResult, lat
 			ShowName:  showName,
 		}
 		dataMap[showName] = item
-
+		chartLegendMap[showName] = idx
+		idx++
 		if lastDateT.Before(endT) {
 			//如果最新的日期在起始日之前,则跳出循环
 			break
 		}
 	}
+	lenYear := len(dataMap)
 	for k, v := range dataMap {
-		if leftNameFlag {
-			v.ChartLegend = strconv.Itoa(v.StartDate.Year())
-		} else {
-			v.ChartLegend = strconv.Itoa(v.EndDate.Year())
+		if i, ok := chartLegendMap[k]; ok {
+			v.ChartLegend = strconv.Itoa(endYear - lenYear + i)
 		}
 		dataMap[k] = v
 	}
@@ -1083,7 +1080,9 @@ func GetSeasonEdbInfoDataListByXDateNong(result *edbDataModel.EdbDataResult, lat
 		quarterItem.Year = v.ChartLegend
 		quarterItem.ChartLegend = v.ChartLegend
 		if le, ok := legendMap[v.ShowName]; ok {
-			quarterItem.ChartLegend = le
+			if le != strconv.Itoa(v.StartDate.Year()) && le != strconv.Itoa(v.EndDate.Year()) {
+				quarterItem.ChartLegend = le
+			}
 		}
 		quarterItem.DataList = itemList
 		quarterItem.CuttingDataTimestamp = v.CuttingDataTimestamp