using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.EventBus.Distributed; using Volo.Abp.Guids; using Volo.Abp.Timing; using Win.Abp.SerialNumber; using Win_in.Sfs.Message.Domain; using Win_in.Sfs.Shared.Event; namespace Win_in.Sfs.Message.Event { public class SystemMessageEventHandler : IDistributedEventHandler>, ITransientDependency { private readonly IClock _clock; private readonly ISerialNumberGenerator _numberGenerator; private readonly IGuidGenerator _guidGenerator; private readonly ISystemMessageRepository _systemMessageRepository; //TODO 开关放到系统配置中,通过依赖注入获取 private bool _autoCreateDeliverPlanByCustomerAsn = true; public async Task HandleEventAsync(EntityCreatedEto eventData) { //开关控制 if (!_autoCreateDeliverPlanByCustomerAsn) { return; } var arriveNotices = CreateSystemMessage(eventData.Entity); await _systemMessageRepository.InsertAsync(arriveNotices); } private SystemMessage CreateSystemMessage(SystemMessageETO systemMessageEto) { var systemMessage = new SystemMessage() { Company= systemMessageEto.Company, Site = systemMessageEto.Site, TenantId= systemMessageEto.TenantId, Content = systemMessageEto.Content, From= systemMessageEto.From, IsPush= systemMessageEto.IsPush, IsRead= systemMessageEto.IsRead, MessageContentType=systemMessageEto.MessageContentType, MessageLevel=systemMessageEto.MessageLevel, MessageSendTypeEnum=systemMessageEto.MessageSendTypeEnum, NotificationLevel=systemMessageEto.NotificationLevel, ReadTime=systemMessageEto.ReadTime, To= systemMessageEto.To, Title=systemMessageEto.Title, SendTime=systemMessageEto.SendTime, }; return systemMessage; } } }