修复仪表板用户分布统计:改用AppUser统计用户数而非设备数
This commit is contained in:
@@ -118,16 +118,12 @@ func handleGetDashboard(c *gin.Context) {
|
|||||||
var totalOnline int64
|
var totalOnline int64
|
||||||
var totalOffline int64
|
var totalOffline int64
|
||||||
|
|
||||||
var devices []model.UserDevice
|
var users []model.AppUser
|
||||||
database.DB.Where("application_id IN ?", appIDs).Find(&devices)
|
database.DB.Where("application_id IN ?", appIDs).Find(&users)
|
||||||
|
|
||||||
for _, device := range devices {
|
cutoff := time.Now().Add(-5 * time.Minute)
|
||||||
var sessionCount int64
|
for _, user := range users {
|
||||||
database.DB.Model(&model.DeviceSession{}).
|
if user.LastHeartbeatAt != nil && user.LastHeartbeatAt.After(cutoff) {
|
||||||
Where("device_id = ? AND last_heartbeat > ?", device.ID, time.Now().Add(-5*time.Minute)).
|
|
||||||
Count(&sessionCount)
|
|
||||||
|
|
||||||
if sessionCount > 0 {
|
|
||||||
totalOnline++
|
totalOnline++
|
||||||
} else {
|
} else {
|
||||||
totalOffline++
|
totalOffline++
|
||||||
|
|||||||
Reference in New Issue
Block a user