|
@@ -530,9 +530,13 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
|
|
|
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()
|
|
@@ -545,13 +549,17 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
|
|
|
}
|
|
|
} 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()
|
|
@@ -606,15 +614,16 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
|
|
|
}
|
|
|
} 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)
|