diff --git a/models/user_business_analysis.go b/models/user_business_analysis.go index 24cab2de9..d2dbe4026 100644 --- a/models/user_business_analysis.go +++ b/models/user_business_analysis.go @@ -269,6 +269,7 @@ func postDeal(userMetricsList []UserMetrics) { dateTime := time.Unix(userMetrics.CountDate, 0) userMetrics.DisplayDate = dateTime.Format("2006-01-02") userMetrics.TotalRegistUser = userMetrics.ActivateRegistUser + userMetrics.NotActivateRegistUser + userMetrics.TotalNotActivateRegistUser = userMetrics.TotalUser - userMetrics.TotalActivateRegistUser } } @@ -304,6 +305,7 @@ func makeResultForMonth(allUserInfo []UserMetrics, count int) []UserMetrics { monthUserMetrics.ActivateRegistUser = userMetrics.ActivateRegistUser monthUserMetrics.NotActivateRegistUser = userMetrics.NotActivateRegistUser monthUserMetrics.TotalUser = userMetrics.TotalUser + monthUserMetrics.TotalNotActivateRegistUser = userMetrics.TotalUser - userMetrics.TotalActivateRegistUser monthUserMetrics.TotalActivateRegistUser = userMetrics.TotalActivateRegistUser monthUserMetrics.TotalHasActivityUser = userMetrics.TotalHasActivityUser monthUserMetrics.HasActivityUser = userMetrics.HasActivityUser @@ -314,9 +316,6 @@ func makeResultForMonth(allUserInfo []UserMetrics, count int) []UserMetrics { value := monthMap[month] value.ActivateRegistUser += userMetrics.ActivateRegistUser value.NotActivateRegistUser += userMetrics.NotActivateRegistUser - value.TotalUser += userMetrics.TotalUser - 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 05d970eb7..bad2dfb9f 100644 --- a/models/user_business_struct.go +++ b/models/user_business_struct.go @@ -400,17 +400,18 @@ type UserAnalysisPara struct { } type UserMetrics struct { - CountDate int64 `xorm:"pk"` - ActivateRegistUser int `xorm:"NOT NULL DEFAULT 0"` - NotActivateRegistUser int `xorm:"NOT NULL DEFAULT 0"` - ActivateIndex float64 `xorm:"NOT NULL DEFAULT 0"` - 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:"-"` - DaysForMonth int `xorm:"NOT NULL DEFAULT 0"` - HasActivityUserJson string `xorm:"text NULL"` + CountDate int64 `xorm:"pk"` + ActivateRegistUser int `xorm:"NOT NULL DEFAULT 0"` + NotActivateRegistUser int `xorm:"NOT NULL DEFAULT 0"` + ActivateIndex float64 `xorm:"NOT NULL DEFAULT 0"` + 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"` + TotalNotActivateRegistUser int `xorm:"-"` + TotalHasActivityUser int `xorm:"NOT NULL DEFAULT 0"` + DisplayDate string `xorm:"-"` + DaysForMonth int `xorm:"NOT NULL DEFAULT 0"` + HasActivityUserJson string `xorm:"text NULL"` } diff --git a/routers/repo/user_data_analysis.go b/routers/repo/user_data_analysis.go index 5af6df3bd..7fd6a3a8b 100755 --- a/routers/repo/user_data_analysis.go +++ b/routers/repo/user_data_analysis.go @@ -251,9 +251,7 @@ func queryUserDataPage(ctx *context.Context, tableName string, queryObj interfac } } -func queryMetrics(ctx *context.Context, tableName string) { - startDate := ctx.Query("startDate") - endDate := ctx.Query("endDate") +func queryMetrics(ctx *context.Context, tableName string, startTime time.Time, endTime time.Time) { page := ctx.QueryInt("page") if page <= 0 { @@ -274,8 +272,6 @@ func queryMetrics(ctx *context.Context, tableName string) { 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 { @@ -325,43 +321,69 @@ func QueryRankingList(ctx *context.Context) { } func QueryUserMetricsCurrentMonth(ctx *context.Context) { - queryMetrics(ctx, "public.user_business_analysis_current_month") + currentTimeNow := time.Now() + pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) + pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), 1, 0, 0, 0, 0, currentTimeNow.Location()) + queryMetrics(ctx, "public.user_business_analysis_current_month", pageStartTime, pageEndTime) } func QueryUserStaticCurrentMonth(ctx *context.Context) { queryUserDataPage(ctx, "public.user_business_analysis_current_month", new(models.UserBusinessAnalysisCurrentMonth)) } func QueryUserMetricsCurrentWeek(ctx *context.Context) { - queryMetrics(ctx, "public.user_business_analysis_current_week") + currentTimeNow := time.Now() + offset := int(time.Monday - currentTimeNow.Weekday()) + if offset > 0 { + offset = -6 + } + pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, offset) + pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) + queryMetrics(ctx, "public.user_business_analysis_current_week", pageStartTime, pageEndTime) } func QueryUserStaticCurrentWeek(ctx *context.Context) { queryUserDataPage(ctx, "public.user_business_analysis_current_week", new(models.UserBusinessAnalysisCurrentWeek)) } func QueryUserMetricsCurrentYear(ctx *context.Context) { - queryMetrics(ctx, "public.user_business_analysis_current_year") + currentTimeNow := time.Now() + pageStartTime := time.Date(currentTimeNow.Year(), 1, 1, 0, 0, 0, 0, currentTimeNow.Location()) + pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) + queryMetrics(ctx, "public.user_business_analysis_current_year", pageStartTime, pageEndTime) } func QueryUserStaticCurrentYear(ctx *context.Context) { queryUserDataPage(ctx, "public.user_business_analysis_current_year", new(models.UserBusinessAnalysisCurrentYear)) } func QueryUserMetricsLast30Day(ctx *context.Context) { - queryMetrics(ctx, "public.user_business_analysis_last30_day") + currentTimeNow := time.Now() + pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, -30) + pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) + queryMetrics(ctx, "public.user_business_analysis_last30_day", pageStartTime, pageEndTime) } func QueryUserStaticLast30Day(ctx *context.Context) { queryUserDataPage(ctx, "public.user_business_analysis_last30_day", new(models.UserBusinessAnalysisLast30Day)) } func QueryUserMetricsLastMonth(ctx *context.Context) { - queryMetrics(ctx, "public.user_business_analysis_last_month") + currentTimeNow := time.Now() + thisMonth := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), 1, 0, 0, 0, 0, currentTimeNow.Location()) + pageStartTime := thisMonth.AddDate(0, -1, 0) + pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), 1, 23, 59, 59, 0, currentTimeNow.Location()).AddDate(0, 0, -1) + queryMetrics(ctx, "public.user_business_analysis_last_month", pageStartTime, pageEndTime) } func QueryUserStaticLastMonth(ctx *context.Context) { queryUserDataPage(ctx, "public.user_business_analysis_last_month", new(models.UserBusinessAnalysisLastMonth)) } func QueryUserMetricsYesterday(ctx *context.Context) { - queryMetrics(ctx, "public.user_business_analysis_yesterday") + currentTimeNow := time.Now() + pageStartTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, -1) + pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()).AddDate(0, 0, -1) + queryMetrics(ctx, "public.user_business_analysis_yesterday", pageStartTime, pageEndTime) } func QueryUserStaticYesterday(ctx *context.Context) { queryUserDataPage(ctx, "public.user_business_analysis_yesterday", new(models.UserBusinessAnalysisYesterday)) } func QueryUserMetricsAll(ctx *context.Context) { - queryMetrics(ctx, "public.user_business_analysis_all") + currentTimeNow := time.Now() + pageStartTime := time.Date(2022, 4, 5, 0, 0, 0, 0, currentTimeNow.Location()) + pageEndTime := time.Date(currentTimeNow.Year(), currentTimeNow.Month(), currentTimeNow.Day(), 23, 59, 59, 0, currentTimeNow.Location()) + queryMetrics(ctx, "public.user_business_analysis_all", pageStartTime, pageEndTime) } func QueryUserStaticAll(ctx *context.Context) { queryUserDataPage(ctx, "public.user_business_analysis_all", new(models.UserBusinessAnalysisAll))