55 lines
1.6 KiB
C#
55 lines
1.6 KiB
C#
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<TokenAggregateRoot> _tokenRepository;
|
||
private readonly TokenManager _tokenManager;
|
||
|
||
/// <summary>
|
||
/// 构造函数
|
||
/// </summary>
|
||
/// <param name="tokenRepository"></param>
|
||
/// <param name="tokenManager"></param>
|
||
public TokenService(ISqlSugarRepository<TokenAggregateRoot> tokenRepository, TokenManager tokenManager)
|
||
{
|
||
_tokenRepository = tokenRepository;
|
||
_tokenManager = tokenManager;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取token
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
[Authorize]
|
||
public async Task<TokenOutput> GetAsync()
|
||
{
|
||
return new TokenOutput
|
||
{
|
||
ApiKey = await _tokenManager.GetAsync(CurrentUser.GetId())
|
||
};
|
||
}
|
||
|
||
/// <summary>
|
||
/// 创建token
|
||
/// </summary>
|
||
/// <exception cref="UserFriendlyException"></exception>
|
||
[Authorize]
|
||
public async Task CreateAsync()
|
||
{
|
||
if (!CurrentUser.IsAiVip())
|
||
{
|
||
throw new UserFriendlyException("充值成为Vip,畅想第三方token服务");
|
||
}
|
||
|
||
await _tokenManager.CreateAsync(CurrentUser.GetId());
|
||
}
|
||
} |