fix: 修复设备列表API的Count查询导致Find失败的问题

This commit is contained in:
2026-05-07 09:39:53 +08:00
parent 64569e305e
commit 8c48c002d3
+11 -3
View File
@@ -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
}