diff --git a/backend/internal/router/admin/dashboard.go b/backend/internal/router/admin/dashboard.go index 7b5b126..1a4b464 100644 --- a/backend/internal/router/admin/dashboard.go +++ b/backend/internal/router/admin/dashboard.go @@ -118,16 +118,12 @@ func handleGetDashboard(c *gin.Context) { var totalOnline int64 var totalOffline int64 - var devices []model.UserDevice - database.DB.Where("application_id IN ?", appIDs).Find(&devices) + var users []model.AppUser + database.DB.Where("application_id IN ?", appIDs).Find(&users) - for _, device := range devices { - var sessionCount int64 - database.DB.Model(&model.DeviceSession{}). - Where("device_id = ? AND last_heartbeat > ?", device.ID, time.Now().Add(-5*time.Minute)). - Count(&sessionCount) - - if sessionCount > 0 { + cutoff := time.Now().Add(-5 * time.Minute) + for _, user := range users { + if user.LastHeartbeatAt != nil && user.LastHeartbeatAt.After(cutoff) { totalOnline++ } else { totalOffline++