using Mapster;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Application.Services;
using Volo.Abp.Users;
using Yi.Framework.DigitalCollectibles.Application.Contracts.Dtos.MiningPool;
using Yi.Framework.DigitalCollectibles.Domain.Managers;
namespace Yi.Framework.DigitalCollectibles.Application.Services;
///
/// 矿池应用服务
///
public class MiningPoolService : ApplicationService
{
private readonly MiningPoolManager _manager;
public MiningPoolService(MiningPoolManager manager)
{
_manager = manager;
}
///
/// 内测-白嫖-获取自动挖矿卡
///
[HttpPost("mining-pool/on-hook")]
public async Task GetOnHookAsync()
{
await _manager.GetOnHookAsync(CurrentUser.GetId());
}
///
/// 获取矿池状态
///
///
[HttpGet("mining-pool")]
public async Task GetMiningPoolContentAsync()
{
var content = await _manager.GetMiningPoolContentAsync();
var output = content.Adapt();
return output;
}
///
/// 用户手动挖矿
///
///
[HttpPost("mining-pool/mining")]
[Authorize]
public async Task MiningAsync()
{
var userId = CurrentUser.GetId();
var result = await _manager.MiningAsync(userId);
var output = result.Adapt();
return output;
}
}