修复仪表板用户分布统计:改用AppUser统计用户数而非设备数
This commit is contained in:
@@ -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++
|
||||
|
||||
Reference in New Issue
Block a user