This commit is contained in:
2023-05-31 10:19:05 +08:00
parent 1b65a7a9e5
commit 9c621c75cd
238 changed files with 9905 additions and 4034 deletions

View File

@@ -1,6 +1,4 @@
using System.Net.Sockets;
using System.Net.WebSockets;
using Aop.Api.Domain;
using System.Net.WebSockets;
using JNPF.Common.Configuration;
using JNPF.Common.Const;
using JNPF.Common.Enums;
@@ -76,6 +74,7 @@ public class IMHandler : WebSocketHandler
client.LoginIpAddress = client.LoginIpAddress;
client.Token = message.token;
client.IsMobileDevice = message.mobileDevice;
client.onlineTicket = claims.FirstOrDefault(e => e.Type == ClaimConst.OnlineTicket)?.Value;
if (client.WebSocket.State != WebSocketState.Open) return;
await OnConnected(client.ConnectionId, client);
WebSocketConnectionManager.AddToTenant(client.ConnectionId, client.ConnectionConfig?.ConfigId);
@@ -177,7 +176,8 @@ public class IMHandler : WebSocketHandler
tenantId = client.ConnectionConfig.ConfigId,
lastLoginPlatForm = client.LoginPlatForm,
isMobileDevice = client.IsMobileDevice,
token = message.token
token = message.token,
onlineTicket = client.onlineTicket
});
await SetOnlineUserList(client.ConnectionConfig.ConfigId, list);
}
@@ -201,7 +201,8 @@ public class IMHandler : WebSocketHandler
tenantId = client.ConnectionConfig.ConfigId,
lastLoginPlatForm = client.LoginPlatForm,
isMobileDevice = client.IsMobileDevice,
token = message.token
token = message.token,
onlineTicket = client.onlineTicket
});
await SetOnlineUserList(client.ConnectionConfig.ConfigId, list);
}
@@ -230,7 +231,8 @@ public class IMHandler : WebSocketHandler
tenantId = client.ConnectionConfig.ConfigId,
lastLoginPlatForm = client.LoginPlatForm,
isMobileDevice = client.IsMobileDevice,
token = message.token
token = message.token,
onlineTicket = client.onlineTicket
});
await SetOnlineUserList(client.ConnectionConfig.ConfigId, list);
@@ -263,10 +265,11 @@ public class IMHandler : WebSocketHandler
}
var unreadNoticeCount = await _sqlSugarClient.Queryable<MessageEntity, MessageReceiveEntity>((m, mr) => new JoinQueryInfos(JoinType.Left, m.Id == mr.MessageId)).Where((m, mr) => m.Type == 1 && m.DeleteMark == null && mr.UserId == client.UserId && mr.IsRead == 0).Select((m, mr) => new { mr.Id, mr.UserId, mr.IsRead, m.Type, m.DeleteMark }).CountAsync();
var unreadMessageCount = await _sqlSugarClient.Queryable<MessageEntity, MessageReceiveEntity>((m, mr) => new JoinQueryInfos(JoinType.Left, m.Id == mr.MessageId)).Select((m, mr) => new { mr.Id, mr.UserId, mr.IsRead, m.Type, m.DeleteMark }).MergeTable().Where(x => x.Type == 2 && x.DeleteMark == null && x.UserId == client.UserId && x.IsRead == 0).CountAsync();
var messageDefault = await _sqlSugarClient.Queryable<MessageEntity>().Where(x => x.DeleteMark == null && x.EnabledMark == 1).OrderBy(x => x.CreatorTime, OrderByType.Desc).FirstAsync();
var unreadSystemMessageCount = await _sqlSugarClient.Queryable<MessageEntity, MessageReceiveEntity>((m, mr) => new JoinQueryInfos(JoinType.Left, m.Id == mr.MessageId)).Select((m, mr) => new { mr.Id, mr.UserId, mr.IsRead, m.Type, m.DeleteMark }).MergeTable().Where(x => x.Type == 3 && x.DeleteMark == null && x.UserId == client.UserId && x.IsRead == 0).CountAsync();
var messageDefault = await _sqlSugarClient.Queryable<MessageEntity, MessageReceiveEntity>((m, mr) => new JoinQueryInfos(JoinType.Left, m.Id == mr.MessageId)).Where((m, mr) => m.DeleteMark == null && mr.UserId == client.UserId).OrderBy((m, mr) => m.LastModifyTime, OrderByType.Desc).FirstAsync();
var messageDefaultText = messageDefault == null ? string.Empty : messageDefault.Title;
var messageDefaultTime = messageDefault == null ? DateTime.Now : messageDefault.CreatorTime;
await SendMessageAsync(client.ConnectionId, new { method = MessageSendType.initMessage.ToString(), onlineUserList, unreadNums, unreadNoticeCount, unreadMessageCount, messageDefaultText, messageDefaultTime }.ToJsonString());
await SendMessageAsync(client.ConnectionId, new { method = MessageSendType.initMessage.ToString(), onlineUserList, unreadNums, unreadNoticeCount, unreadMessageCount, messageDefaultText, messageDefaultTime, unreadSystemMessageCount }.ToJsonString());
await SendMessageToTenantAsync(client.ConnectionConfig.ConfigId, new { method = MessageSendType.online.ToString(), userId = client.UserId }.ToJsonString(), client.ConnectionId);
}