浏览代码

优化数据

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

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

@@ -9,6 +9,7 @@ import (
 	"eta/eta_api/services/data"
 	"eta/eta_api/utils"
 	"fmt"
+	"github.com/shopspring/decimal"
 	"math"
 	"sort"
 	"strconv"
@@ -29,6 +30,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 			for k, v := range item.DataList {
 				sum += v.Value
 				val := sum / float64(k+1)
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &data_manage.EdbDataList{
 					DataTime:      v.DataTime,
 					Value:         val,
@@ -43,6 +45,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 			for _, v := range item.DataList {
 				sum += v.Value
 				val := sum
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &data_manage.EdbDataList{
 					DataTime:      v.DataTime,
 					Value:         val,
@@ -61,6 +64,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 					}
 				}
 				val := (v.Value - baseVal) / baseVal
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &data_manage.EdbDataList{
 					DataTime:      v.DataTime,
 					Value:         val,
@@ -95,6 +99,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 				diff := tmpT.Sub(baseDateT).Hours() / 24
 				val := v.Value / baseVal
 				val = math.Pow(val, diff) - 1
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &data_manage.EdbDataList{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 			}
 		}
@@ -109,6 +114,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 					maxVal = v.Value
 				}
 				val := maxVal
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &data_manage.EdbDataList{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 			}
 		}
@@ -123,6 +129,7 @@ func HandleDataByCalculateType(originList []*data_manage.ChartRangeAnalysisDateD
 					minVal = v.Value
 				}
 				val := minVal
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
 				newList = append(newList, &data_manage.EdbDataList{DataTime: v.DataTime, Value: val, DataTimestamp: v.DataTimestamp})
 			}
 		}
@@ -587,13 +594,17 @@ func getChartDataByEdbInfo(edbInfoMapping *data_manage.ChartEdbInfoMapping, req
 		switch req.DataConvertType {
 		case 1:
 			for i, v := range newDataList {
-				newDataList[i].Value = v.Value * req.DataConvertConf.Value
+				val := v.Value * req.DataConvertConf.Value
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+				newDataList[i].Value = val
 			}
 			//item.MaxData = item.MaxData * v.ConvertValue
 			//item.MinData = item.MinData * v.ConvertValue
 		case 2:
 			for i, v := range newDataList {
-				newDataList[i].Value = v.Value / req.DataConvertConf.Value
+				val := v.Value / req.DataConvertConf.Value
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+				newDataList[i].Value = val
 			}
 			//item.MaxData = item.MaxData / v.ConvertValue
 			//item.MinData = item.MinData / v.ConvertValue
@@ -603,7 +614,9 @@ func getChartDataByEdbInfo(edbInfoMapping *data_manage.ChartEdbInfoMapping, req
 					err = errors.New("数据中含有负数或0,无法对数运算")
 					return
 				}
-				newDataList[i].Value = math.Log(v.Value) / math.Log(req.DataConvertConf.Value)
+				val := math.Log(v.Value) / math.Log(req.DataConvertConf.Value)
+				val, _ = decimal.NewFromFloat(val).Round(4).Float64()
+				newDataList[i].Value = val
 			}
 			//item.MaxData = math.Log(item.MaxData) / math.Log(v.ConvertValue)
 			//item.MinData = math.Log(item.MinData) / math.Log(v.ConvertValue)