add(conversation):完善私聊好友会话服务
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using AutoMapper;
|
||||
using IM_API.Domain.Events;
|
||||
using IM_API.Dtos;
|
||||
using IM_API.Models;
|
||||
|
||||
@@ -59,11 +60,46 @@ namespace IM_API.Configs
|
||||
.ForMember(dest => dest.Created, opt => opt.MapFrom(src => src.TimeStamp))
|
||||
.ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.Content))
|
||||
.ForMember(dest => dest.Recipient, opt => opt.MapFrom(src => src.ReceiverId))
|
||||
.ForMember(dest => dest.StreamKey, opt => opt.Ignore() )
|
||||
.ForMember(dest => dest.StateEnum, opt => opt.MapFrom(src => MessageState.Sent))
|
||||
.ForMember(dest => dest.ChatType, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.MsgType, opt => opt.Ignore())
|
||||
;
|
||||
|
||||
//会话对象深拷贝
|
||||
CreateMap<Conversation, Conversation>()
|
||||
.ForMember(dest => dest.Id, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.UserId, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.TargetId, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.ChatType, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.StreamKey, opt => opt.Ignore())
|
||||
;
|
||||
|
||||
//消息对象转消息创建事件对象
|
||||
CreateMap<Message, MessageCreatedEvent>()
|
||||
.ForMember(dest => dest.MessageMsgType, opt => opt.MapFrom(src => src.MsgTypeEnum))
|
||||
.ForMember(dest => dest.ChatType, opt => opt.MapFrom(src => src.ChatTypeEnum))
|
||||
.ForMember(dest => dest.MessageContent, opt => opt.MapFrom(src => src.Content))
|
||||
.ForMember(dest => dest.State, opt => opt.MapFrom(src => src.StateEnum))
|
||||
.ForMember(dest => dest.MessageCreated, opt => opt.MapFrom(src => src.Created))
|
||||
.ForMember(dest => dest.MessageId, opt => opt.MapFrom(src => src.Id))
|
||||
.ForMember(dest => dest.MsgRecipientId, opt => opt.MapFrom(src => src.Recipient))
|
||||
.ForMember(dest => dest.MsgSenderId, opt => opt.MapFrom(src => src.Sender))
|
||||
.ForMember(dest => dest.StreamKey, opt => opt.MapFrom(src => src.StreamKey))
|
||||
;
|
||||
|
||||
//消息发送事件转换会话对象
|
||||
CreateMap<MessageCreatedEvent, Conversation>()
|
||||
.ForMember(dest => dest.LastReadMessageId, opt => opt.MapFrom(src => src.MessageId))
|
||||
.ForMember(dest => dest.LastMessage, opt => opt.MapFrom(src => src.MessageContent))
|
||||
.ForMember(dest => dest.ChatType, opt => opt.MapFrom(src => (int)src.ChatType))
|
||||
.ForMember(dest => dest.UserId, opt => opt.MapFrom(src => src.MsgSenderId))
|
||||
.ForMember(dest => dest.TargetId, opt => opt.MapFrom(src => src.MsgRecipientId))
|
||||
.ForMember(dest => dest.UnreadCount, opt => opt.MapFrom(src => 0))
|
||||
.ForMember(dest => dest.StreamKey, opt => opt.MapFrom(src => src.StreamKey))
|
||||
.ForMember(dest => dest.LastMessageTime, opt => opt.MapFrom(src => DateTime.Now))
|
||||
;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
using IM_API.Dtos;
|
||||
using IM_API.Application.EventHandlers;
|
||||
using IM_API.Application.Interfaces;
|
||||
using IM_API.Domain.Events;
|
||||
using IM_API.Dtos;
|
||||
using IM_API.Infrastructure.EventBus;
|
||||
using IM_API.Interface.Services;
|
||||
using IM_API.Services;
|
||||
using IM_API.Tools;
|
||||
@@ -18,6 +22,9 @@ namespace IM_API.Configs
|
||||
services.AddTransient<IFriendSerivce, FriendService>();
|
||||
services.AddTransient<IMessageSevice, MessageService>();
|
||||
services.AddTransient<IConversationService, ConversationService>();
|
||||
services.AddScoped<IEventBus, InMemoryEventBus>();
|
||||
services.AddScoped<IEventHandler<MessageCreatedEvent>, SignalREventHandler>();
|
||||
services.AddScoped<IEventHandler<MessageCreatedEvent>, ConversationEventHandler>();
|
||||
services.AddSingleton<IJWTService, JWTService>();
|
||||
services.AddSingleton<IRefreshTokenService, RedisRefreshTokenService>();
|
||||
return services;
|
||||
|
||||
Reference in New Issue
Block a user