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; /// /// 邀请码应用服务 /// public class InvitationCodeService : ApplicationService { private readonly InvitationCodeManager _invitationCodeManager; public InvitationCodeService(InvitationCodeManager invitationCodeManager) { _invitationCodeManager = invitationCodeManager; } /// /// 查询当前登录用户的邀请码数据 /// /// [Authorize] public async Task 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; } /// /// 当前用户填写邀请码 /// /// /// [Authorize] [HttpPost("invitation-code/{code}")] public async Task SetAsync([FromRoute] string code) { var userId = CurrentUser.GetId(); await _invitationCodeManager.SetAsync(userId, code); } }