@@ -243,12 +243,13 @@ func QueryMetricsPage(start int64, end int64, page int, pageSize int) ([]UserMet | |||||
return nil, 0 | return nil, 0 | ||||
} | } | ||||
userMetricsList := make([]UserMetrics, 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 { | Find(&userMetricsList); err != nil { | ||||
return nil, 0 | return nil, 0 | ||||
} | } | ||||
postDeal(userMetricsList) | |||||
return userMetricsList, allCount | return userMetricsList, allCount | ||||
} | } | ||||
func QueryMetrics(start int64, end int64) ([]UserMetrics, int) { | func QueryMetrics(start int64, end int64) ([]UserMetrics, int) { | ||||
@@ -259,11 +260,16 @@ func QueryMetrics(start int64, end int64) ([]UserMetrics, int) { | |||||
Find(&userMetricsList); err != nil { | Find(&userMetricsList); err != nil { | ||||
return nil, 0 | return nil, 0 | ||||
} | } | ||||
postDeal(userMetricsList) | |||||
return userMetricsList, len(userMetricsList) | |||||
} | |||||
func postDeal(userMetricsList []UserMetrics) { | |||||
for _, userMetrics := range userMetricsList { | for _, userMetrics := range userMetricsList { | ||||
dateTime := time.Unix(userMetrics.CountDate, 0) | dateTime := time.Unix(userMetrics.CountDate, 0) | ||||
userMetrics.DisplayDate = dateTime.Format("2006-01-02") | userMetrics.DisplayDate = dateTime.Format("2006-01-02") | ||||
userMetrics.TotalRegistUser = userMetrics.ActivateRegistUser + userMetrics.NotActivateRegistUser | |||||
} | } | ||||
return userMetricsList, len(userMetricsList) | |||||
} | } | ||||
func QueryMetricsForAll() []UserMetrics { | func QueryMetricsForAll() []UserMetrics { | ||||
@@ -302,6 +308,7 @@ func makeResultForMonth(allUserInfo []UserMetrics, count int) []UserMetrics { | |||||
monthUserMetrics.TotalHasActivityUser = userMetrics.TotalHasActivityUser | monthUserMetrics.TotalHasActivityUser = userMetrics.TotalHasActivityUser | ||||
monthUserMetrics.HasActivityUser = userMetrics.HasActivityUser | monthUserMetrics.HasActivityUser = userMetrics.HasActivityUser | ||||
monthUserMetrics.DaysForMonth = 1 | monthUserMetrics.DaysForMonth = 1 | ||||
monthUserMetrics.TotalRegistUser = userMetrics.ActivateRegistUser + userMetrics.NotActivateRegistUser | |||||
monthMap[month] = monthUserMetrics | monthMap[month] = monthUserMetrics | ||||
} else { | } else { | ||||
value := monthMap[month] | value := monthMap[month] | ||||
@@ -311,6 +318,7 @@ func makeResultForMonth(allUserInfo []UserMetrics, count int) []UserMetrics { | |||||
value.TotalActivateRegistUser += userMetrics.TotalActivateRegistUser | value.TotalActivateRegistUser += userMetrics.TotalActivateRegistUser | ||||
value.TotalHasActivityUser += userMetrics.TotalHasActivityUser | value.TotalHasActivityUser += userMetrics.TotalHasActivityUser | ||||
value.HasActivityUser += userMetrics.HasActivityUser | value.HasActivityUser += userMetrics.HasActivityUser | ||||
value.TotalRegistUser += userMetrics.TotalRegistUser | |||||
value.DaysForMonth += 1 | value.DaysForMonth += 1 | ||||
} | } | ||||
} | } | ||||
@@ -407,6 +407,7 @@ type UserMetrics struct { | |||||
RegistActivityUser int `xorm:"NOT NULL DEFAULT 0"` | RegistActivityUser int `xorm:"NOT NULL DEFAULT 0"` | ||||
HasActivityUser int `xorm:"NOT NULL DEFAULT 0"` | HasActivityUser int `xorm:"NOT NULL DEFAULT 0"` | ||||
TotalUser int `xorm:"NOT NULL DEFAULT 0"` | TotalUser int `xorm:"NOT NULL DEFAULT 0"` | ||||
TotalRegistUser int `xorm:"-"` | |||||
TotalActivateRegistUser int `xorm:"NOT NULL DEFAULT 0"` | TotalActivateRegistUser int `xorm:"NOT NULL DEFAULT 0"` | ||||
TotalHasActivityUser int `xorm:"NOT NULL DEFAULT 0"` | TotalHasActivityUser int `xorm:"NOT NULL DEFAULT 0"` | ||||
DisplayDate string `xorm:"-"` | DisplayDate string `xorm:"-"` | ||||
@@ -254,8 +254,6 @@ func queryUserDataPage(ctx *context.Context, tableName string, queryObj interfac | |||||
func queryMetrics(ctx *context.Context, tableName string) { | func queryMetrics(ctx *context.Context, tableName string) { | ||||
startDate := ctx.Query("startDate") | startDate := ctx.Query("startDate") | ||||
endDate := ctx.Query("endDate") | 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") | page := ctx.QueryInt("page") | ||||
if page <= 0 { | if page <= 0 { | ||||
@@ -267,6 +265,19 @@ func queryMetrics(ctx *context.Context, tableName string) { | |||||
} | } | ||||
IsReturnFile := ctx.QueryBool("IsReturnFile") | 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 { | if IsReturnFile { | ||||
//writer exec file. | //writer exec file. | ||||
xlsx := excelize.NewFile() | xlsx := excelize.NewFile() | ||||
@@ -278,10 +289,9 @@ func queryMetrics(ctx *context.Context, tableName string) { | |||||
//设置单元格的值 | //设置单元格的值 | ||||
xlsx.SetCellValue(sheetName, k, v) | xlsx.SetCellValue(sheetName, k, v) | ||||
} | } | ||||
userMetricResult, count := models.QueryMetrics(startTime.Unix(), endTime.Unix()) | |||||
row := 1 | row := 1 | ||||
log.Info("return count=" + fmt.Sprint(count)) | log.Info("return count=" + fmt.Sprint(count)) | ||||
for _, userRecord := range userMetricResult { | |||||
for _, userRecord := range result { | |||||
row++ | row++ | ||||
writeUserMetricsExcel(row, xlsx, sheetName, userRecord) | writeUserMetricsExcel(row, xlsx, sheetName, userRecord) | ||||
} | } | ||||
@@ -294,22 +304,12 @@ func queryMetrics(ctx *context.Context, tableName string) { | |||||
log.Info("writer exel error." + err.Error()) | log.Info("writer exel error." + err.Error()) | ||||
} | } | ||||
} else { | } 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 := make(map[string]interface{}) | ||||
mapInterface["data"] = result | mapInterface["data"] = result | ||||
mapInterface["count"] = count | mapInterface["count"] = count | ||||
ctx.JSON(http.StatusOK, mapInterface) | ctx.JSON(http.StatusOK, mapInterface) | ||||
} | } | ||||
} | } | ||||
func QueryRankingList(ctx *context.Context) { | func QueryRankingList(ctx *context.Context) { | ||||