feat: 完成后端消息推送用户信息
This commit is contained in:
@@ -13,6 +13,7 @@ using Yi.Framework.ChatHub.Application.Contracts.Dtos;
|
||||
using Yi.Framework.ChatHub.Domain.Managers;
|
||||
using Yi.Framework.ChatHub.Domain.Shared.Enums;
|
||||
using Yi.Framework.ChatHub.Domain.Shared.Model;
|
||||
using Yi.Framework.Rbac.Domain.Shared.Etos;
|
||||
|
||||
namespace Yi.Framework.ChatHub.Application.Services
|
||||
{
|
||||
@@ -30,8 +31,14 @@ namespace Yi.Framework.ChatHub.Application.Services
|
||||
public async Task SendPersonalMessageAsync(PersonalMessageInputDto input)
|
||||
{
|
||||
var mesageContext = MessageContext.CreatePersonal(input.Content, input.UserId, CurrentUser.Id!.Value);
|
||||
await _userMessageManager.SendMessageAsync(mesageContext);
|
||||
var userRoleMenuQuery = new UserRoleMenuQueryEventArgs(CurrentUser.Id!.Value, input.UserId);
|
||||
|
||||
//调用用户领域事件,获取用户信息,第一个发送者用户信息,第二个为接收者用户信息
|
||||
await _localEventBus.PublishAsync(userRoleMenuQuery);
|
||||
mesageContext.SetUserInfo(userRoleMenuQuery.Result.First(), userRoleMenuQuery.Result.Last());
|
||||
|
||||
|
||||
await _userMessageManager.SendMessageAsync(mesageContext);
|
||||
await _userMessageManager.CreateMessageStoreAsync(mesageContext);
|
||||
}
|
||||
|
||||
@@ -47,11 +54,16 @@ namespace Yi.Framework.ChatHub.Application.Services
|
||||
//领域调用,群主消息调用bbs领域
|
||||
|
||||
//如果钱钱不足,将自动断言
|
||||
await _localEventBus.PublishAsync<MoneyChangeEventArgs>(new MoneyChangeEventArgs { UserId = CurrentUser.Id.Value, Number = -1 });
|
||||
await _localEventBus.PublishAsync<MoneyChangeEventArgs>(new MoneyChangeEventArgs { UserId = CurrentUser.Id.Value, Number = -1 },false);
|
||||
|
||||
var mesageContext = MessageContext.CreateAll(input.Content, CurrentUser.Id!.Value);
|
||||
await _userMessageManager.SendMessageAsync(mesageContext);
|
||||
UserRoleMenuQueryEventArgs userRoleMenuQuery = new UserRoleMenuQueryEventArgs(CurrentUser.Id!.Value);
|
||||
|
||||
//调用用户领域事件,获取用户信息,第一个发送者用户信息,第二个为接收者用户信息
|
||||
await _localEventBus.PublishAsync(userRoleMenuQuery, false);
|
||||
mesageContext.SetUserInfo(userRoleMenuQuery.Result.First(),null);
|
||||
|
||||
await _userMessageManager.SendMessageAsync(mesageContext);
|
||||
await _userMessageManager.CreateMessageStoreAsync(mesageContext);
|
||||
}
|
||||
|
||||
@@ -64,6 +76,8 @@ namespace Yi.Framework.ChatHub.Application.Services
|
||||
[RemoteService(IsEnabled = false)]
|
||||
public async Task<List<MessageContext>> GetListAsync(ChatMessageGetListInput input)
|
||||
{
|
||||
//需要关联用户信息
|
||||
|
||||
var entities = await _userMessageManager._repository._DbQueryable
|
||||
.WhereIF(input.MessageType is not null, x => x.MessageType == input.MessageType)
|
||||
.WhereIF(input.ReceiveId is not null, x => x.ReceiveId == input.ReceiveId)
|
||||
@@ -83,6 +97,8 @@ namespace Yi.Framework.ChatHub.Application.Services
|
||||
[HttpGet("chat-message/account")]
|
||||
public async Task<List<MessageContext>> GetAccountMessageListAsync()
|
||||
{
|
||||
//需要关联用户信息
|
||||
|
||||
//默认显示1个月的个人数据
|
||||
var userId = CurrentUser.Id!.Value;
|
||||
//3个类型数据
|
||||
|
||||
@@ -5,14 +5,15 @@ using System.Text;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading.Tasks;
|
||||
using Yi.Framework.ChatHub.Domain.Shared.Enums;
|
||||
using Yi.Framework.Rbac.Domain.Shared.Dtos;
|
||||
|
||||
namespace Yi.Framework.ChatHub.Domain.Shared.Model
|
||||
{
|
||||
public class MessageContext
|
||||
{
|
||||
public static MessageContext CreatePersonal(string content, Guid userId,Guid sendUserId)
|
||||
public static MessageContext CreatePersonal(string content, Guid userId, Guid sendUserId)
|
||||
{
|
||||
return new MessageContext() { MessageType = MessageTypeEnum.Personal, Content = content, ReceiveId = userId ,SendUserId= sendUserId };
|
||||
return new MessageContext() { MessageType = MessageTypeEnum.Personal, Content = content, ReceiveId = userId, SendUserId = sendUserId };
|
||||
}
|
||||
|
||||
public static MessageContext CreateAll(string content, Guid sendUserId)
|
||||
@@ -20,7 +21,12 @@ namespace Yi.Framework.ChatHub.Domain.Shared.Model
|
||||
return new MessageContext() { MessageType = MessageTypeEnum.All, Content = content, SendUserId = sendUserId };
|
||||
}
|
||||
|
||||
public void SetUserInfo(UserRoleMenuDto sendUserInfo, UserRoleMenuDto? receiveInfo)
|
||||
{
|
||||
this.SendUserInfo = sendUserInfo;
|
||||
this.ReceiveInfo = receiveInfo;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 消息类型
|
||||
/// </summary>
|
||||
@@ -31,15 +37,25 @@ namespace Yi.Framework.ChatHub.Domain.Shared.Model
|
||||
/// </summary>
|
||||
public Guid? ReceiveId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 接收者用户信息
|
||||
/// </summary>
|
||||
public UserRoleMenuDto? ReceiveInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发送者的用户id
|
||||
/// </summary>
|
||||
public Guid SendUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发送者用户信息
|
||||
/// </summary>
|
||||
public UserRoleMenuDto SendUserInfo { get; set; }
|
||||
/// <summary>
|
||||
/// 消息内容
|
||||
/// </summary>
|
||||
public string Content { get; set; }
|
||||
public DateTime CreationTime { get;protected set; }=DateTime.Now;
|
||||
public DateTime CreationTime { get; protected set; } = DateTime.Now;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -11,5 +11,6 @@
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\bbs\Yi.Framework.Bbs.Domain.Shared\Yi.Framework.Bbs.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\rbac\Yi.Framework.Rbac.Domain.Shared\Yi.Framework.Rbac.Domain.Shared.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user