// using TencentCloud.Tbm.V20180129.Models; // 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.Consts; // using Yi.Framework.Bbs.Domain.Shared.Enums; // using Yi.Framework.Bbs.Domain.Shared.Etos; // using Yi.Framework.Rbac.Domain.Entities; // using Yi.Framework.SqlSugarCore.Abstractions; // // namespace Yi.Framework.Bbs.Domain.EventHandlers // { // /// // /// 评论创建的领域事件 // /// // public class CommentCreatedEventHandler : ILocalEventHandler>, // ITransientDependency // { // private ILocalEventBus _localEventBus; // private ISqlSugarRepository _discussRepository; // private ISqlSugarRepository _userRepository; // public CommentCreatedEventHandler(ILocalEventBus localEventBus, ISqlSugarRepository discussRepository, ISqlSugarRepository userRepository) // { // _userRepository = userRepository; // _localEventBus = localEventBus; // _discussRepository = discussRepository; // } // public async Task HandleEventAsync(EntityCreatedEventData eventData) // { // var commentEntity = eventData.Entity; // // //给创建者发布数量+1 // await _userRepository._Db.Updateable() // .SetColumns(it => it.CommentNumber == it.CommentNumber + 1) // .Where(it => it.UserId == commentEntity.CreatorId) // .ExecuteCommandAsync(); // var disucssDto = await _discussRepository._DbQueryable // .Where(x => x.Id == commentEntity.DiscussId) // .LeftJoin((dicuss, user) => dicuss.CreatorId == user.Id) // .Select((dicuss, user) => // new // { // DiscussUserId = user.Id, // DiscussTitle = dicuss.Title, // // }) // .FirstAsync(); // // var commentUser = await _userRepository.GetFirstAsync(x => x.Id == commentEntity.CreatorId); // // //截取30个长度 // var content = commentEntity.Content.Length >= 30 ? commentEntity.Content.Substring(0, 30)+"..." : commentEntity.Content; // //通知主题作者,有人评论 // await _localEventBus.PublishAsync(new BbsNoticeEventArgs(disucssDto.DiscussUserId, string.Format(DiscussConst.CommentNotice, disucssDto.DiscussTitle, commentUser.UserName, content,commentEntity.DiscussId)), false); // // //如果为空,表示根路径,没有回复者 // if (commentEntity.ParentId != Guid.Empty) // { // //通知回复者,有人评论 // await _localEventBus.PublishAsync(new BbsNoticeEventArgs(commentEntity.ParentId, string.Format(DiscussConst.CommentNoticeToReply, disucssDto.DiscussTitle, commentUser.UserName, content,commentEntity.DiscussId)), false); // // } // // //最后发布任务触发事件 // await _localEventBus.PublishAsync( // new AssignmentEventArgs(AssignmentRequirementTypeEnum.Comment, commentUser.Id),false); // // } // } // }