using System.Threading.Tasks; using Admin.Core.Service.Admin.User; using Admin.Core.Common.Output; using Admin.Core.Common.Input; using Admin.Core.Model.Admin; using Admin.Core.Service.Admin.User.Input; using Microsoft.AspNetCore.Mvc; using Admin.Core.Attributes; using Microsoft.AspNetCore.Http; using Admin.Core.Common.Auth; using Admin.Core.Common.Configs; using Admin.Core.Common.Helpers; using Microsoft.Extensions.Options; namespace Admin.Core.Controllers.Admin { /// /// 用户管理 /// public class UserController : AreaController { private readonly IUser _user; private readonly UploadConfig _uploadConfig; private readonly UploadHelper _uploadHelper; private readonly IUserService _userServices; public UserController( IUser user, IOptionsMonitor uploadConfig, UploadHelper uploadHelper, IUserService userServices ) { _user = user; _uploadConfig = uploadConfig.CurrentValue; _uploadHelper = uploadHelper; _userServices = userServices; } /// /// 查询用户基本信息 /// /// [HttpGet] public async Task GetBasic() { return await _userServices.GetBasicAsync(); } /// /// 查询单条用户 /// /// /// [HttpGet] public async Task Get(long id) { return await _userServices.GetAsync(id); } /// /// 查询分页用户 /// /// /// [HttpPost] //[ResponseCache(Duration = 60)] public async Task GetPage(PageInput input) { return await _userServices.PageAsync(input); } /// /// 新增用户 /// /// /// [HttpPost] public async Task Add(UserAddInput input) { return await _userServices.AddAsync(input); } /// /// 修改用户 /// /// /// [HttpPut] public async Task Update(UserUpdateInput input) { return await _userServices.UpdateAsync(input); } /// /// 删除用户 /// /// /// [HttpDelete] public async Task SoftDelete(long id) { return await _userServices.SoftDeleteAsync(id); } /// /// 批量删除用户 /// /// /// [HttpPut] public async Task BatchSoftDelete(long[] ids) { return await _userServices.BatchSoftDeleteAsync(ids); } /// /// 更新用户密码 /// /// /// [HttpPut] public async Task ChangePassword(UserChangePasswordInput input) { return await _userServices.ChangePasswordAsync(input); } /// /// 更新用户基本信息 /// /// /// [HttpPut] public async Task UpdateBasic(UserUpdateBasicInput input) { return await _userServices.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("上传失败!"); } } }