MiddleController.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. using System.Collections.Generic;
  2. using System.Threading.Tasks;
  3. using GxPress.Auth;
  4. using GxPress.Repository.Interface;
  5. using GxPress.Request.App.Middle;
  6. using GxPress.Request.Notice;
  7. using GxPress.Request.NoticeFolder;
  8. using GxPress.Result.App.Middle;
  9. using GxPress.Service.Interface.Middle;
  10. using Microsoft.AspNetCore.Authorization;
  11. using Microsoft.AspNetCore.Mvc;
  12. namespace GxPress.Api.AppControllers
  13. {
  14. /// <summary>
  15. /// 中间件
  16. /// </summary>
  17. [Route("api/app/middle")]
  18. [ApiController]
  19. [Authorize]
  20. public class MiddleController : ControllerBase
  21. {
  22. public readonly IMiddleService _middleService;
  23. public readonly ILoginContext _loginContext;
  24. private readonly IFolderUserRepository _folderUserRepository;
  25. public MiddleController(IMiddleService middleService, ILoginContext loginContext,
  26. IFolderUserRepository folderUserRepository)
  27. {
  28. _middleService = middleService;
  29. _loginContext = loginContext;
  30. _folderUserRepository = folderUserRepository;
  31. }
  32. /// <summary>
  33. /// 排序
  34. /// </summary>
  35. /// <param name="request"></param>
  36. /// <returns></returns>
  37. [HttpPost("sort")]
  38. public async Task<bool> MiddleSort(MiddleSortRequest request)
  39. {
  40. return await _middleService.MiddleSortAsync(request);
  41. }
  42. /// <summary>
  43. /// 创建文件夹
  44. /// </summary>
  45. /// <param name="request"></param>
  46. /// <returns></returns>
  47. [HttpPut("add-folder")]
  48. public async Task<bool> Insert(NoticeFolderInRequest request)
  49. {
  50. request.UserId = _loginContext.AccountId;
  51. var middleInsertRequest = new MiddleInsertRequest
  52. {
  53. FolderName = request.FolderName,
  54. FolderType = request.TypeId,
  55. ParentId = request.ParentId,
  56. UserId = request.UserId,
  57. RoleId = request.RoleId,
  58. UserIds = request.UserIds,
  59. UserMiddles = request.UserMiddles
  60. };
  61. return await _middleService.InsertAsync(middleInsertRequest) > 0;
  62. }
  63. /// <summary>
  64. /// 设置置顶
  65. /// </summary>
  66. /// <param name="id"></param>
  67. /// <returns></returns>
  68. [HttpPut("{id}")]
  69. public async Task<bool> SetTop(int id)
  70. {
  71. return await _middleService.SetTopAsync(id);
  72. }
  73. /// <summary>
  74. /// 删除记录
  75. /// </summary>
  76. /// <param name="request"></param>
  77. /// <returns></returns>
  78. [HttpPost("delete")]
  79. public async Task<bool> Delete(NoticeDeRequest request)
  80. {
  81. var userId = _loginContext.AccountId;
  82. request.UserId = userId;
  83. return await _middleService.DeleteAsync(request);
  84. }
  85. /// <summary>
  86. /// 恢复删除
  87. /// </summary>
  88. /// <param name="request"></param>
  89. /// <returns></returns>
  90. [HttpPost("recover-delete")]
  91. public async Task<bool> RecoverDelete(NoticeDeRequest request)
  92. {
  93. return await _middleService.RecoverDeleteAsync(request);
  94. }
  95. /// <summary>
  96. /// 恢复全部
  97. /// </summary>
  98. /// <param name="folderType">文件夹类型 1 通知 2话题 3 收藏 4笔记 5 普通站内信 6匿名站内信 7小组</param>
  99. /// <returns></returns>
  100. [HttpPut("recover-all/{folderType}")]
  101. public async Task<bool> RecoverAllAsync(int folderType)
  102. {
  103. return await _middleService.RecoverAllAsync(folderType, _loginContext.AccountId);
  104. }
  105. /// <summary>
  106. /// 删除全部
  107. /// </summary>
  108. /// <param name="folderType">文件夹类型 1 通知 2话题 3 收藏 4笔记 5 普通站内信 6匿名站内信 7小组</param>
  109. /// <returns></returns>
  110. [HttpDelete("delete-all/{folderType}")]
  111. public async Task<bool> DeleteAllAsync(int folderType)
  112. {
  113. return await _middleService.DeleteAllAsync(folderType, _loginContext.AccountId);
  114. }
  115. /// <summary>
  116. /// 移动
  117. /// </summary>
  118. /// <param name="request"></param>
  119. /// <returns></returns>
  120. [HttpPost("move")]
  121. public async Task<bool> SetMove(MiddleMoveRequest request)
  122. {
  123. return await _middleService.SetMove(request);
  124. }
  125. /// <summary>
  126. /// 修改文件夹名称
  127. /// </summary>
  128. /// <param name="request"></param>
  129. /// <returns></returns>
  130. [HttpPost("update")]
  131. public async Task<bool> UpdateFolderName(MiddleFolderNameRequest request)
  132. {
  133. return await _middleService.UpdateFolderNameAsync(request);
  134. }
  135. /// <summary>
  136. /// 查询文件夹
  137. /// </summary>
  138. /// <param name="request"></param>
  139. /// <returns></returns>
  140. [HttpPost("search-folder")]
  141. public async Task<List<MiddleSearchFolderResult>> SearchFolderAsync(MiddleSearchFolderRequest request)
  142. {
  143. request.UserId = _loginContext.AccountId;
  144. return await _middleService.SearchFolderAsync(request);
  145. }
  146. /// <summary>
  147. /// 获取话题 笔记共享范围文件夹
  148. /// </summary>
  149. /// <param name="request"></param>
  150. /// <returns></returns>
  151. [HttpPost("search-note-folder")]
  152. public async Task<List<MiddleSearchFolderResult>> SearchNoteFolderAsync(MiddleSearchFolderRequest request)
  153. {
  154. request.UserId = _loginContext.AccountId;
  155. return await _middleService.SearchNoteFolderAsync(request);
  156. }
  157. /// <summary>
  158. /// 修改文件夹名称或权限
  159. /// </summary>
  160. /// <param name="request"></param>
  161. /// <returns></returns>
  162. [HttpPut("update-role")]
  163. public async Task<bool> UpdateFolderRole(MiddleUpdateFolderRoleRequest request)
  164. {
  165. return await _middleService.UpdateFolderRoleAsync(request);
  166. }
  167. /// <summary>
  168. /// 根据文件夹ID查询文件夹信息
  169. /// </summary>
  170. /// <param name="middleId"></param>
  171. /// <returns></returns>
  172. [HttpGet("find-folder-info/{middleId}")]
  173. public async Task<MiddleFolderInfoResult> GetFolderUser(int middleId)
  174. {
  175. return await _middleService.GetFolderInfo(middleId);
  176. }
  177. /// <summary>
  178. /// 获取默认的共享文件夹范围
  179. /// </summary>
  180. /// <returns></returns>
  181. [HttpGet("enjoy-default/{folderType}")]
  182. public async Task<MiddleDefaultResult> GetEnjoyDefault(int folderType)
  183. {
  184. return await _middleService.GetEnjoyDefaultAsync(_loginContext.AccountId,folderType);
  185. }
  186. }
  187. }