Files
Yi.Framework/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application/Services/InvitationCodeService.cs
2024-11-03 01:38:12 +08:00

54 lines
1.7 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Application.Services;
using Volo.Abp.Users;
using Yi.Framework.DigitalCollectibles.Application.Contracts.Dtos.InvitationCode;
using Yi.Framework.DigitalCollectibles.Domain.Entities;
using Yi.Framework.DigitalCollectibles.Domain.Managers;
using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.DigitalCollectibles.Application.Services;
/// <summary>
/// 邀请码应用服务
/// </summary>
public class InvitationCodeService : ApplicationService
{
private readonly InvitationCodeManager _invitationCodeManager;
public InvitationCodeService(InvitationCodeManager invitationCodeManager)
{
_invitationCodeManager = invitationCodeManager;
}
/// <summary>
/// 查询当前登录用户的邀请码数据
/// </summary>
/// <returns></returns>
[Authorize]
public async Task<InvitationCodeGetOutputDto> GetAsync()
{
var userId = CurrentUser.GetId();
var entity = await _invitationCodeManager.TryGetOrAddAsync(userId);
var output = new InvitationCodeGetOutputDto
{
IsInvited = entity.IsInvited,
PointsNumber = entity.PointsNumber,
InvitationCode = entity.InvitationCode
};
return output;
}
/// <summary>
/// 当前用户填写邀请码
/// </summary>
/// <param name="invitedUserId"></param>
/// <exception cref="UserFriendlyException"></exception>
[Authorize]
[HttpPost("invitation-code/{code}")]
public async Task SetAsync([FromRoute] string code)
{
var userId = CurrentUser.GetId();
await _invitationCodeManager.SetAsync(userId, code);
}
}