DepartmentService.Delete.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using GxPress.Entity;
  7. using SqlKata;
  8. namespace GxPress.Service.Implement.Department
  9. {
  10. public partial class DepartmentService
  11. {
  12. /// <summary>
  13. /// 删除部门
  14. /// </summary>
  15. /// <param name="id"></param>
  16. /// <returns></returns>
  17. public async Task<bool> DeleteAsync(int id)
  18. {
  19. var departments = new List<Entity.Department>();
  20. var department = await _departmentRepository.GetAsync(id);
  21. departments.Add(department);
  22. //获取下级部门
  23. departments = await _departmentRepository.GetDepartmentById(id, departments);
  24. foreach (var item in departments)
  25. {
  26. var users = await _userRepository.GetUserByDepartmentIdAsync(item.Id);
  27. var enumerable = users as User[] ?? users.ToArray();
  28. if (enumerable.Any())
  29. {
  30. await _userService.DeleteUsersAsync(enumerable.Select(n => n.Id));
  31. }
  32. }
  33. //删除部门
  34. Query q = new Query();
  35. q.WhereIn(nameof(department.Id), departments.Select(n => n.Id));
  36. return await _departmentRepository.DeleteAsync(q);
  37. //return true;
  38. }
  39. }
  40. }