using NetAdmin.Domain.Dto.Dependency;
using NetAdmin.Domain.Dto.Sys.User;
using NetAdmin.Domain.Dto.Sys.UserProfile;
using NetAdmin.Host.Attributes;
using NetAdmin.Host.Controllers;
using NetAdmin.SysComponent.Application.Modules.Sys;
using NetAdmin.SysComponent.Application.Services.Sys.Dependency;
using NetAdmin.SysComponent.Cache.Sys.Dependency;
namespace NetAdmin.SysComponent.Host.Controllers.Sys;
///
/// 用户服务
///
[ApiDescriptionSettings(nameof(Sys), Module = nameof(Sys))]
public sealed class UserController(IUserCache cache, IConfigCache configCache)
: ControllerBase(cache), IUserModule
{
///
/// 批量删除用户
///
[NonAction]
[Transaction]
public Task BulkDeleteAsync(BulkReq req)
{
return Cache.BulkDeleteAsync(req);
}
///
/// 检查手机号码是否可用
///
[AllowAnonymous]
public Task CheckMobileAvailableAsync(CheckMobileAvailableReq req)
{
return Cache.CheckMobileAvailableAsync(req);
}
///
/// 检查用户名是否可用
///
[AllowAnonymous]
public Task CheckUserNameAvailableAsync(CheckUserNameAvailableReq req)
{
return Cache.CheckUserNameAvailableAsync(req);
}
///
/// 用户计数
///
public Task CountAsync(QueryReq req)
{
return Cache.CountAsync(req);
}
///
/// 创建用户
///
[Transaction]
public Task CreateAsync(CreateUserReq req)
{
return Cache.CreateAsync(req);
}
///
/// 删除用户
///
[Transaction]
public Task DeleteAsync(DelReq req)
{
return Cache.DeleteAsync(req);
}
///
/// 编辑用户
///
[Transaction]
public Task EditAsync(EditUserReq req)
{
return Cache.EditAsync(req);
}
///
/// 用户是否存在
///
[NonAction]
public Task ExistAsync(QueryReq req)
{
return Cache.ExistAsync(req);
}
///
/// 获取单个用户
///
public Task GetAsync(QueryUserReq req)
{
return Cache.GetAsync(req);
}
///
/// 密码登录
///
[AllowAnonymous]
[Transaction]
public async Task LoginByPwdAsync(LoginByPwdReq req)
{
var ret = await Cache.LoginByPwdAsync(req).ConfigureAwait(false);
ret.SetToRspHeader();
return ret;
}
///
/// 短信登录
///
[AllowAnonymous]
[Transaction]
public async Task LoginBySmsAsync(LoginBySmsReq req)
{
var ret = await Cache.LoginBySmsAsync(req).ConfigureAwait(false);
ret.SetToRspHeader();
return ret;
}
///
/// 分页查询用户
///
public Task> PagedQueryAsync(PagedQueryReq req)
{
return Cache.PagedQueryAsync(req);
}
///
/// 查询用户
///
public Task> QueryAsync(QueryReq req)
{
return Cache.QueryAsync(req);
}
///
/// 查询用户档案
///
public Task> QueryProfileAsync(QueryReq req)
{
return Cache.QueryProfileAsync(req);
}
///
/// 注册用户
///
[AllowAnonymous]
[Transaction]
public async Task RegisterAsync(RegisterUserReq req)
{
var config = await configCache.GetLatestConfigAsync().ConfigureAwait(false);
return await Cache.RegisterAsync(req with {
DeptId = config.UserRegisterDeptId
, RoleIds = new[] { config.UserRegisterRoleId }
, Profile = new CreateUserProfileReq()
, Enabled = !config.UserRegisterConfirm
, Mobile = req.VerifySmsCodeReq.DestDevice
})
.ConfigureAwait(false);
}
///
/// 重设密码
///
[AllowAnonymous]
[Transaction]
public Task ResetPasswordAsync(ResetPasswordReq req)
{
return Cache.ResetPasswordAsync(req);
}
///
/// 设置用户头像
///
[Transaction]
public Task SetAvatarAsync(SetAvatarReq req)
{
return Cache.SetAvatarAsync(req);
}
///
/// 设置邮箱
///
[Transaction]
public Task SetEmailAsync(SetEmailReq req)
{
return Cache.SetEmailAsync(req);
}
///
/// 启用/禁用用户
///
[Transaction]
public Task SetEnabledAsync(SetUserEnabledReq req)
{
return Cache.SetEnabledAsync(req);
}
///
/// 设置手机号码
///
[Transaction]
public Task SetMobileAsync(SetMobileReq req)
{
return Cache.SetMobileAsync(req);
}
///
/// 设置密码
///
[Transaction]
public Task SetPasswordAsync(SetPasswordReq req)
{
return Cache.SetPasswordAsync(req);
}
///
/// 当前用户信息
///
public Task UserInfoAsync()
{
return Cache.UserInfoAsync();
}
}