修复所有分页页面统计从当前页计算的问题,改为服务端统计
This commit is contained in:
@@ -80,6 +80,11 @@ func handleGetAllAnnouncements(c *gin.Context) {
|
||||
}
|
||||
countQuery.Count(&total)
|
||||
|
||||
var activeCount, inactiveCount, topCount int64
|
||||
database.DB.Model(&model.Announcement{}).Where("application_id IN ? AND status = ?", appIDs, "active").Count(&activeCount)
|
||||
database.DB.Model(&model.Announcement{}).Where("application_id IN ? AND status = ?", appIDs, "inactive").Count(&inactiveCount)
|
||||
database.DB.Model(&model.Announcement{}).Where("application_id IN ? AND is_top = ?", appIDs, true).Count(&topCount)
|
||||
|
||||
query := database.DB.Where("application_id IN ?", appIDs)
|
||||
if applicationIDFilter != "" {
|
||||
query = query.Where("application_id = ?", applicationIDFilter)
|
||||
@@ -133,6 +138,9 @@ func handleGetAllAnnouncements(c *gin.Context) {
|
||||
response.Success(c, gin.H{
|
||||
"announcements": result,
|
||||
"total": total,
|
||||
"active_count": activeCount,
|
||||
"inactive_count": inactiveCount,
|
||||
"top_count": topCount,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -106,6 +106,9 @@ func handleGetDevices(c *gin.Context) {
|
||||
}
|
||||
countQuery.Count(&total)
|
||||
|
||||
var bannedCount int64
|
||||
database.DB.Model(&model.UserDevice{}).Where("application_id IN ? AND status = ?", appIDs, "banned").Count(&bannedCount)
|
||||
|
||||
query := database.DB.Preload("User").Preload("Application").Where("application_id IN ?", appIDs)
|
||||
|
||||
if userIDFilter != "" {
|
||||
@@ -168,11 +171,12 @@ func handleGetDevices(c *gin.Context) {
|
||||
}
|
||||
|
||||
response.Success(c, gin.H{
|
||||
"devices": devicesWithDetails,
|
||||
"total": total,
|
||||
"page": page,
|
||||
"page_size": pageSize,
|
||||
"total_page": (total + int64(pageSize) - 1) / int64(pageSize),
|
||||
"devices": devicesWithDetails,
|
||||
"total": total,
|
||||
"page": page,
|
||||
"page_size": pageSize,
|
||||
"total_page": (total + int64(pageSize) - 1) / int64(pageSize),
|
||||
"banned_count": bannedCount,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package admin
|
||||
package admin
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
@@ -68,6 +68,11 @@ func handleGetLogs(c *gin.Context) {
|
||||
|
||||
query.Count(&total)
|
||||
|
||||
var successCount, failedCount, operationCount int64
|
||||
database.DB.Model(&model.ApiUsage{}).Where("application_id IN ? OR user_id = ?", appIDs, userID).Where("status = ?", "success").Count(&successCount)
|
||||
database.DB.Model(&model.ApiUsage{}).Where("application_id IN ? OR user_id = ?", appIDs, userID).Where("status = ?", "failed").Count(&failedCount)
|
||||
database.DB.Model(&model.ApiUsage{}).Where("application_id IN ? OR user_id = ?", appIDs, userID).Where("log_type = ?", "operation").Count(&operationCount)
|
||||
|
||||
offset := (page - 1) * pageSize
|
||||
if err := query.Preload("User").Preload("Application").Preload("AppUser").Order("created_at DESC").Offset(offset).Limit(pageSize).Find(&logs).Error; err != nil {
|
||||
response.Error(c, 500, "获取日志失败")
|
||||
@@ -75,10 +80,13 @@ func handleGetLogs(c *gin.Context) {
|
||||
}
|
||||
|
||||
response.Success(c, gin.H{
|
||||
"logs": logs,
|
||||
"total": total,
|
||||
"page": page,
|
||||
"page_size": pageSize,
|
||||
"total_page": (total + int64(pageSize) - 1) / int64(pageSize),
|
||||
"logs": logs,
|
||||
"total": total,
|
||||
"page": page,
|
||||
"page_size": pageSize,
|
||||
"total_page": (total + int64(pageSize) - 1) / int64(pageSize),
|
||||
"success_count": successCount,
|
||||
"failed_count": failedCount,
|
||||
"operation_count": operationCount,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -88,6 +88,11 @@ func handleGetTickets(c *gin.Context) {
|
||||
var total int64
|
||||
query.Count(&total)
|
||||
|
||||
var openCount, processingCount, resolvedCount int64
|
||||
database.DB.Model(&model.Ticket{}).Where("user_id = ? OR assigned_to = ?", userID, userID).Where("status = ?", "open").Count(&openCount)
|
||||
database.DB.Model(&model.Ticket{}).Where("user_id = ? OR assigned_to = ?", userID, userID).Where("status = ?", "processing").Count(&processingCount)
|
||||
database.DB.Model(&model.Ticket{}).Where("user_id = ? OR assigned_to = ?", userID, userID).Where("status = ?", "resolved").Count(&resolvedCount)
|
||||
|
||||
offset := (page - 1) * pageSize
|
||||
|
||||
var tickets []model.Ticket
|
||||
@@ -128,11 +133,14 @@ func handleGetTickets(c *gin.Context) {
|
||||
}
|
||||
|
||||
response.Success(c, gin.H{
|
||||
"tickets": result,
|
||||
"total": total,
|
||||
"page": page,
|
||||
"page_size": pageSize,
|
||||
"total_page": (total + int64(pageSize) - 1) / int64(pageSize),
|
||||
"tickets": result,
|
||||
"total": total,
|
||||
"page": page,
|
||||
"page_size": pageSize,
|
||||
"total_page": (total + int64(pageSize) - 1) / int64(pageSize),
|
||||
"open_count": openCount,
|
||||
"processing_count": processingCount,
|
||||
"resolved_count": resolvedCount,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -95,6 +95,9 @@ func handleGetAllVersions(c *gin.Context) {
|
||||
}
|
||||
countQuery.Count(&total)
|
||||
|
||||
var forcedCount int64
|
||||
database.DB.Model(&model.Version{}).Where("application_id IN ? AND update_strategy = ?", appIDs, "forced").Count(&forcedCount)
|
||||
|
||||
query := database.DB.Where("application_id IN ?", appIDs)
|
||||
if applicationIDFilter != "" {
|
||||
query = query.Where("application_id = ?", applicationIDFilter)
|
||||
@@ -184,8 +187,9 @@ func handleGetAllVersions(c *gin.Context) {
|
||||
}
|
||||
|
||||
response.Success(c, gin.H{
|
||||
"versions": result,
|
||||
"total": total,
|
||||
"versions": result,
|
||||
"total": total,
|
||||
"forced_count": forcedCount,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user