SysDeptController.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using Attribute;
  2. using Common;
  3. using Dto;
  4. using Enums;
  5. using Extensions;
  6. using Filters;
  7. using Infrastructure;
  8. using Microsoft.AspNetCore.Mvc;
  9. using Middleware;
  10. using Model;
  11. using Services;
  12. using System.Collections;
  13. namespace Controllers
  14. {
  15. /// <summary>
  16. /// 部门
  17. /// </summary>
  18. [Verify]
  19. [Route("system/dept")]
  20. [ApiExplorerSettings(GroupName = "sys")]
  21. public class SysDeptController : BaseController
  22. {
  23. public ISysDeptService DeptService;
  24. public ISysUserService UserService;
  25. public SysDeptController(ISysDeptService deptService
  26. , ISysUserService userService)
  27. {
  28. DeptService = deptService;
  29. UserService = userService;
  30. }
  31. /// <summary>
  32. /// 获取部门列表
  33. /// </summary>
  34. /// <returns></returns>
  35. [ActionPermissionFilter(Permission = "system:dept:list")]
  36. [HttpGet("list")]
  37. public IActionResult List([FromQuery] SysDeptQueryDto dept)
  38. {
  39. return SUCCESS(DeptService.GetSysDepts(dept), TIME_FORMAT_FULL);
  40. }
  41. /// <summary>
  42. /// 查询部门列表(排除节点)
  43. /// </summary>
  44. /// <param name="deptId"></param>
  45. /// <returns></returns>
  46. [HttpGet("list/exclude/{deptId}")]
  47. public IActionResult ExcludeChild(long deptId)
  48. {
  49. var depts = DeptService.GetSysDepts(new SysDeptQueryDto());
  50. // for (int i = 0; i < depts.Count; i++)
  51. // {
  52. // SysDept d = depts[i];
  53. // long[] deptIds = Tools.SpitLongArrary(d.Ancestors);
  54. // if (d.DeptId == deptId || ((IList)deptIds).Contains(deptId))
  55. // {
  56. // depts.Remove(d);
  57. // }
  58. // }
  59. return SUCCESS(depts);
  60. }
  61. /// <summary>
  62. /// 获取部门下拉树列表
  63. /// </summary>
  64. /// <param name="dept"></param>
  65. /// <returns></returns>
  66. [HttpGet("treeselect")]
  67. public IActionResult TreeSelect(SysDeptQueryDto dept)
  68. {
  69. var depts = DeptService.GetSysDepts(dept);
  70. return SUCCESS(DeptService.BuildDeptTreeSelect(depts), TIME_FORMAT_FULL);
  71. }
  72. /// <summary>
  73. /// 获取角色部门信息
  74. /// 加载对应角色部门列表树
  75. /// </summary>
  76. /// <param name="roleId"></param>
  77. /// <returns></returns>
  78. [HttpGet("roleDeptTreeselect/{roleId}")]
  79. public IActionResult RoleMenuTreeselect(int roleId)
  80. {
  81. var depts = DeptService.GetSysDepts(new SysDeptQueryDto());
  82. var checkedKeys = DeptService.SelectRoleDepts(roleId);
  83. return SUCCESS(new
  84. {
  85. checkedKeys,
  86. depts = DeptService.BuildDeptTreeSelect(depts),
  87. });
  88. }
  89. /// <summary>
  90. /// 根据部门编号获取详细信息
  91. /// </summary>
  92. /// <returns></returns>
  93. [HttpGet("{deptId}")]
  94. [ActionPermissionFilter(Permission = "system:dept:query")]
  95. public IActionResult GetInfo(long deptId)
  96. {
  97. var info = DeptService.GetFirst(f => f.DeptId == deptId);
  98. return SUCCESS(info);
  99. }
  100. /// <summary>
  101. /// 新增部门
  102. /// </summary>
  103. /// <param name="dept"></param>
  104. /// <returns></returns>
  105. [HttpPost]
  106. [Log(Title = "部门管理", BusinessType = BusinessType.INSERT)]
  107. [ActionPermissionFilter(Permission = "system:dept:add")]
  108. public IActionResult Add([FromBody] SysDept dept)
  109. {
  110. if (UserConstants.NOT_UNIQUE.Equals(DeptService.CheckDeptNameUnique(dept)))
  111. {
  112. return ToResponse(ResultCode.CUSTOM_ERROR, $"新增部门{dept.Name}失败,部门名称已存在");
  113. }
  114. dept.CreateBy = HttpContext.GetName();
  115. return ToResponse(DeptService.InsertDept(dept));
  116. }
  117. /// <summary>
  118. /// 修改部门
  119. /// </summary>
  120. /// <param name="dept"></param>
  121. /// <returns></returns>
  122. [HttpPut]
  123. [Log(Title = "部门管理", BusinessType = BusinessType.UPDATE)]
  124. [ActionPermissionFilter(Permission = "system:dept:update")]
  125. public IActionResult Update([FromBody] SysDept dept)
  126. {
  127. if (UserConstants.NOT_UNIQUE.Equals(DeptService.CheckDeptNameUnique(dept)))
  128. {
  129. return ToResponse(ResultCode.CUSTOM_ERROR, $"修改部门{dept.Name}失败,部门名称已存在");
  130. }
  131. else if (dept.ParentId.Equals(dept.DeptId))
  132. {
  133. return ToResponse(ResultCode.CUSTOM_ERROR, $"修改部门{dept.Name}失败,上级部门不能是自己");
  134. }
  135. dept.UpdateBy = HttpContext.GetName();
  136. return ToResponse(DeptService.UpdateDept(dept));
  137. }
  138. /// <summary>
  139. /// 删除部门
  140. /// </summary>
  141. /// <returns></returns>
  142. [HttpDelete("{deptId}")]
  143. [ActionPermissionFilter(Permission = "system:dept:remove")]
  144. [Log(Title = "部门管理", BusinessType = BusinessType.DELETE)]
  145. public IActionResult Remove(long deptId)
  146. {
  147. if (DeptService.Queryable().Count(it => it.ParentId == deptId && it.DelFlag == "0") > 0)
  148. {
  149. return ToResponse(ResultCode.CUSTOM_ERROR, $"存在下级部门,不允许删除");
  150. }
  151. if (UserService.Queryable().Count(it => it.DeptId == deptId && it.DelFlag == "0") > 0)
  152. {
  153. return ToResponse(ResultCode.CUSTOM_ERROR, $"部门存在用户,不允许删除");
  154. }
  155. return SUCCESS(DeptService.Delete(deptId));
  156. }
  157. }
  158. }