From ecf54d3e3fd448e475b4f15fe101ece627239e75 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 8 May 2026 16:06:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=AA=E8=A1=A8=E6=9D=BF?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=88=86=E5=B8=83=E7=BB=9F=E8=AE=A1=EF=BC=9A?= =?UTF-8?q?=E6=94=B9=E7=94=A8AppUser=E7=BB=9F=E8=AE=A1=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=95=B0=E8=80=8C=E9=9D=9E=E8=AE=BE=E5=A4=87=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/router/admin/dashboard.go | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) 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++