SysPostController.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. using Microsoft.AspNetCore.Mvc;
  2. using SqlSugar;
  3. using ZR.Model.System;
  4. using ZR.Repository;
  5. using ZR.ServiceCore.Model.Dto;
  6. namespace ZR.Admin.WebApi.Controllers.System
  7. {
  8. /// <summary>
  9. /// 岗位管理
  10. /// </summary>
  11. [Route("system/post")]
  12. [ApiExplorerSettings(GroupName = "sys")]
  13. public class SysPostController : BaseController
  14. {
  15. private readonly ISysPostService PostService;
  16. public SysPostController(ISysPostService postService)
  17. {
  18. PostService = postService;
  19. }
  20. /// <summary>
  21. /// 岗位列表查询
  22. /// </summary>
  23. /// <returns></returns>
  24. [HttpGet("list")]
  25. [ActionPermissionFilter(Permission = "system:post:list")]
  26. public IActionResult List([FromQuery] SysPostQueryDto dto)
  27. {
  28. var predicate = Expressionable.Create<SysPost>();
  29. predicate = predicate.AndIF(dto.Status.IfNotEmpty(), it => it.Status == dto.Status);
  30. predicate = predicate.AndIF(dto.PostName.IfNotEmpty(), it => it.PostName.Contains(dto.PostName));
  31. predicate = predicate.AndIF(dto.PostCode.IfNotEmpty(), it => it.PostCode.Contains(dto.PostCode));
  32. var list = PostService.Queryable()
  33. .Where(predicate.ToExpression())
  34. .Select((it) => new SysPostDto
  35. {
  36. UserNum = SqlFunc.Subqueryable<SysUserPost>().Where(f => f.PostId == it.PostId).Sum(f => f.UserId)
  37. }, true)
  38. .ToPage(dto);
  39. return SUCCESS(list);
  40. }
  41. /// <summary>
  42. /// 岗位查询
  43. /// </summary>
  44. /// <param name="postId"></param>
  45. /// <returns></returns>
  46. [HttpGet("{postId}")]
  47. [ActionPermissionFilter(Permission = "system:post:query")]
  48. public IActionResult Query(long postId = 0)
  49. {
  50. return SUCCESS(PostService.GetId(postId));
  51. }
  52. /// <summary>
  53. /// 岗位管理
  54. /// </summary>
  55. /// <param name="post"></param>
  56. /// <returns></returns>
  57. [HttpPost]
  58. [ActionPermissionFilter(Permission = "system:post:add")]
  59. [Log(Title = "岗位添加", BusinessType = BusinessType.INSERT)]
  60. public IActionResult Add([FromBody] SysPost post)
  61. {
  62. if (UserConstants.NOT_UNIQUE.Equals(PostService.CheckPostNameUnique(post)))
  63. {
  64. throw new CustomException($"添加岗位{post.PostName}失败,岗位名已存在");
  65. }
  66. if (UserConstants.NOT_UNIQUE.Equals(PostService.CheckPostCodeUnique(post)))
  67. {
  68. throw new CustomException($"添加岗位{post.PostName}失败,岗位编码已存在");
  69. }
  70. post.ToCreate(HttpContext);
  71. return ToResponse(PostService.Add(post));
  72. }
  73. /// <summary>
  74. /// 岗位管理
  75. /// </summary>
  76. /// <param name="post"></param>
  77. /// <returns></returns>
  78. [HttpPut]
  79. [ActionPermissionFilter(Permission = "system:post:edit")]
  80. [Log(Title = "岗位编辑", BusinessType = BusinessType.UPDATE)]
  81. public IActionResult Update([FromBody] SysPost post)
  82. {
  83. if (UserConstants.NOT_UNIQUE.Equals(PostService.CheckPostNameUnique(post)))
  84. {
  85. throw new CustomException($"修改岗位{post.PostName}失败,岗位名已存在");
  86. }
  87. if (UserConstants.NOT_UNIQUE.Equals(PostService.CheckPostCodeUnique(post)))
  88. {
  89. throw new CustomException($"修改岗位{post.PostName}失败,岗位编码已存在");
  90. }
  91. post.ToUpdate(HttpContext);
  92. return ToResponse(PostService.Update(post));
  93. }
  94. /// <summary>
  95. /// 岗位删除
  96. /// </summary>
  97. /// <param name="id"></param>
  98. /// <returns></returns>
  99. [HttpDelete("{id}")]
  100. [ActionPermissionFilter(Permission = "system:post:remove")]
  101. [Log(Title = "岗位删除", BusinessType = BusinessType.DELETE)]
  102. public IActionResult Delete(string id)
  103. {
  104. int[] ids = Tools.SpitIntArrary(id);
  105. return ToResponse(PostService.Delete(ids));
  106. }
  107. /// <summary>
  108. /// 获取岗位选择框列表
  109. /// </summary>
  110. [HttpGet("optionselect")]
  111. public IActionResult Optionselect()
  112. {
  113. List<SysPost> posts = PostService.GetAll();
  114. return SUCCESS(posts);
  115. }
  116. /// <summary>
  117. /// 岗位导出
  118. /// </summary>
  119. /// <returns></returns>
  120. [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "岗位导出")]
  121. [HttpGet("export")]
  122. [ActionPermissionFilter(Permission = "system:post:export")]
  123. public IActionResult Export()
  124. {
  125. var list = PostService.GetAll();
  126. var result = ExportExcelMini(list, "post", "岗位列表");
  127. return ExportExcel(result.Item2, result.Item1);
  128. }
  129. }
  130. }