@@ -243,12 +243,13 @@ 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 | |||
} | |||
postDeal(userMetricsList) | |||
return userMetricsList, allCount | |||
} | |||
func QueryMetrics(start int64, end int64) ([]UserMetrics, int) { | |||
@@ -259,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 { | |||
@@ -302,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] | |||
@@ -311,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 | |||
} | |||
} | |||
@@ -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:"-"` | |||
@@ -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) { | |||