😎与老仓库代码合并

This commit is contained in:
zuohuaijun 2025-02-15 03:19:52 +08:00
parent 1d31cb5c6e
commit d922b88d5e
2 changed files with 6 additions and 28 deletions

View File

@ -44,11 +44,11 @@
<PackageReference Include="SixLabors.ImageSharp.Web" Version="3.1.3" />
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="3.7.0" />
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="3.10.0" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.176" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.177" />
<PackageReference Include="SSH.NET" Version="2024.2.0" />
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.6.0.2" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1179" />
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1180" />
<PackageReference Include="UAParser" Version="3.1.47" />
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
</ItemGroup>

View File

@ -48,6 +48,7 @@ public class OnlineUserHub : Hub<IOnlineUserHub>
var realName = httpContext.User.FindFirst(ClaimConst.RealName)?.Value;
var tenantId = (httpContext.User.FindFirst(ClaimConst.TenantId)?.Value).ToLong();
var loginMode = (LoginModeEnum)(httpContext.User.FindFirst(ClaimConst.LoginMode)?.Value).ToInt();
loginMode = loginMode == 0 ? LoginModeEnum.PC : loginMode; // 默认PC登录模式
var device = httpContext.GetClientDeviceInfo().Trim();
if (userId < 0 || string.IsNullOrWhiteSpace(account)) return;
@ -66,16 +67,7 @@ public class OnlineUserHub : Hub<IOnlineUserHub>
Device = device
};
await _sysOnlineUerRep.InsertAsync(user);
// 是否开启单用户登录
if (await _sysConfigService.GetConfigValueByCode<bool>(ConfigConst.SysSingleLogin))
{
_sysCacheService.HashAdd(CacheConst.KeyUserOnline, "" + user.UserId + loginMode, user);
}
else // 非单用户登录则绑定用户连接Id
{
_sysCacheService.HashAdd(CacheConst.KeyUserOnline, user.UserId + Context.ConnectionId, user);
}
_sysCacheService.HashAdd(CacheConst.KeyUserOnline, user.UserId + Context.ConnectionId + loginMode, user);
// 以租户Id进行分组
var groupName = $"{GROUP_ONLINE}{user.TenantId}";
@ -100,28 +92,14 @@ public class OnlineUserHub : Hub<IOnlineUserHub>
{
if (string.IsNullOrEmpty(Context.ConnectionId)) return;
//var httpContext = Context.GetHttpContext();
var user = await _sysOnlineUerRep.AsQueryable().Filter("", true).FirstAsync(u => u.ConnectionId == Context.ConnectionId);
if (user == null) return;
await _sysOnlineUerRep.DeleteByIdAsync(user.Id);
// 是否开启单用户登录
if (await _sysConfigService.GetConfigValueByCode<bool>(ConfigConst.SysSingleLogin))
{
_sysCacheService.HashDel<SysOnlineUser>(CacheConst.KeyUserOnline, "" + user.UserId + user.LoginMode);
// _sysCacheService.Remove(CacheConst.KeyUserOnline + user.UserId);
}
else
{
_sysCacheService.HashDel<SysOnlineUser>(CacheConst.KeyUserOnline, user.UserId + Context.ConnectionId);
// _sysCacheService.Remove(CacheConst.KeyUserOnline + user.UserId + Context.ConnectionId);
}
_sysCacheService.HashDel<SysOnlineUser>(CacheConst.KeyUserOnline, user.UserId + Context.ConnectionId + user.LoginMode);
// 通知当前组用户变动
var userList = await _sysOnlineUerRep.AsQueryable().Filter("", true)
.Where(u => u.TenantId == user.TenantId).Take(10).ToListAsync();
var userList = await _sysOnlineUerRep.AsQueryable().Filter("", true).Where(u => u.TenantId == user.TenantId).Take(10).ToListAsync();
await _onlineUserHubContext.Clients.Groups($"{GROUP_ONLINE}{user.TenantId}").OnlineUserList(new OnlineUserList
{
RealName = user.RealName,