1
0

UserController.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. using Admin.Core.Attributes;
  2. using Admin.Core.Common.Auth;
  3. using Admin.Core.Common.Configs;
  4. using Admin.Core.Common.Helpers;
  5. using Admin.Core.Common.Input;
  6. using Admin.Core.Common.Output;
  7. using Admin.Core.Model.Admin;
  8. using Admin.Core.Service.Admin.User;
  9. using Admin.Core.Service.Admin.User.Input;
  10. using Microsoft.AspNetCore.Http;
  11. using Microsoft.AspNetCore.Mvc;
  12. using Microsoft.Extensions.Options;
  13. using System.Threading.Tasks;
  14. namespace Admin.Core.Controllers.Admin
  15. {
  16. /// <summary>
  17. /// 用户管理
  18. /// </summary>
  19. public class UserController : AreaController
  20. {
  21. private readonly IUser _user;
  22. private readonly UploadConfig _uploadConfig;
  23. private readonly UploadHelper _uploadHelper;
  24. private readonly IUserService _userService;
  25. public UserController(
  26. IUser user,
  27. IOptionsMonitor<UploadConfig> uploadConfig,
  28. UploadHelper uploadHelper,
  29. IUserService userService
  30. )
  31. {
  32. _user = user;
  33. _uploadConfig = uploadConfig.CurrentValue;
  34. _uploadHelper = uploadHelper;
  35. _userService = userService;
  36. }
  37. /// <summary>
  38. /// 查询用户基本信息
  39. /// </summary>
  40. /// <returns></returns>
  41. [HttpGet]
  42. public async Task<IResponseOutput> GetBasic()
  43. {
  44. return await _userService.GetBasicAsync();
  45. }
  46. /// <summary>
  47. /// 查询单条用户
  48. /// </summary>
  49. /// <param name="id"></param>
  50. /// <returns></returns>
  51. [HttpGet]
  52. public async Task<IResponseOutput> Get(long id)
  53. {
  54. return await _userService.GetAsync(id);
  55. }
  56. /// <summary>
  57. /// 查询下拉数据
  58. /// </summary>
  59. /// <param name="id"></param>
  60. /// <returns></returns>
  61. [HttpGet]
  62. public async Task<IResponseOutput> GetSelect()
  63. {
  64. return await _userService.GetSelectAsync();
  65. }
  66. /// <summary>
  67. /// 查询分页用户
  68. /// </summary>
  69. /// <param name="input"></param>
  70. /// <returns></returns>
  71. [HttpPost]
  72. //[ResponseCache(Duration = 60)]
  73. public async Task<IResponseOutput> GetPage(PageInput<UserEntity> input)
  74. {
  75. return await _userService.PageAsync(input);
  76. }
  77. /// <summary>
  78. /// 新增用户
  79. /// </summary>
  80. /// <param name="input"></param>
  81. /// <returns></returns>
  82. [HttpPost]
  83. public async Task<IResponseOutput> Add(UserAddInput input)
  84. {
  85. return await _userService.AddAsync(input);
  86. }
  87. /// <summary>
  88. /// 修改用户
  89. /// </summary>
  90. /// <param name="input"></param>
  91. /// <returns></returns>
  92. [HttpPut]
  93. public async Task<IResponseOutput> Update(UserUpdateInput input)
  94. {
  95. return await _userService.UpdateAsync(input);
  96. }
  97. /// <summary>
  98. /// 删除用户
  99. /// </summary>
  100. /// <param name="id"></param>
  101. /// <returns></returns>
  102. [HttpDelete]
  103. public async Task<IResponseOutput> SoftDelete(long id)
  104. {
  105. return await _userService.SoftDeleteAsync(id);
  106. }
  107. /// <summary>
  108. /// 批量删除用户
  109. /// </summary>
  110. /// <param name="ids"></param>
  111. /// <returns></returns>
  112. [HttpPut]
  113. public async Task<IResponseOutput> BatchSoftDelete(long[] ids)
  114. {
  115. return await _userService.BatchSoftDeleteAsync(ids);
  116. }
  117. /// <summary>
  118. /// 更新用户密码
  119. /// </summary>
  120. /// <param name="input"></param>
  121. /// <returns></returns>
  122. [HttpPut]
  123. public async Task<IResponseOutput> ChangePassword(UserChangePasswordInput input)
  124. {
  125. return await _userService.ChangePasswordAsync(input);
  126. }
  127. /// <summary>
  128. /// 更新用户基本信息
  129. /// </summary>
  130. /// <param name="input"></param>
  131. /// <returns></returns>
  132. [HttpPut]
  133. public async Task<IResponseOutput> UpdateBasic(UserUpdateBasicInput input)
  134. {
  135. return await _userService.UpdateBasicAsync(input);
  136. }
  137. /// <summary>
  138. /// 上传头像
  139. /// </summary>
  140. /// <param name="file"></param>
  141. /// <returns></returns>
  142. [HttpPost]
  143. [Login]
  144. public async Task<IResponseOutput> AvatarUpload([FromForm] IFormFile file)
  145. {
  146. var config = _uploadConfig.Avatar;
  147. var res = await _uploadHelper.UploadAsync(file, config, new { _user.Id });
  148. if (res.Success)
  149. {
  150. return ResponseOutput.Ok(res.Data.FileRelativePath);
  151. }
  152. return ResponseOutput.NotOk(res.Msg ?? "上传失败!");
  153. }
  154. }
  155. }