优化用户管理根据部门查询用户

This commit is contained in:
不做码农 2022-01-22 09:51:05 +08:00
parent 3169087476
commit bee520ee2a

View File

@ -2,6 +2,7 @@
using Infrastructure.Extensions; using Infrastructure.Extensions;
using SqlSugar; using SqlSugar;
using System; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using ZR.Model; using ZR.Model;
@ -33,10 +34,15 @@ namespace ZR.Repository.System
if (user.DeptId != 0) if (user.DeptId != 0)
{ {
SysDept dept = Context.Queryable<SysDept>().First(f => f.DeptId == user.DeptId); List<SysDept> depts = Context.Queryable<SysDept>().ToList();
string[] deptArr = dept?.Ancestors.Split(",").ToArray();
exp.AndIF(user.DeptId != 0, u => u.DeptId == user.DeptId);// || deptArr.Contains(u.DeptId.ToString())); var newDepts = depts.FindAll(delegate (SysDept dept)
{
string[] parentDeptId = dept.Ancestors.Split(",", StringSplitOptions.RemoveEmptyEntries);
return parentDeptId.Contains(user.DeptId.ToString());
});
string[] deptArr = newDepts.Select(x => x.DeptId.ToString()).ToArray();
exp.AndIF(user.DeptId != 0, u => u.DeptId == user.DeptId || deptArr.Contains(u.DeptId.ToString()));
} }
var query = Context.Queryable<SysUser>() var query = Context.Queryable<SysUser>()
.LeftJoin<SysDept>((u, dept) => u.DeptId == dept.DeptId) .LeftJoin<SysDept>((u, dept) => u.DeptId == dept.DeptId)