diff --git a/backend/internal/router/admin/devices.go b/backend/internal/router/admin/devices.go index d27b458..c4e04df 100644 --- a/backend/internal/router/admin/devices.go +++ b/backend/internal/router/admin/devices.go @@ -87,6 +87,16 @@ func handleGetDevices(c *gin.Context) { return } + var total int64 + countQuery := database.DB.Model(&model.UserDevice{}).Where("application_id IN ?", appIDs) + if userIDFilter != "" { + countQuery = countQuery.Where("user_id = ?", userIDFilter) + } + if deviceIDFilter != "" { + countQuery = countQuery.Where("device_id = ?", deviceIDFilter) + } + countQuery.Count(&total) + query := database.DB.Preload("User").Preload("Application").Where("application_id IN ?", appIDs) if userIDFilter != "" { @@ -97,14 +107,12 @@ func handleGetDevices(c *gin.Context) { query = query.Where("device_id = ?", deviceIDFilter) } - var total int64 - query.Count(&total) - page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20")) offset := (page - 1) * pageSize if err := query.Offset(offset).Limit(pageSize).Find(&devices).Error; err != nil { + log.Printf("[ERROR] Failed to get devices: %v", err) response.Error(c, 500, "获取设备列表失败") return }