Merge branch 'master' of https://gitea.nxsir.cn/nanxun/IM_NEW
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using GroupService.Domain.Events;
|
||||
using GroupService.Infrastructure;
|
||||
using IM.Commons.IntegrationEvents;
|
||||
using MassTransit;
|
||||
using MediatR;
|
||||
@@ -8,18 +9,25 @@ namespace GroupService.WebApi.Application.EventHandler
|
||||
public class GroupMemberJoinedHandler : INotificationHandler<GroupMemberJoinedDomainEvent>
|
||||
{
|
||||
private readonly IPublishEndpoint endpoint;
|
||||
private readonly GroupDbContext db;
|
||||
|
||||
public GroupMemberJoinedHandler(IPublishEndpoint endpoint)
|
||||
public GroupMemberJoinedHandler(IPublishEndpoint endpoint, GroupDbContext db)
|
||||
{
|
||||
this.endpoint = endpoint;
|
||||
this.db = db;
|
||||
}
|
||||
|
||||
public async Task Handle(GroupMemberJoinedDomainEvent notification, CancellationToken cancellationToken)
|
||||
{
|
||||
var member = notification.Member;
|
||||
// 用 FindAsync 而非 FirstOrDefaultAsync:群可能刚创建尚未提交到数据库,FindAsync 先查内存跟踪器
|
||||
var group = await db.Set<Domain.Entities.Group>().FindAsync(member.GroupId);
|
||||
var groupName = group?.Name ?? "群聊";
|
||||
var groupAvatar = group?.Avatar;
|
||||
|
||||
await endpoint.Publish(new GroupMemberJoinedEvent(member.Id,
|
||||
member.UserId, member.GroupId, member.GroupNickName, member.Avatar,
|
||||
member.Role.ToString()), cancellationToken);
|
||||
member.Role.ToString(), groupName, groupAvatar), cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user