|
@@ -174,9 +174,13 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
|
|
|
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()
|
|
@@ -189,13 +193,17 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
|
|
|
}
|
|
|
} 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()
|
|
@@ -250,15 +258,16 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
|
|
|
}
|
|
|
} 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)
|