/// <summary> /// Query system users and order by account_id asc /// </summary> /// <param name="search">search model</param> /// <param name="page">page info</param> /// <param name="count">number of total records</param> /// <returns></returns> public IQueryable <SystemUserDTO> QueryUsersJ(UserModelSearch search, Page page, out int count, List <UserRoleJ> roles) { List <int> roleIDs = new List <int>(); bool flag = false; foreach (var item in roles) { if (item.UserRoleID == "SystemAdmin") { flag = true; } roleIDs.Add(item.RoleUID); } //如果是管理员登录,可以看到所有数据 if (flag) { var query = from user in DataContext.System_Users join modifiedUser in DataContext.System_Users on user.Modified_UID equals modifiedUser.Account_UID select new SystemUserDTO { Account_UID = user.Account_UID, User_NTID = user.User_NTID, User_Name = user.User_Name, Email = user.Email, Enable_Flag = user.Enable_Flag, Tel = user.Tel, Modified_UserName = modifiedUser.User_Name, Modified_UserNTID = modifiedUser.User_NTID, Modified_Date = user.Modified_Date, Modified_UID = user.Modified_UID, EmployeeNumber = user.EmployeeNumber, EmployeePassword = user.EmployeePassword, EnableEmpIdLogin = (user.EnableEmpIdLogin == null? 0 : user.EnableEmpIdLogin.Value), Building = user.Building }; if (string.IsNullOrEmpty(search.ExportUIds)) { if (search.Account_UID > 0) { query = query.Where(p => p.Account_UID == search.Account_UID); } if (!string.IsNullOrWhiteSpace(search.User_NTID)) { query = query.Where(p => p.User_NTID == search.User_NTID); } if (!string.IsNullOrWhiteSpace(search.User_Name)) { query = query.Where(p => p.User_Name.Contains(search.User_Name)); } if (!string.IsNullOrWhiteSpace(search.Tel)) { query = query.Where(p => p.Tel.Contains(search.Tel)); } if (!string.IsNullOrWhiteSpace(search.Email)) { query = query.Where(p => p.Email.Contains(search.Email)); } if (search.Enable_Flag != null) { query = query.Where(p => p.Enable_Flag == search.Enable_Flag); } if (!string.IsNullOrWhiteSpace(search.Modified_By)) { query = query.Where(p => p.Modified_UserNTID == search.Modified_By); } if (search.Modified_Date_From != null) { query = query.Where(p => p.Modified_Date >= search.Modified_Date_From); } if (search.Modified_Date_End != null) { var endDate = ((DateTime)search.Modified_Date_End).AddDays(1); query = query.Where(p => p.Modified_Date < endDate); } count = query.Count(); return(query.OrderByDescending(o => o.Modified_Date).GetPage(page)); } else { //for export data var array = Array.ConvertAll(search.ExportUIds.Split(','), s => int.Parse(s)); query = query.Where(p => array.Contains(p.Account_UID)); query = query.Distinct(); count = 0; return(query.OrderByDescending(o => o.Modified_Date)); } } else { var query = from user in DataContext.System_Users join modifiedUser in DataContext.System_Users on user.Modified_UID equals modifiedUser.Account_UID join UR in DataContext.System_User_Role on user.Account_UID equals UR.Account_UID join org in DataContext.System_UserOrg on user.Account_UID equals org.Account_UID where user.MH_Flag == false && roleIDs.Contains(UR.Role_UID) select new SystemUserDTO { Account_UID = user.Account_UID, User_NTID = user.User_NTID, User_Name = user.User_Name, Email = user.Email, Enable_Flag = user.Enable_Flag, Tel = user.Tel, Modified_UserName = modifiedUser.User_Name, Modified_UserNTID = modifiedUser.User_NTID, Modified_Date = user.Modified_Date, Modified_UID = user.Modified_UID, EmployeeNumber = user.EmployeeNumber, EmployeePassword = user.EmployeePassword, EnableEmpIdLogin = user.EnableEmpIdLogin.Value, Building = user.Building }; query = query.Distinct(); if (search.Orgnizations != null && search.Orgnizations.Count > 0) { List <SystemUserDTO> list = new List <SystemUserDTO>(); foreach (OrganiztionVM vm in search.Orgnizations) { if (vm.OPType == "Support team") { var query1 = from q in query join plant in DataContext.System_UserOrg on q.Account_UID equals plant.Account_UID where plant.Plant_OrganizationUID == vm.Plant_OrganizationUID select q; list.AddRange(query1.ToList()); } //没有设置BG的就可以看到所有的用户 if (vm.OPType == null) { var query1 = from q in query join plant in DataContext.System_UserOrg on q.Account_UID equals plant.Account_UID where plant.Plant_OrganizationUID == vm.Plant_OrganizationUID select q; list.AddRange(query1.ToList()); } else { var query1 = from q in query join plant in DataContext.System_UserOrg on q.Account_UID equals plant.Account_UID where plant.OPType_OrganizationUID == vm.OPType_OrganizationUID select q; list.AddRange(query1.ToList()); } } query = list.AsQueryable(); } if (string.IsNullOrEmpty(search.ExportUIds)) { if (search.Account_UID > 0) { query = query.Where(p => p.Account_UID == search.Account_UID); } if (!string.IsNullOrWhiteSpace(search.User_NTID)) { query = query.Where(p => p.User_NTID == search.User_NTID); } if (!string.IsNullOrWhiteSpace(search.User_Name)) { query = query.Where(p => p.User_Name.Contains(search.User_Name)); } if (!string.IsNullOrWhiteSpace(search.Tel)) { query = query.Where(p => p.Tel.Contains(search.Tel)); } if (!string.IsNullOrWhiteSpace(search.Email)) { query = query.Where(p => p.Email.Contains(search.Email)); } if (search.Enable_Flag != null) { query = query.Where(p => p.Enable_Flag == search.Enable_Flag); } if (!string.IsNullOrWhiteSpace(search.Modified_By)) { query = query.Where(p => p.Modified_UserNTID == search.Modified_By); } if (search.Modified_Date_From != null) { query = query.Where(p => p.Modified_Date >= search.Modified_Date_From); } if (search.Modified_Date_End != null) { var endDate = ((DateTime)search.Modified_Date_End).AddDays(1); query = query.Where(p => p.Modified_Date < endDate); } count = query.Count(); return(query.OrderByDescending(m => m.Modified_Date).GetPage(page)); } else { //for export data var array = Array.ConvertAll(search.ExportUIds.Split(','), s => int.Parse(s)); query = query.Where(p => array.Contains(p.Account_UID)); count = 0; return(query.OrderByDescending(o => o.Modified_Date)); } } }
public IQueryable <SystemUserDTO> QueryUsers(UserModelSearch search, Page page, out int count) { var query = from user in DataContext.System_Users join modifiedUser in DataContext.System_Users on user.Modified_UID equals modifiedUser.Account_UID where user.MH_Flag == false select new SystemUserDTO { Account_UID = user.Account_UID, User_NTID = user.User_NTID, User_Name = user.User_Name, Email = user.Email, Enable_Flag = user.Enable_Flag, Tel = user.Tel, Modified_UserName = modifiedUser.User_Name, Modified_UserNTID = modifiedUser.User_NTID, Modified_Date = user.Modified_Date, Modified_UID = user.Modified_UID, EmployeeNumber = user.EmployeeNumber, EmployeePassword = user.EmployeePassword, EnableEmpIdLogin = user.EnableEmpIdLogin.Value, Building = user.Building }; if (string.IsNullOrEmpty(search.ExportUIds)) { if (search.Account_UID > 0) { query = query.Where(p => p.Account_UID == search.Account_UID); } if (!string.IsNullOrWhiteSpace(search.User_NTID)) { query = query.Where(p => p.User_NTID == search.User_NTID); } if (!string.IsNullOrWhiteSpace(search.User_Name)) { query = query.Where(p => p.User_Name.Contains(search.User_Name)); } if (!string.IsNullOrWhiteSpace(search.Tel)) { query = query.Where(p => p.Tel.Contains(search.Tel)); } if (!string.IsNullOrWhiteSpace(search.Email)) { query = query.Where(p => p.Email.Contains(search.Email)); } if (search.Enable_Flag != null) { query = query.Where(p => p.Enable_Flag == search.Enable_Flag); } if (!string.IsNullOrWhiteSpace(search.Modified_By)) { query = query.Where(p => p.Modified_UserNTID == search.Modified_By); } if (search.Modified_Date_From != null) { query = query.Where(p => p.Modified_Date >= search.Modified_Date_From); } if (search.Modified_Date_End != null) { var endDate = ((DateTime)search.Modified_Date_End).AddDays(1); query = query.Where(p => p.Modified_Date < endDate); } count = query.Count(); return(query.OrderBy(o => o.Account_UID).GetPage(page)); } else { //for export data var array = Array.ConvertAll(search.ExportUIds.Split(','), s => int.Parse(s)); query = query.Where(p => array.Contains(p.Account_UID)); count = 0; return(query.OrderBy(o => o.Account_UID)); } }