fix: 修复设备列表API的Count查询导致Find失败的问题
This commit is contained in:
@@ -87,6 +87,16 @@ func handleGetDevices(c *gin.Context) {
|
|||||||
return
|
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)
|
query := database.DB.Preload("User").Preload("Application").Where("application_id IN ?", appIDs)
|
||||||
|
|
||||||
if userIDFilter != "" {
|
if userIDFilter != "" {
|
||||||
@@ -97,14 +107,12 @@ func handleGetDevices(c *gin.Context) {
|
|||||||
query = query.Where("device_id = ?", deviceIDFilter)
|
query = query.Where("device_id = ?", deviceIDFilter)
|
||||||
}
|
}
|
||||||
|
|
||||||
var total int64
|
|
||||||
query.Count(&total)
|
|
||||||
|
|
||||||
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
||||||
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
|
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
|
||||||
offset := (page - 1) * pageSize
|
offset := (page - 1) * pageSize
|
||||||
|
|
||||||
if err := query.Offset(offset).Limit(pageSize).Find(&devices).Error; err != nil {
|
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, "获取设备列表失败")
|
response.Error(c, 500, "获取设备列表失败")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user