using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Services; using Volo.Abp.Users; using Yi.Framework.AiHub.Application.Contracts.Dtos.Token; using Yi.Framework.AiHub.Domain.Entities.OpenApi; using Yi.Framework.AiHub.Domain.Extensions; using Yi.Framework.AiHub.Domain.Managers; using Yi.Framework.SqlSugarCore.Abstractions; namespace Yi.Framework.AiHub.Application.Services; public class TokenService : ApplicationService { private readonly ISqlSugarRepository _tokenRepository; private readonly TokenManager _tokenManager; /// /// 构造函数 /// /// /// public TokenService(ISqlSugarRepository tokenRepository, TokenManager tokenManager) { _tokenRepository = tokenRepository; _tokenManager = tokenManager; } /// /// 获取token /// /// [Authorize] public async Task GetAsync() { return new TokenOutput { ApiKey = await _tokenManager.GetAsync(CurrentUser.GetId()) }; } /// /// 创建token /// /// [Authorize] public async Task CreateAsync() { if (!CurrentUser.IsAiVip()) { throw new UserFriendlyException("充值成为Vip,畅享第三方token服务"); } await _tokenManager.CreateAsync(CurrentUser.GetId()); } }