xyxie 1 rok temu
rodzic
commit
84e9471413
1 zmienionych plików z 22 dodań i 24 usunięć
  1. 22 24
      services/data/chart_info.go

+ 22 - 24
services/data/chart_info.go

@@ -398,7 +398,8 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*data_manage.EdbDataList, latest
 	quarterMap := make(map[string][]*data_manage.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
@@ -425,11 +426,7 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*data_manage.EdbDataList, latest
 			//如果最新的日期在起始日之前,则跳出循环
 			break
 		}
-		if startT.Before(lastDateT) && endT.After(lastDateT) {
-			if endYear > currentStartYear {
-				leftNameFlag = false
-			}
-		}
+
 		if endT.Year() > nowYear {
 			//如果最新的日期比真实年份要大,则数据全部按照最大的年份补齐
 			nowYear = endT.Year()
@@ -440,17 +437,17 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*data_manage.EdbDataList, latest
 			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
 	}
@@ -505,7 +502,9 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*data_manage.EdbDataList, latest
 		quarterItem.Years = v.ShowName
 		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
@@ -585,7 +584,8 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
 	quarterMap := make(map[string][]*data_manage.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
@@ -611,11 +611,7 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
 			//如果最新的日期在起始日之前,则跳出循环
 			break
 		}
-		if startT.Before(lastDateT) && endT.After(lastDateT) {
-			if endYear > currentStartYear {
-				leftNameFlag = false
-			}
-		}
+		
 		if endT.Year() > nowYear {
 			//如果最新的日期比真实年份要大,则数据全部按照最大的年份补齐
 			nowYear = endT.Year()
@@ -626,17 +622,17 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
 			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
 	}
@@ -753,7 +749,9 @@ func GetSeasonEdbInfoDataListByXDateNong(result *data_manage.EdbDataResult, late
 		quarterItem.Years = v.ShowName
 		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