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 ?? "上传失败!"); } } }