فهرست منبع

公历数据展示

xyxie 1 سال پیش
والد
کامیت
cdcda23447
1فایلهای تغییر یافته به همراه6 افزوده شده و 2 حذف شده
  1. 6 2
      services/data/chart_info.go

+ 6 - 2
services/data/chart_info.go

@@ -827,6 +827,7 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*data_manage.EdbDataList, latest
 		return
 	}
 	endYear := lastDateT.Year()
+	nowYear := time.Now().Year()
 	dataMap := make(map[string]data_manage.QuarterXDateItem, 0)
 
 	quarterDataList := make([]*data_manage.QuarterData, 0)
@@ -859,6 +860,10 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*data_manage.EdbDataList, latest
 			//如果最新的日期在起始日之前,则跳出循环
 			break
 		}
+		if endT.Year() > nowYear {
+			//如果最新的日期比真实年份要大,则数据全部按照最大的年份补齐
+			nowYear = endT.Year()
+		}
 		item := data_manage.QuarterXDateItem{
 			StartDate:   startT,
 			EndDate:     endT,
@@ -868,14 +873,13 @@ func GetSeasonEdbInfoDataListByXDate(dataList []*data_manage.EdbDataList, latest
 		dataMap[name] = item
 	}
 
-	nowYear := time.Now().Year()
 	for _, v := range dataList {
 		dataTimeT, _ := time.Parse(utils.FormatDate, v.DataTime)
 		year := dataTimeT.Year()
 		newItemDate := dataTimeT.AddDate(nowYear-year, 0, 0)
 		for k, dateItem := range dataMap {
 			if (dateItem.StartDate.Before(dataTimeT) && dateItem.EndDate.After(dataTimeT)) || dateItem.StartDate == dataTimeT || dateItem.EndDate == dataTimeT {
-				if jumpYear == 1 && year < nowYear {
+				if jumpYear == 1 {
 					//计算前一年最大的日期, 只补齐数据到去年
 					beforeYearMaxDate := fmt.Sprintf("%d-12-31", dateItem.StartDate.Year())
 					beforeYearMaxDateT, _ := time.Parse(utils.FormatDate, beforeYearMaxDate)