SysPostController.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using Microsoft.AspNetCore.Mvc;
  2. using SqlSugar;
  3. using System.Collections.Generic;
  4. using ZR.Admin.WebApi.Filters;
  5. using ZR.Model;
  6. using ZR.Model.System;
  7. using Infrastructure.Extensions;
  8. using Infrastructure.Attribute;
  9. using Infrastructure.Enums;
  10. using Infrastructure;
  11. using ZR.Service.System.IService;
  12. using ZR.Common;
  13. using ZR.Admin.WebApi.Extensions;
  14. namespace ZR.Admin.WebApi.Controllers.System
  15. {
  16. /// <summary>
  17. /// 岗位管理
  18. /// </summary>
  19. [Verify]
  20. [Route("system/post")]
  21. public class SysPostController : BaseController
  22. {
  23. private readonly ISysPostService PostService;
  24. public SysPostController(ISysPostService postService)
  25. {
  26. PostService = postService;
  27. }
  28. /// <summary>
  29. /// 岗位列表查询
  30. /// </summary>
  31. /// <returns></returns>
  32. [HttpGet("list")]
  33. [ActionPermissionFilter(Permission = "system:post:list")]
  34. public IActionResult List([FromQuery] SysPost post, [FromQuery] PagerInfo pagerInfo)
  35. {
  36. var predicate = Expressionable.Create<SysPost>();
  37. predicate = predicate.AndIF(post.Status.IfNotEmpty(), it => it.Status == post.Status);
  38. var list = PostService.GetPages(predicate.ToExpression(), pagerInfo, s => new { s.PostSort });
  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.Create_by = HttpContext.GetName();
  71. return ToResponse(ToJson(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.Update_by = HttpContext.GetName();
  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(ToJson(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. }