public async Task <MessageModel <List <Department> > > GetTreeTable(long f = 0, string key = "") { List <Department> departments = new List <Department>(); var departmentList = await _departmentServices.Query(d => d.IsDeleted == false); if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { key = ""; } if (key != "") { departments = departmentList.Where(a => a.Name.Contains(key)).OrderBy(a => a.OrderSort).ToList(); } else { departments = departmentList.Where(a => a.Pid == f).OrderBy(a => a.OrderSort).ToList(); } foreach (var item in departments) { List <int> pidarr = new() { }; var parent = departmentList.FirstOrDefault(d => d.Id == item.Pid); while (parent != null) { pidarr.Add(parent.Id); parent = departmentList.FirstOrDefault(d => d.Id == parent.Pid); } pidarr.Reverse(); pidarr.Insert(0, 0); item.PidArr = pidarr; item.hasChildren = departmentList.Where(d => d.Pid == item.Id).Any(); } return(Success(departments, "获取成功")); }
public async Task <MessageModel <PageModel <SysUserInfoDto> > > Get(int page = 1, string key = "") { if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { key = ""; } int intPageSize = 50; var data = await _sysUserInfoServices.QueryPage(a => a.IsDeleted != true && a.Status >= 0 && ((a.LoginName != null && a.LoginName.Contains(key)) || (a.RealName != null && a.RealName.Contains(key))), page, intPageSize, " Id desc "); #region MyRegion // 这里可以封装到多表查询,此处简单处理 var allUserRoles = await _userRoleServices.Query(d => d.IsDeleted == false); var allRoles = await _roleServices.Query(d => d.IsDeleted == false); var allDepartments = await _departmentServices.Query(d => d.IsDeleted == false); var sysUserInfos = data.data; foreach (var item in sysUserInfos) { var currentUserRoles = allUserRoles.Where(d => d.UserId == item.Id).Select(d => d.RoleId).ToList(); item.RIDs = currentUserRoles; item.RoleNames = allRoles.Where(d => currentUserRoles.Contains(d.Id)).Select(d => d.Name).ToList(); var departmentNameAndIds = GetFullDepartmentName(allDepartments, item.DepartmentId); item.DepartmentName = departmentNameAndIds.Item1; item.Dids = departmentNameAndIds.Item2; } data.data = sysUserInfos; #endregion return(Success(data.ConvertTo <SysUserInfoDto>(_mapper))); }
public async Task <IEnumerable <DepartmentServices> > Query(Dictionary <string, dynamic> para) { return(await _department.Query(para)); }