修改User模块,同步原始代码
This commit is contained in:
1 parent
4a5fada435
commit
78b0c2bb2e
47 files changed
+2939
-193
No files matched your search
@@ -1,45 +1,143 @@
|
||||
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;
|
||||
using Store.Users.Entities;
|
||||
using Store.Users.Services;
|
||||
using MAX.Framework.Dtos;
|
||||
using MAX.Framework.Conventions;
|
||||
|
||||
namespace Store.Users.Controllers;
|
||||
|
||||
/// <summary>用户模块接口;所有管理操作均以当前 JWT 对应的数据库账户进行授权。</summary>
|
||||
[ApiController]
|
||||
[ApiVersionNeutral]
|
||||
[Route("user/[action]")]
|
||||
public class UserController : ControllerBase
|
||||
[DefaultHttpPost]
|
||||
[Authorize]
|
||||
[Route("v{version:apiVersion}/user/[action]")]
|
||||
public class UserController(UserManagementService users, UserFundsService funds, IMediator mediator, ICurrentUser currentUser) : ControllerBase
|
||||
{
|
||||
private readonly IUserQueryService _userQuery;
|
||||
private readonly IMediator _mediator;
|
||||
private readonly ICurrentUser _currentUser;
|
||||
|
||||
public UserController(IUserQueryService userQuery, IMediator mediator, ICurrentUser currentUser)
|
||||
/// <summary>获取本人或授权范围内的用户信息,响应不包含密码。</summary>
|
||||
public Task<UserInfo> GetUser(string? userName, CancellationToken cancellationToken)
|
||||
{
|
||||
_userQuery = userQuery;
|
||||
_mediator = mediator;
|
||||
_currentUser = currentUser;
|
||||
return users.GetUser(userName, cancellationToken);
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<UserInfo> GetUser(string userName)
|
||||
/// <summary>管理员分页查询所有用户。</summary>
|
||||
public Task<UserPage<UserInfo>> GetAllUser(UserSearchRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return await _userQuery.GetUser(userName);
|
||||
return users.Search(request, false, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>分页查询当前主账号的直属子账号。</summary>
|
||||
public Task<UserPage<UserInfo>> GetSubUser(UserSearchRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.Search(request, true, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>管理员创建主账号。</summary>
|
||||
public Task<UserInfo> AddUser(UserCreateRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.Create(request, false, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>主账号创建直属子账号。</summary>
|
||||
public Task<UserInfo> AddSubUser(UserCreateRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.Create(request, true, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>管理员修改账户资料,用户名不可变更。</summary>
|
||||
public Task<UserInfo> UpdateUser(UserUpdateRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.Update(request.Id, request, false, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>主账号修改直属子账号资料。</summary>
|
||||
public Task<UserInfo> UpdateSubUser(UserUpdateRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.Update(request.Id, request, true, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>删除无资金和业务关联的账户。</summary>
|
||||
public async Task<ApiResult> DelUser(int id, CancellationToken cancellationToken)
|
||||
{
|
||||
await users.Delete(id, cancellationToken);
|
||||
return ApiResult.Ok();
|
||||
}
|
||||
|
||||
/// <summary>校验旧密码并修改本人密码,成功后需重新登录。</summary>
|
||||
public async Task<ApiResult> ChangePassword(ChangePasswordRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
await users.ChangePassword(request, cancellationToken);
|
||||
return ApiResult.Ok();
|
||||
}
|
||||
|
||||
/// <summary>查询授权账户的积分流水。</summary>
|
||||
public Task<UserPage<UserPointsRecordEntity>> GetUserPoints(UserRecordSearchRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.Points(request.UserName, request, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>查询授权账户的余额流水。</summary>
|
||||
public Task<UserPage<UserPaymentRecordEntity>> GetUserBalance(UserRecordSearchRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.Balance(request.UserName, request, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>管理员充值积分,或当前用户向其他账户转移自己的积分。</summary>
|
||||
public Task<UserFundsResponse> UpdateUserPoints(UserFundsRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return funds.Change(request, true, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>管理员充值或扣减余额,自动记录审计流水。</summary>
|
||||
public Task<UserFundsResponse> UpdateUserBalance(UserFundsRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return funds.Change(request, false, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>提交本人的充值备注。</summary>
|
||||
public Task<long> AddUserTopUpMsg(UserTopUpMessageRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.AddTopUpMessage(request, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>管理员填写充值备注的处理结果。</summary>
|
||||
public async Task<ApiResult> UpdateUserTopUpMsg(UserTopUpResultRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
await users.UpdateTopUpMessage(request, cancellationToken);
|
||||
return ApiResult.Ok();
|
||||
}
|
||||
|
||||
/// <summary>分页查询充值备注。</summary>
|
||||
public Task<UserPage<UserTopUpMessageEntity>> GetUserTopUpMsg(UserSearchRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.TopUpMessages(request, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>管理员维护代理充值二维码。</summary>
|
||||
public async Task<ApiResult> UpdateTopUpQrcode(UserTopUpQrcodeRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
await users.UpdateTopUpQrcode(request, cancellationToken);
|
||||
return ApiResult.Ok();
|
||||
}
|
||||
|
||||
/// <summary>获取代理充值二维码。</summary>
|
||||
public Task<string?> GetTopUpQrcode(string agentCode, CancellationToken cancellationToken)
|
||||
{
|
||||
return users.GetTopUpQrcode(agentCode, cancellationToken);
|
||||
}
|
||||
|
||||
/// <summary>使用当前登录用户的积分为商铺续费。</summary>
|
||||
[HttpPost]
|
||||
public Task<ShopRenewResponse> ShopRenew([FromBody] ShopRenewRequest request, CancellationToken cancellationToken)
|
||||
public Task<ShopRenewResponse> ShopRenew(ShopRenewRequest request, CancellationToken cancellationToken)
|
||||
{
|
||||
if (!_currentUser.IsAuthenticated || string.IsNullOrWhiteSpace(_currentUser.UserName))
|
||||
if (!currentUser.IsAuthenticated || string.IsNullOrWhiteSpace(currentUser.UserName))
|
||||
{
|
||||
throw new UnauthorizedAccessException();
|
||||
|
||||
return _mediator.Send(new ShopRenewCommand(
|
||||
_currentUser.UserName, request.ShopId, request.RenewDuration, request.Remark), cancellationToken);
|
||||
}
|
||||
return mediator.Send(new ShopRenewCommand(currentUser.UserName, request.ShopId, request.RenewDuration, request.Remark), cancellationToken);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user