From 23f522b588b4d8713323be1f6cfcabb31851e4af Mon Sep 17 00:00:00 2001 From: zouap Date: Fri, 6 May 2022 16:22:05 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=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 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/models/user_business_analysis.go b/models/user_business_analysis.go index 384d0b85c..ac49434d8 100644 --- a/models/user_business_analysis.go +++ b/models/user_business_analysis.go @@ -243,10 +243,15 @@ func QueryMetricsPage(start int64, end int64, page int, pageSize int) ([]UserMet return nil, 0 } userMetricsList := make([]UserMetrics, 0) - if err := statictisSess.Table(new(UserMetrics)).Where(cond).Limit(pageSize, page*pageSize).OrderBy("count_date desc"). + //.Limit(pageSize, page*pageSize) + if err := statictisSess.Table(new(UserMetrics)).Where(cond).OrderBy("count_date desc"). Find(&userMetricsList); err != nil { return nil, 0 } + for _, userMetrics := range userMetricsList { + dateTime := time.Unix(userMetrics.CountDate, 0) + userMetrics.DisplayDate = dateTime.Format("2006-01-02") + } return userMetricsList, allCount } From 1ac15d2db482d31d17c3c92e6364a7d11db2656f Mon Sep 17 00:00:00 2001 From: zouap Date: Fri, 6 May 2022 16:26:16 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zouap --- routers/repo/user_data_analysis.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/routers/repo/user_data_analysis.go b/routers/repo/user_data_analysis.go index 78c3ffec7..5af6df3bd 100755 --- a/routers/repo/user_data_analysis.go +++ b/routers/repo/user_data_analysis.go @@ -254,8 +254,6 @@ func queryUserDataPage(ctx *context.Context, tableName string, queryObj interfac func queryMetrics(ctx *context.Context, tableName string) { startDate := ctx.Query("startDate") endDate := ctx.Query("endDate") - startTime, _ := time.ParseInLocation("2006-01-02", startDate, time.Local) - endTime, _ := time.ParseInLocation("2006-01-02", endDate, time.Local) page := ctx.QueryInt("page") if page <= 0 { @@ -267,6 +265,19 @@ func queryMetrics(ctx *context.Context, tableName string) { } IsReturnFile := ctx.QueryBool("IsReturnFile") + var count int64 + result := make([]models.UserMetrics, 0) + if tableName == "public.user_business_analysis_current_year" { + result = models.QueryMetricsForYear() + count = int64(len(result)) + } else if tableName == "public.user_business_analysis_all" { + result = models.QueryMetricsForAll() + count = int64(len(result)) + } else { + startTime, _ := time.ParseInLocation("2006-01-02", startDate, time.Local) + endTime, _ := time.ParseInLocation("2006-01-02", endDate, time.Local) + result, count = models.QueryMetricsPage(startTime.Unix(), endTime.Unix(), page, pageSize) + } if IsReturnFile { //writer exec file. xlsx := excelize.NewFile() @@ -278,10 +289,9 @@ func queryMetrics(ctx *context.Context, tableName string) { //设置单元格的值 xlsx.SetCellValue(sheetName, k, v) } - userMetricResult, count := models.QueryMetrics(startTime.Unix(), endTime.Unix()) row := 1 log.Info("return count=" + fmt.Sprint(count)) - for _, userRecord := range userMetricResult { + for _, userRecord := range result { row++ writeUserMetricsExcel(row, xlsx, sheetName, userRecord) } @@ -294,22 +304,12 @@ func queryMetrics(ctx *context.Context, tableName string) { log.Info("writer exel error." + err.Error()) } } else { - var count int64 - result := make([]models.UserMetrics, 0) - if tableName == "public.user_business_analysis_current_year" { - result = models.QueryMetricsForYear() - count = int64(len(result)) - } else if tableName == "public.user_business_analysis_all" { - result = models.QueryMetricsForAll() - count = int64(len(result)) - } else { - result, count = models.QueryMetricsPage(startTime.Unix(), endTime.Unix(), page, pageSize) - } mapInterface := make(map[string]interface{}) mapInterface["data"] = result mapInterface["count"] = count ctx.JSON(http.StatusOK, mapInterface) } + } func QueryRankingList(ctx *context.Context) { From 759b6dfb8c8116f0ee9306ede6e4ca69b7fc68df Mon Sep 17 00:00:00 2001 From: zouap Date: Sat, 7 May 2022 10:23:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E7=94=A8=E6=88=B7=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 | 15 +++++++++------ models/user_business_struct.go | 1 + 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/models/user_business_analysis.go b/models/user_business_analysis.go index ac49434d8..24cab2de9 100644 --- a/models/user_business_analysis.go +++ b/models/user_business_analysis.go @@ -248,12 +248,8 @@ func QueryMetricsPage(start int64, end int64, page int, pageSize int) ([]UserMet Find(&userMetricsList); err != nil { return nil, 0 } - for _, userMetrics := range userMetricsList { - dateTime := time.Unix(userMetrics.CountDate, 0) - userMetrics.DisplayDate = dateTime.Format("2006-01-02") - } + postDeal(userMetricsList) return userMetricsList, allCount - } func QueryMetrics(start int64, end int64) ([]UserMetrics, int) { @@ -264,11 +260,16 @@ func QueryMetrics(start int64, end int64) ([]UserMetrics, int) { Find(&userMetricsList); err != nil { return nil, 0 } + postDeal(userMetricsList) + return userMetricsList, len(userMetricsList) +} + +func postDeal(userMetricsList []UserMetrics) { for _, userMetrics := range userMetricsList { dateTime := time.Unix(userMetrics.CountDate, 0) userMetrics.DisplayDate = dateTime.Format("2006-01-02") + userMetrics.TotalRegistUser = userMetrics.ActivateRegistUser + userMetrics.NotActivateRegistUser } - return userMetricsList, len(userMetricsList) } func QueryMetricsForAll() []UserMetrics { @@ -307,6 +308,7 @@ func makeResultForMonth(allUserInfo []UserMetrics, count int) []UserMetrics { monthUserMetrics.TotalHasActivityUser = userMetrics.TotalHasActivityUser monthUserMetrics.HasActivityUser = userMetrics.HasActivityUser monthUserMetrics.DaysForMonth = 1 + monthUserMetrics.TotalRegistUser = userMetrics.ActivateRegistUser + userMetrics.NotActivateRegistUser monthMap[month] = monthUserMetrics } else { value := monthMap[month] @@ -316,6 +318,7 @@ func makeResultForMonth(allUserInfo []UserMetrics, count int) []UserMetrics { value.TotalActivateRegistUser += userMetrics.TotalActivateRegistUser value.TotalHasActivityUser += userMetrics.TotalHasActivityUser value.HasActivityUser += userMetrics.HasActivityUser + value.TotalRegistUser += userMetrics.TotalRegistUser value.DaysForMonth += 1 } } diff --git a/models/user_business_struct.go b/models/user_business_struct.go index ad4ff0bdb..05d970eb7 100644 --- a/models/user_business_struct.go +++ b/models/user_business_struct.go @@ -407,6 +407,7 @@ type UserMetrics struct { RegistActivityUser int `xorm:"NOT NULL DEFAULT 0"` HasActivityUser int `xorm:"NOT NULL DEFAULT 0"` TotalUser int `xorm:"NOT NULL DEFAULT 0"` + TotalRegistUser int `xorm:"-"` TotalActivateRegistUser int `xorm:"NOT NULL DEFAULT 0"` TotalHasActivityUser int `xorm:"NOT NULL DEFAULT 0"` DisplayDate string `xorm:"-"`