diff --git a/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpExtOrgPosService.cs b/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpExtOrgPosService.cs index 41b60d9582abe1c61f09aa129a3de98bcf1f2ac7..c05b916fcf6d65be6a9928cac46d9639c4390742 100644 --- a/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpExtOrgPosService.cs +++ b/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpExtOrgPosService.cs @@ -85,8 +85,7 @@ namespace Furion.Extras.Admin.NET.Service /// public async Task DeleteEmpExtInfoByUserId(long empId) { - var empExtOrgPos = await _sysEmpExtOrgPosRep.Where(u => u.SysEmpId == empId).ToListAsync(); - await _sysEmpExtOrgPosRep.DeleteAsync(empExtOrgPos); + await _sysEmpExtOrgPosRep.AsQueryable(u => u.SysEmpId == empId, false).DeleteRangeAsync(_sysEmpExtOrgPosRep.Context); } } } \ No newline at end of file diff --git a/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpPosService.cs b/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpPosService.cs index bc7441b29a4c3ea14b793f67a1994a252d3b045c..a78cc4a293a846d0b51408ae576868722db3f7eb 100644 --- a/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpPosService.cs +++ b/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpPosService.cs @@ -72,8 +72,7 @@ namespace Furion.Extras.Admin.NET.Service /// public async Task DeleteEmpPosInfoByUserId(long empId) { - var empPos = await _sysEmpPosRep.Where(u => u.SysEmpId == empId).ToListAsync(); - await _sysEmpPosRep.DeleteAsync(empPos); + await _sysEmpPosRep.AsQueryable(u => u.SysEmpId == empId, false).DeleteRangeAsync(_sysEmpPosRep.Context); } } } \ No newline at end of file diff --git a/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpService.cs b/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpService.cs index a4ecc593f3da22768ff8ca0124b83159ba117b6f..04013a68ffd76b5f85da322c666f4b8986b24d21 100644 --- a/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpService.cs +++ b/backend/Furion.Extras.Admin.NET/Service/Emp/SysEmpService.cs @@ -97,12 +97,11 @@ namespace Furion.Extras.Admin.NET.Service /// /// /// - [UnitOfWork] + //[UnitOfWork] public async Task DeleteEmpInfoByUserId(long empId) { // 删除员工信息 - var emp = await _sysEmpRep.FirstOrDefaultAsync(u => u.Id == empId); - await emp.DeleteAsync(); + await _sysEmpRep.DeleteAsync(empId); // 级联删除对应的员工-附属信息 await _sysEmpExtOrgPosService.DeleteEmpExtInfoByUserId(empId); diff --git a/backend/Furion.Extras.Admin.NET/Service/User/SysUserDataScopeService.cs b/backend/Furion.Extras.Admin.NET/Service/User/SysUserDataScopeService.cs index 379f702aa624fe73683afe85d2bed411352cd635..ba85b7c613ca716b3798c58f92adf1bcc27c5e45 100644 --- a/backend/Furion.Extras.Admin.NET/Service/User/SysUserDataScopeService.cs +++ b/backend/Furion.Extras.Admin.NET/Service/User/SysUserDataScopeService.cs @@ -68,8 +68,7 @@ namespace Furion.Extras.Admin.NET.Service /// public async Task DeleteUserDataScopeListByUserId(long userId) { - var dataScopes = await _sysUserDataScopeRep.Where(u => u.SysUserId == userId).ToListAsync(); - await _sysUserDataScopeRep.DeleteAsync(dataScopes); + await _sysUserDataScopeRep.AsQueryable(m => m.SysUserId == userId, false).DeleteRangeAsync(_sysUserDataScopeRep.Context); } } } \ No newline at end of file diff --git a/backend/Furion.Extras.Admin.NET/Service/User/SysUserRoleService.cs b/backend/Furion.Extras.Admin.NET/Service/User/SysUserRoleService.cs index 0fd377e03bbbe4da87e4af9d28cc770d4d62c947..e1ab7ca365a0421926cd7c07afe1070c051278c9 100644 --- a/backend/Furion.Extras.Admin.NET/Service/User/SysUserRoleService.cs +++ b/backend/Furion.Extras.Admin.NET/Service/User/SysUserRoleService.cs @@ -94,8 +94,7 @@ namespace Furion.Extras.Admin.NET.Service /// public async Task DeleteUserRoleListByUserId(long userId) { - var userRoles = await _sysUserRoleRep.Where(u => u.SysUserId == userId).ToListAsync(); - await _sysUserRoleRep.DeleteAsync(userRoles); + await _sysUserRoleRep.Context.DeleteRangeAsync(m => m.SysUserId == userId); } } } \ No newline at end of file diff --git a/backend/Furion.Extras.Admin.NET/Service/User/SysUserService.cs b/backend/Furion.Extras.Admin.NET/Service/User/SysUserService.cs index 25aa7ded9c12f15ab7d2f5e35ae02bfa50035b68..c47632dc6d37b7ad169baf0d8ecba228f36df419 100644 --- a/backend/Furion.Extras.Admin.NET/Service/User/SysUserService.cs +++ b/backend/Furion.Extras.Admin.NET/Service/User/SysUserService.cs @@ -74,7 +74,7 @@ namespace Furion.Extras.Admin.NET.Service .Where(!string.IsNullOrEmpty(pid), x => (x.n.e.OrgId == long.Parse(pid) || x.o.Pids.Contains($"[{pid.Trim()}]"))) .Where(input.SearchStatus >= 0, x => x.n.u.Status == input.SearchStatus) - .Where(!superAdmin, x => x.n.u.AdminType != AdminType.SuperAdmin) + .Where(x => x.n.u.AdminType != AdminType.SuperAdmin)//排除超级管理员 .Where(!superAdmin && dataScopes.Count > 0, x => dataScopes.Contains(x.n.e.OrgId)) .Select(u => u.n.u.Adapt()) .ToPagedListAsync(input.PageNo, input.PageSize); @@ -92,7 +92,7 @@ namespace Furion.Extras.Admin.NET.Service /// /// [HttpPost("/sysUser/add")] - [UnitOfWork] + //[UnitOfWork]//不能嵌套uow public async Task AddUser(AddUserInput input) { // 数据范围检查 @@ -119,10 +119,13 @@ namespace Furion.Extras.Admin.NET.Service /// /// [HttpPost("/sysUser/delete")] - [UnitOfWork] + //[UnitOfWork] public async Task DeleteUser(DeleteUserInput input) { - var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == input.Id); + // 数据范围检查 + CheckDataScope(input.SysEmpParam.OrgId); + + var user = await _sysUserRep.FirstOrDefaultAsync(u => u.Id == input.Id, false); if (user == null) throw Oops.Oh(ErrorCode.D1002); @@ -135,20 +138,17 @@ namespace Furion.Extras.Admin.NET.Service if (user.Id == _userManager.UserId) throw Oops.Oh(ErrorCode.D1001); - // 数据范围检查 - CheckDataScope(input.SysEmpParam.OrgId); - // 直接删除用户 await user.DeleteAsync(); // 删除员工及附属机构职位信息 - await _sysEmpService.DeleteEmpInfoByUserId(user.Id); + await _sysEmpService.DeleteEmpInfoByUserId(input.Id);//empId与userId相同 //删除该用户对应的用户-角色表关联信息 - await _sysUserRoleService.DeleteUserRoleListByUserId(user.Id); + await _sysUserRoleService.DeleteUserRoleListByUserId(input.Id); //删除该用户对应的用户-数据范围表关联信息 - await _sysUserDataScopeService.DeleteUserDataScopeListByUserId(user.Id); + await _sysUserDataScopeService.DeleteUserDataScopeListByUserId(input.Id); } /// @@ -157,7 +157,7 @@ namespace Furion.Extras.Admin.NET.Service /// /// [HttpPost("/sysUser/edit")] - [UnitOfWork] + //[UnitOfWork] public async Task UpdateUser(UpdateUserInput input) { // 数据范围检查