后端:
新增好友请求事件和好友已添加事件
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
using AutoMapper;
|
||||
using IM_API.Domain.Events;
|
||||
using IM_API.Dtos;
|
||||
using IM_API.Exceptions;
|
||||
using IM_API.Interface.Services;
|
||||
using IM_API.Models;
|
||||
using IM_API.Tools;
|
||||
using MassTransit;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace IM_API.Services
|
||||
@@ -13,11 +15,13 @@ namespace IM_API.Services
|
||||
private readonly ImContext _context;
|
||||
private readonly ILogger<FriendService> _logger;
|
||||
private readonly IMapper _mapper;
|
||||
public FriendService(ImContext context, ILogger<FriendService> logger, IMapper mapper)
|
||||
private readonly IPublishEndpoint _endpoint;
|
||||
public FriendService(ImContext context, ILogger<FriendService> logger, IMapper mapper, IPublishEndpoint endpoint)
|
||||
{
|
||||
_context = context;
|
||||
_logger = logger;
|
||||
_mapper = mapper;
|
||||
_endpoint = endpoint;
|
||||
}
|
||||
#region 拉黑好友
|
||||
public async Task<bool> BlockeFriendAsync(int friendId)
|
||||
@@ -127,13 +131,18 @@ namespace IM_API.Services
|
||||
|
||||
//同意后标记
|
||||
case HandleFriendRequestAction.Accept:
|
||||
friend.StatusEnum = FriendStatus.Added;
|
||||
friendRequest.StateEnum = FriendRequestState.Passed;
|
||||
await _endpoint.Publish(new FriendAddEvent()
|
||||
{
|
||||
AggregateId = friendRequest.Id.ToString(),
|
||||
OccurredAt = DateTime.UtcNow,
|
||||
Created = DateTime.UtcNow,
|
||||
EventId = Guid.NewGuid(),
|
||||
OperatorId = friendRequest.ResponseUser,
|
||||
RequestInfo = _mapper.Map<FriendRequestDto>(friendRequest),
|
||||
requestUserRemarkname = requestDto.RemarkName,
|
||||
|
||||
//根据当前好友请求为被申请方添加一条好友记录(注意:好友记录为双向)
|
||||
var ResponseFriend = _mapper.Map<Friend>(friendRequest);
|
||||
if (!string.IsNullOrEmpty(requestDto.RemarkName)) ResponseFriend.RemarkName = requestDto.RemarkName;
|
||||
_context.Friends.Add(ResponseFriend);
|
||||
});
|
||||
break;
|
||||
|
||||
//无效操作
|
||||
@@ -172,6 +181,16 @@ namespace IM_API.Services
|
||||
var friendRequst = _mapper.Map<FriendRequest>(dto);
|
||||
_context.FriendRequests.Add(friendRequst);
|
||||
await _context.SaveChangesAsync();
|
||||
await _endpoint.Publish(new RequestFriendEvent()
|
||||
{
|
||||
AggregateId = friendRequst.Id.ToString(),
|
||||
OccurredAt = friendRequst.Created,
|
||||
Description = friendRequst.Description,
|
||||
EventId = Guid.NewGuid(),
|
||||
FromUserId = friendRequst.RequestUser,
|
||||
ToUserId = friendRequst.ResponseUser,
|
||||
OperatorId = friendRequst.RequestUser
|
||||
});
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user