xyxie 1 жил өмнө
parent
commit
6832822210
1 өөрчлөгдсөн 22 нэмэгдсэн , 23 устгасан
  1. 22 23
      services/data/chart_info.go

+ 22 - 23
services/data/chart_info.go

@@ -834,7 +834,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
@@ -861,31 +862,29 @@ 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()
 		}
+
 		item := data_manage.QuarterXDateItem{
 			StartDate: startT,
 			EndDate:   endT,
 			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
 	}
@@ -940,7 +939,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
@@ -1020,7 +1021,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
@@ -1046,11 +1048,6 @@ 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()
@@ -1061,17 +1058,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
 	}
@@ -1188,7 +1185,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