using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using GxPress.Entity; using GxPress.Result.Department; using SqlKata; namespace GxPress.Service.Implement.Department { public partial class DepartmentService { /// /// 删除部门 /// /// /// public async Task DeleteAsync(int id) { var departments = new List(); var department = await _departmentRepository.GetAsync(id); departments.Add(_mapper.Map(department)); //获取下级部门 departments = await _departmentRepository.GetDepartmentById(id, departments.Select(n => _mapper.Map(n)).ToList()); foreach (var item in departments) { var users = await _userRepository.GetUserByDepartmentIdAsync(item.Id); var enumerable = users as User[] ?? users.ToArray(); if (enumerable.Any()) { await _userService.DeleteUsersAsync(enumerable.Select(n => n.Id)); } } //删除部门 Query q = new Query(); q.WhereIn(nameof(department.Id), departments.Select(n => n.Id)); return await _departmentRepository.DeleteAsync(q); //return true; } } }