😎优化清理在线用户逻辑

This commit is contained in:
zuohuaijun 2025-02-20 02:35:44 +08:00
parent 08ae183e56
commit 8adfd623d4

View File

@ -119,14 +119,15 @@ public class SysOnlineUserService : IDynamicApiController, ITransient
if (await _sysConfigService.GetConfigValueByCode<bool>(ConfigConst.SysSingleLogin)) return;
// 相同账号最后登录的用户Id集合
var onlineUserIds = await _sysOnlineUerRep.AsQueryable().GroupBy(u => u.UserId)
var onlineUsers = await _sysOnlineUerRep.AsQueryable().GroupBy(u => u.UserId)
.Select(u => new
{
UserId = u.UserId,
Count = SqlFunc.AggregateCount(u.UserId),
Id = SqlFunc.AggregateMax(u.Id)
})
.ToListAsync(u => u.Id);
.ToListAsync();
var onlineUserIds = onlineUsers.Select(u => u.Id).ToList();
// 无效登录用户集合
var offlineUsers = await _sysOnlineUerRep.AsQueryable().Where(u => !onlineUserIds.Contains(u.Id)).ToListAsync();