SysDeptController.cs 5.8 KB

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