Files
StoreWeb/Modules/Store.Users/Controllers/UserController.cs
T

46 lines
1.4 KiB
C#

using Asp.Versioning;
using MAX.Framework.Security;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Store.Users.Commands;
using Store.Users.Contracts;
using Store.Users.Contracts.Dtos;
using Store.Users.Dtos;
namespace Store.Users.Controllers;
[ApiController]
[ApiVersionNeutral]
[Route("user/[action]")]
public class UserController : ControllerBase
{
private readonly IUserQueryService _userQuery;
private readonly IMediator _mediator;
private readonly ICurrentUser _currentUser;
public UserController(IUserQueryService userQuery, IMediator mediator, ICurrentUser currentUser)
{
_userQuery = userQuery;
_mediator = mediator;
_currentUser = currentUser;
}
[HttpGet]
public async Task<UserInfo> GetUser(string userName)
{
return await _userQuery.GetUser(userName);
}
/// <summary>使用当前登录用户的积分为商铺续费。</summary>
[HttpPost]
public Task<ShopRenewResponse> ShopRenew([FromBody] ShopRenewRequest request, CancellationToken cancellationToken)
{
if (!_currentUser.IsAuthenticated || string.IsNullOrWhiteSpace(_currentUser.UserName))
throw new UnauthorizedAccessException();
return _mediator.Send(new ShopRenewCommand(
_currentUser.UserName, request.ShopId, request.RenewDuration, request.Remark), cancellationToken);
}
}