using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Entities.Events; using Volo.Abp.EventBus; using Volo.Abp.EventBus.Local; using Yi.Framework.Bbs.Domain.Entities; using Yi.Framework.Bbs.Domain.Entities.Forum; using Yi.Framework.Bbs.Domain.Shared.Enums; using Yi.Framework.Bbs.Domain.Shared.Etos; using Yi.Framework.SqlSugarCore.Abstractions; namespace Yi.Framework.Bbs.Domain.EventHandlers { /// /// 主题创建的领域事件 /// public class DiscussCreatedEventHandler : ILocalEventHandler>, ITransientDependency { private ISqlSugarRepository _userRepository; private ILocalEventBus _localEventBus; public DiscussCreatedEventHandler(ISqlSugarRepository userRepository, ILocalEventBus localEventBus) { _userRepository = userRepository; _localEventBus = localEventBus; } public async Task HandleEventAsync(EntityCreatedEventData eventData) { var disucussEntity = eventData.Entity; //给创建者发布数量+1 await _userRepository._Db.Updateable() .SetColumns(it => it.DiscussNumber == it.DiscussNumber + 1) .Where(it => it.UserId == disucussEntity.CreatorId) .ExecuteCommandAsync(); //最后发布任务触发事件 await _localEventBus.PublishAsync( new AssignmentEventArgs(AssignmentRequirementTypeEnum.Discuss, disucussEntity.CreatorId!.Value), false); } } }