From bb642080ca3653cc4d74e2a9fc2cec9f96b111e6 Mon Sep 17 00:00:00 2001 From: zouap Date: Mon, 16 May 2022 15:38:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E9=87=8D=E5=A4=8D=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- models/user_business_analysis.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/models/user_business_analysis.go b/models/user_business_analysis.go index 4de0c6d1a..453838351 100644 --- a/models/user_business_analysis.go +++ b/models/user_business_analysis.go @@ -233,11 +233,7 @@ func QueryMetricsPage(start int64, end int64, page int, pageSize int) ([]*UserMe statictisSess := xStatistic.NewSession() defer statictisSess.Close() cond := "count_date >" + fmt.Sprint(start) + " and count_date<" + fmt.Sprint(end) - allCount, err := statictisSess.Where(cond).Count(new(UserMetrics)) - if err != nil { - log.Info("query error." + err.Error()) - return nil, 0 - } + userMetricsList := make([]*UserMetrics, 0) //.Limit(pageSize, page*pageSize) if err := statictisSess.Table(new(UserMetrics)).Where(cond).OrderBy("count_date desc"). @@ -245,7 +241,7 @@ func QueryMetricsPage(start int64, end int64, page int, pageSize int) ([]*UserMe return nil, 0 } postDeal(userMetricsList) - return userMetricsList, allCount + return userMetricsList, int64(len(userMetricsList)) } func QueryMetrics(start int64, end int64) ([]*UserMetrics, int) { @@ -260,7 +256,21 @@ func QueryMetrics(start int64, end int64) ([]*UserMetrics, int) { return userMetricsList, len(userMetricsList) } +func duplicateRemoval(userMetricsList []*UserMetrics) []*UserMetrics { + userMetricsResult := make([]*UserMetrics, 0) + for i := 0; i < len(userMetricsList); i++ { + if i > 0 { + if userMetricsList[i].DataDate == userMetricsList[i-1].DataDate { + continue + } + } + userMetricsResult = append(userMetricsResult, userMetricsList[i]) + } + return userMetricsResult +} + func postDeal(userMetricsList []*UserMetrics) { + userMetricsList = duplicateRemoval(userMetricsList) for _, userMetrics := range userMetricsList { userMetrics.DisplayDate = userMetrics.DataDate userMetrics.TotalRegistUser = userMetrics.ActivateRegistUser + userMetrics.NotActivateRegistUser @@ -276,6 +286,7 @@ func QueryMetricsForAll() []*UserMetrics { Find(&userMetricsList); err != nil { return nil } + userMetricsList = duplicateRemoval(userMetricsList) return makeResultForMonth(userMetricsList, len(userMetricsList)) }