using Admin.Core.Attributes;
using Admin.Core.Common.Auth;
using Admin.Core.Common.Configs;
using Admin.Core.Common.Helpers;
using Admin.Core.Common.Input;
using Admin.Core.Common.Output;
using Admin.Core.Model.Admin;
using Admin.Core.Service.Admin.User;
using Admin.Core.Service.Admin.User.Input;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using System.Threading.Tasks;
namespace Admin.Core.Controllers.Admin
{
///
/// 用户管理
///
public class UserController : AreaController
{
private readonly IUser _user;
private readonly UploadConfig _uploadConfig;
private readonly UploadHelper _uploadHelper;
private readonly IUserService _userService;
public UserController(
IUser user,
IOptionsMonitor uploadConfig,
UploadHelper uploadHelper,
IUserService userService
)
{
_user = user;
_uploadConfig = uploadConfig.CurrentValue;
_uploadHelper = uploadHelper;
_userService = userService;
}
///
/// 查询用户基本信息
///
///
[HttpGet]
public async Task GetBasic()
{
return await _userService.GetBasicAsync();
}
///
/// 查询单条用户
///
///
///
[HttpGet]
public async Task Get(long id)
{
return await _userService.GetAsync(id);
}
///
/// 查询下拉数据
///
///
///
[HttpGet]
public async Task GetSelect()
{
return await _userService.GetSelectAsync();
}
///
/// 查询分页用户
///
///
///
[HttpPost]
//[ResponseCache(Duration = 60)]
public async Task GetPage(PageInput input)
{
return await _userService.PageAsync(input);
}
///
/// 新增用户
///
///
///
[HttpPost]
public async Task Add(UserAddInput input)
{
return await _userService.AddAsync(input);
}
///
/// 修改用户
///
///
///
[HttpPut]
public async Task Update(UserUpdateInput input)
{
return await _userService.UpdateAsync(input);
}
///
/// 删除用户
///
///
///
[HttpDelete]
public async Task SoftDelete(long id)
{
return await _userService.SoftDeleteAsync(id);
}
///
/// 批量删除用户
///
///
///
[HttpPut]
public async Task BatchSoftDelete(long[] ids)
{
return await _userService.BatchSoftDeleteAsync(ids);
}
///
/// 更新用户密码
///
///
///
[HttpPut]
public async Task ChangePassword(UserChangePasswordInput input)
{
return await _userService.ChangePasswordAsync(input);
}
///
/// 更新用户基本信息
///
///
///
[HttpPut]
public async Task UpdateBasic(UserUpdateBasicInput input)
{
return await _userService.UpdateBasicAsync(input);
}
///
/// 上传头像
///
///
///
[HttpPost]
[Login]
public async Task AvatarUpload([FromForm] IFormFile file)
{
var config = _uploadConfig.Avatar;
var res = await _uploadHelper.UploadAsync(file, config, new { _user.Id });
if (res.Success)
{
return ResponseOutput.Ok(res.Data.FileRelativePath);
}
return ResponseOutput.NotOk(res.Msg ?? "上传失败!");
}
}
}