后端:添加添加好友处理事件
文档:添加测试环境文档
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
bin/
|
||||
obj/
|
||||
.vs/
|
||||
@@ -14,7 +14,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("IMTest")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1df3a0f30e469671b3e81d88574871d99c98af1a")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7ebf23ddd8a0d5536167313c4cf37af1552a5057")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("IMTest")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("IMTest")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -1 +1 @@
|
||||
9546071857f1b0fa09bedf887ca476b7ecfa579752230651321c2a145e579c92
|
||||
ca0390a4d5773daae2e747d7512c190701a7a942186c769e42327a4864733f0b
|
||||
|
||||
Binary file not shown.
+11
-14
@@ -1,4 +1,5 @@
|
||||
using IM_API.Domain.Events;
|
||||
using IM_API.Interface.Services;
|
||||
using IM_API.Models;
|
||||
using MassTransit;
|
||||
|
||||
@@ -6,26 +7,22 @@ namespace IM_API.Application.EventHandlers.FriendAddHandler
|
||||
{
|
||||
public class FriendAddSignalRHandler : IConsumer<FriendAddEvent>
|
||||
{
|
||||
private readonly ImContext _context;
|
||||
public FriendAddSignalRHandler(ImContext context)
|
||||
private readonly IFriendSerivce _friendService;
|
||||
public FriendAddSignalRHandler(IFriendSerivce friendSerivce)
|
||||
{
|
||||
_context = context;
|
||||
_friendService = friendSerivce;
|
||||
}
|
||||
|
||||
public Task Consume(ConsumeContext<FriendAddEvent> context)
|
||||
public async Task Consume(ConsumeContext<FriendAddEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
var @event = context.Message;
|
||||
//为请求发起人添加好友记录
|
||||
await _friendService.MakeFriendshipAsync(
|
||||
@event.RequestUser.Id, @event.ResponseUser.Id, @event.RequestInfo.RemarkName);
|
||||
//为接收人添加好友记录
|
||||
await _friendService.MakeFriendshipAsync(
|
||||
@event.ResponseUser.Id, @event.RequestUser.Id, @event.requestUserRemarkname);
|
||||
|
||||
var RequestfriendShip = new Friend()
|
||||
{
|
||||
Avatar = @event.ResponseUser.Avatar,
|
||||
UserId = @event.RequestUser.Id,
|
||||
RemarkName = @event.RequestInfo.NickName,
|
||||
Created = @event.RequestInfo.Created,
|
||||
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ namespace IM_API.Configs
|
||||
//好友信息模型转换
|
||||
CreateMap<Friend, FriendInfoDto>()
|
||||
.ForMember(dest => dest.UserInfo, opt => opt.MapFrom(src => src.FriendNavigation))
|
||||
.ForMember(dest => dest.Avatar, opt => opt.MapFrom(src => src.FriendNavigation.Avatar))
|
||||
;
|
||||
//好友请求通过后新增好友关系
|
||||
CreateMap<FriendRequestDto, Friend>()
|
||||
|
||||
@@ -8,17 +8,18 @@ namespace IM_API.Domain.Events
|
||||
/// <summary>
|
||||
/// 发起请求用户
|
||||
/// </summary>
|
||||
public UserInfoDto RequestUser { get; set; }
|
||||
public UserInfoDto RequestUser { get; init; }
|
||||
public string? requestUserRemarkname { get; init; }
|
||||
/// <summary>
|
||||
/// 接受请求用户
|
||||
/// </summary>
|
||||
public UserInfoDto ResponseUser { get; set; }
|
||||
public UserInfoDto ResponseUser { get; init; }
|
||||
|
||||
public FriendRequestResDto RequestInfo { get; set; }
|
||||
public FriendRequestDto RequestInfo { get; init; }
|
||||
/// <summary>
|
||||
/// 好友关系创建时间
|
||||
/// </summary>
|
||||
public DateTime Created { get; set; }
|
||||
public DateTime Created { get; init; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,5 +60,12 @@ namespace IM_API.Interface.Services
|
||||
/// <param name="friendId">好友关系id</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> BlockeFriendAsync(int friendId);
|
||||
/// <summary>
|
||||
/// 创建好友关系
|
||||
/// </summary>
|
||||
/// <param name="userAId"></param>
|
||||
/// <param name="userBId"></param>
|
||||
/// <returns></returns>
|
||||
Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,5 +175,28 @@ namespace IM_API.Services
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 创建好友关系
|
||||
public async Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName)
|
||||
{
|
||||
bool userAexist = await _context.Friends.AnyAsync(x => x.UserId == userAId && x.FriendId == userBId);
|
||||
if (!userAexist)
|
||||
{
|
||||
User? userbInfo = await _context.Users.FirstOrDefaultAsync(x => x.Id == userBId);
|
||||
if (userbInfo is null) throw new BaseException(CodeDefine.USER_NOT_FOUND);
|
||||
Friend friendA = new Friend()
|
||||
{
|
||||
Avatar = userbInfo.Avatar,
|
||||
Created = DateTime.UtcNow,
|
||||
FriendId = userbInfo.Id,
|
||||
RemarkName = remarkName ?? userbInfo.NickName,
|
||||
StatusEnum = FriendStatus.Added,
|
||||
UserId = userAId
|
||||
};
|
||||
_context.Friends.Add(friendA);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user