using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Entities.Events; using Volo.Abp.EventBus; using Yi.Framework.Bbs.Domain.Entities; using Yi.Framework.Bbs.Domain.Entities.Forum; using Yi.Framework.SqlSugarCore.Abstractions; namespace Yi.Framework.Bbs.Domain.EventHandlers { /// /// 被点赞 /// public class AgreeCreatedEventHandler : ILocalEventHandler>, ITransientDependency { private ISqlSugarRepository _userRepository; private ISqlSugarRepository _agreeRepository; public AgreeCreatedEventHandler(ISqlSugarRepository userRepository, ISqlSugarRepository agreeRepository) { _userRepository = userRepository; _agreeRepository = agreeRepository; } public async Task HandleEventAsync(EntityCreatedEventData eventData) { var agreeEntity = eventData.Entity; var userId = await _agreeRepository._DbQueryable.LeftJoin((agree, discuss) => agree.DiscussId == discuss.Id) .Select((agree, discuss) => discuss.CreatorId).FirstAsync(); //给创建者发布数量+1 await _userRepository._Db.Updateable() .SetColumns(it => it.AgreeNumber == it.AgreeNumber + 1) .Where(it => it.UserId == userId) .ExecuteCommandAsync(); } } /// /// 取消点赞 /// public class AgreeDeletedEventHandler : ILocalEventHandler>, ITransientDependency { private ISqlSugarRepository _userRepository; private ISqlSugarRepository _agreeRepository; public AgreeDeletedEventHandler(ISqlSugarRepository userRepository, ISqlSugarRepository agreeRepository) { _userRepository = userRepository; _agreeRepository = agreeRepository; } public async Task HandleEventAsync(EntityCreatedEventData eventData) { var agreeEntity = eventData.Entity; var userId = await _agreeRepository._DbQueryable.LeftJoin((agree, discuss) => agree.DiscussId == discuss.Id) .Select((agree, discuss) => discuss.CreatorId).FirstAsync(); //给创建者发布数量-1 await _userRepository._Db.Updateable() .SetColumns(it => it.DiscussNumber == it.DiscussNumber - 1) .Where(it => it.UserId == userId) .ExecuteCommandAsync(); } } }