fix:修复已知问题
This commit is contained in:
+10
-8
@@ -18,15 +18,18 @@ namespace IM_API.Application.EventHandlers.MessageCreatedHandler
|
||||
private readonly IConversationService _conversationService;
|
||||
private readonly ILogger<ConversationEventHandler> _logger;
|
||||
private readonly IUserService _userSerivce;
|
||||
private readonly IGroupService _groupService;
|
||||
public ConversationEventHandler(
|
||||
IConversationService conversationService,
|
||||
ILogger<ConversationEventHandler> logger,
|
||||
IUserService userService
|
||||
IUserService userService,
|
||||
IGroupService groupService
|
||||
)
|
||||
{
|
||||
_conversationService = conversationService;
|
||||
_logger = logger;
|
||||
_userSerivce = userService;
|
||||
_groupService = groupService;
|
||||
}
|
||||
|
||||
public async Task Consume(ConsumeContext<MessageCreatedEvent> context)
|
||||
@@ -35,14 +38,13 @@ namespace IM_API.Application.EventHandlers.MessageCreatedHandler
|
||||
if (@event.ChatType == ChatType.GROUP)
|
||||
{
|
||||
var userinfo = await _userSerivce.GetUserInfoAsync(@event.MsgSenderId);
|
||||
await _conversationService.UpdateConversationAfterSentAsync(new Dtos.Conversation.UpdateConversationDto
|
||||
await _groupService.UpdateGroupConversationAsync(new Dtos.Group.GroupUpdateConversationDto
|
||||
{
|
||||
LastMessage = $"{userinfo.NickName}:{@event.MessageContent}",
|
||||
LastSequenceId = @event.SequenceId,
|
||||
ReceiptId = @event.MsgRecipientId,
|
||||
SenderId = @event.MsgSenderId,
|
||||
StreamKey = @event.StreamKey,
|
||||
DateTime = @event.MessageCreated
|
||||
GroupId = @event.MsgRecipientId,
|
||||
LastMessage = @event.MessageContent,
|
||||
LastSenderName = userinfo.NickName,
|
||||
LastUpdateTime = @event.MessageCreated,
|
||||
MaxSequenceId = @event.SequenceId
|
||||
});
|
||||
}
|
||||
else
|
||||
|
||||
+7
-1
@@ -3,6 +3,7 @@ using IM_API.Application.Interfaces;
|
||||
using IM_API.Domain.Events;
|
||||
using IM_API.Dtos;
|
||||
using IM_API.Hubs;
|
||||
using IM_API.Interface.Services;
|
||||
using IM_API.Models;
|
||||
using IM_API.Tools;
|
||||
using IM_API.VOs.Message;
|
||||
@@ -15,10 +16,12 @@ namespace IM_API.Application.EventHandlers.MessageCreatedHandler
|
||||
{
|
||||
private readonly IHubContext<ChatHub> _hub;
|
||||
private readonly IMapper _mapper;
|
||||
public SignalREventHandler(IHubContext<ChatHub> hub, IMapper mapper)
|
||||
private readonly IUserService _userService;
|
||||
public SignalREventHandler(IHubContext<ChatHub> hub, IMapper mapper,IUserService userService)
|
||||
{
|
||||
_hub = hub;
|
||||
_mapper = mapper;
|
||||
_userService = userService;
|
||||
}
|
||||
|
||||
public async Task Consume(ConsumeContext<MessageCreatedEvent> context)
|
||||
@@ -29,6 +32,9 @@ namespace IM_API.Application.EventHandlers.MessageCreatedHandler
|
||||
{
|
||||
var entity = _mapper.Map<Message>(@event);
|
||||
var messageBaseVo = _mapper.Map<MessageBaseVo>(entity);
|
||||
var senderinfo = await _userService.GetUserInfoAsync(@event.MsgSenderId);
|
||||
messageBaseVo.SenderName = senderinfo.NickName;
|
||||
messageBaseVo.SenderAvatar = senderinfo.Avatar ?? "";
|
||||
await _hub.Clients.Group(@event.StreamKey).SendAsync("ReceiveMessage", new HubResponse<MessageBaseVo>("Event", messageBaseVo));
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user