浏览代码

复合年化

xyxie 7 月之前
父节点
当前提交
93dd07e042
共有 1 个文件被更改,包括 26 次插入16 次删除
  1. 26 16
      services/data/range_analysis/chart_info.go

+ 26 - 16
services/data/range_analysis/chart_info.go

@@ -172,9 +172,13 @@ func HandleDataByCalculateType(originList []*models.ChartRangeAnalysisDateDataIt
 						continue
 					}
 					baseVal = calDataList[len(calDataList)-1].Value
+					baseDate := calDataList[len(calDataList)-1].DataTime
 					if baseVal == 0 {
 						continue
 					}
+					if v.DataTime == baseDate {
+						continue
+					}
 
 					val := (v.Value - baseVal) / baseVal
 					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
@@ -187,13 +191,17 @@ func HandleDataByCalculateType(originList []*models.ChartRangeAnalysisDateDataIt
 			}
 		} else {
 			for _, item := range originList {
-				var baseVal float64
-				for k, v := range item.DataList {
-					if k == 0 {
-						baseVal = v.Value
-						if baseVal == 0 {
-							break
-						}
+				if len(item.DataList) == 0 {
+					break
+				}
+				baseVal := item.DataList[len(item.DataList)-1].Value
+				baseDate := item.DataList[len(item.DataList)-1].DataTime
+				if baseVal == 0 {
+					break
+				}
+				for _, v := range item.DataList {
+					if v.DataTime == baseDate {
+						continue
 					}
 					val := (v.Value - baseVal) / baseVal
 					val, _ = decimal.NewFromFloat(val).Round(4).Float64()
@@ -248,15 +256,16 @@ func HandleDataByCalculateType(originList []*models.ChartRangeAnalysisDateDataIt
 			}
 		} else {
 			for _, item := range originList {
-				var baseVal float64
-				var baseDate string
-				for k, v := range item.DataList {
-					if k == 0 {
-						baseVal = v.Value
-						baseDate = v.DataTime
-						if baseVal == 0 {
-							break
-						}
+				if len(item.DataList) == 0 {
+					break
+				}
+				baseVal := item.DataList[len(item.DataList)-1].Value
+				baseDate := item.DataList[len(item.DataList)-1].DataTime
+				if baseVal == 0 {
+					break
+				}
+				for _, v := range item.DataList {
+					if v.DataTime == baseDate {
 						continue
 					}
 					baseDateT, e := time.ParseInLocation(utils.FormatDate, baseDate, time.Local)
@@ -356,6 +365,7 @@ func HandleDataByCalculateType(originList []*models.ChartRangeAnalysisDateDataIt
 			}
 		}
 	}
+
 	return
 }