using Volo.Abp.DependencyInjection; using Volo.Abp.EventBus; using Yi.Framework.DigitalCollectibles.Domain.Entities; using Yi.Framework.DigitalCollectibles.Domain.Managers; using Yi.Framework.DigitalCollectibles.Domain.Shared.Etos; using Yi.Framework.SqlSugarCore.Abstractions; namespace Yi.Framework.DigitalCollectibles.Domain.EventHandlers; /// /// 成功挖到矿物 /// public class SuccessMiningEventHandler : ILocalEventHandler, ITransientDependency { private MiningPoolManager _miningPoolManager; private ISqlSugarRepository _repository; public SuccessMiningEventHandler(MiningPoolManager miningPoolManager, ISqlSugarRepository repository) { _miningPoolManager = miningPoolManager; _repository = repository; } public async Task HandleEventAsync(SuccessMiningEto eventData) { //当前藏品 var currentCollectibles = await _repository.GetFirstAsync(x => x.Id == eventData.CollectiblesId); //扣减矿池 await _miningPoolManager.DeductionPoolAsync(currentCollectibles.Rarity); //新增全世界发现 currentCollectibles.FindTotal += 1; await _repository.UpdateAsync(currentCollectibles); } }