/// <summary> /// 获取用基础信息 /// 这个方法是==,如果要模糊查询,请另写方法 /// </summary> /// <param name="queryParam"></param> /// <returns></returns> public UserBaseInfo GetUserBaseInfo(Org_UserQueryParam queryParam) { var query = from temp in activeContext.Org_User where (queryParam.Id == Guid.Empty || temp.Id == queryParam.Id) && (string.IsNullOrEmpty(queryParam.LoginName) || temp.LoginName == queryParam.LoginName) && (string.IsNullOrEmpty(queryParam.Phone) || temp.Phone == queryParam.Phone) && (string.IsNullOrEmpty(queryParam.Email) || temp.Email == queryParam.Email) && (string.IsNullOrEmpty(queryParam.IdCard) || temp.IdCard == queryParam.IdCard) select new UserBaseInfo { Id = temp.Id, LoginName = temp.LoginName, Code = temp.Code, UserName = temp.UserName, ShortName = temp.ShortName, Gender = temp.Gender, IdCard = temp.IdCard, Email = temp.Email, Telephone = temp.Telephone, Phone = temp.Phone, Address = temp.Address, QQ = temp.QQ, CreateTime = temp.CreateTime, IsFreeze = temp.IsFreeze, FreezeReason = temp.FreezeReason, Remark = temp.Remark, IsSuperMgr = temp.IsSuperMgr, IsOutSide = temp.IsOutSide }; var result = query.FirstOrDefault(); return(result); }
/// <summary> /// 全查询分页 /// </summary> /// <param name="queryParam">自定义扩展查询参数</param> /// <returns></returns> public ListByPages <vOrg_User> Query(Org_UserQueryParam queryParam) { var query = from temp in activeContext.Org_User where (string.IsNullOrEmpty(queryParam.KeyWords) || temp.LoginName.Contains(queryParam.KeyWords) || temp.Code.Contains(queryParam.KeyWords) || temp.UserName.Contains(queryParam.KeyWords) || temp.ShortName.Contains(queryParam.KeyWords) || temp.SourcePW.Contains(queryParam.KeyWords) || temp.Random.Contains(queryParam.KeyWords) || temp.PassWord.Contains(queryParam.KeyWords) || temp.IdCard.Contains(queryParam.KeyWords) || temp.Email.Contains(queryParam.KeyWords) || temp.Telephone.Contains(queryParam.KeyWords) || temp.Phone.Contains(queryParam.KeyWords) || temp.Address.Contains(queryParam.KeyWords) || temp.QQ.Contains(queryParam.KeyWords) || temp.BankName.Contains(queryParam.KeyWords) || temp.BankAccount.Contains(queryParam.KeyWords) || temp.FreezeReason.Contains(queryParam.KeyWords) || temp.Remark.Contains(queryParam.KeyWords)) select new vOrg_User { Id = temp.Id, LoginName = temp.LoginName, Code = temp.Code, UserName = temp.UserName, ShortName = temp.ShortName, SourcePW = temp.SourcePW, Random = temp.Random, PassWord = temp.PassWord, Gender = temp.Gender, IdCard = temp.IdCard, Email = temp.Email, Telephone = temp.Telephone, Phone = temp.Phone, Address = temp.Address, QQ = temp.QQ, BankName = temp.BankName, BankAccount = temp.BankAccount, CreateTime = temp.CreateTime, IsFreeze = temp.IsFreeze, FreezeReason = temp.FreezeReason, Remark = temp.Remark, IsOutSide = temp.IsOutSide, IsSuperMgr = temp.IsSuperMgr, } ; var tempquery = query.ToListByPages(queryParam); return(tempquery); }
/// <summary> /// 获取用户组织机构信息 /// </summary> /// <param name="queryParam"></param> /// <returns></returns> public List <View_UserOrgInfo> GetUserOrgInfos(Org_UserQueryParam queryParam) { var query = from temp in activeContext.View_UserOrgInfo where (queryParam.Id == Guid.Empty || temp.Id == queryParam.Id) && (string.IsNullOrEmpty(queryParam.LoginName) || temp.LoginName == queryParam.LoginName) && (string.IsNullOrEmpty(queryParam.Phone) || temp.Phone.Contains(queryParam.Phone)) && (string.IsNullOrEmpty(queryParam.Phone) || temp.Telephone.Contains(queryParam.Phone)) && (string.IsNullOrEmpty(queryParam.Email) || temp.Email.Contains(queryParam.Email)) && (string.IsNullOrEmpty(queryParam.IdCard) || temp.IdCard.Contains(queryParam.IdCard)) select temp; var result = query.ToList(); return(result); }
/// <summary> /// 获取所有组织机构员工信息(在职员工) /// </summary> /// <param name="queryParam"></param> /// <returns></returns> public List <View_UserOrgInfo> GetAllUserInfosList(Org_UserQueryParam queryParam) { var query = from temp in activeContext.View_UserOrgInfo where ( string.IsNullOrEmpty(queryParam.KeyWords) || temp.LoginName.Contains(queryParam.KeyWords) || temp.Phone.Contains(queryParam.KeyWords) || temp.Telephone.Contains(queryParam.KeyWords) || temp.Email.Contains(queryParam.KeyWords) || temp.IdCard.Contains(queryParam.KeyWords) ) && temp.IsFreeze == false select temp; var result = query.ToList(); return(result); }
/// <summary> /// 获取用户组织机构信息 /// </summary> /// <param name="queryParam"></param> /// <returns></returns> public List <View_UserOrgInfo> GetUserOrgInfos(Org_UserQueryParam queryParam) { var result = vuoiDal.GetUserOrgInfos(queryParam); return(result); }
/// <summary> /// 获取用户全部信息 /// </summary> /// <param name="loginname"></param> public UserBackFullInfo GetUserFullInfo(Org_UserQueryParam queryParam) { UserBackFullInfo result = new UserBackFullInfo(); //全都为空,查个毛啊,这里是精确查询1条,不是模糊查多条 if (queryParam.Id == Guid.Empty && string.IsNullOrEmpty(queryParam.LoginName) && string.IsNullOrEmpty(queryParam.Phone) && string.IsNullOrEmpty(queryParam.Email) && string.IsNullOrEmpty(queryParam.IdCard)) { return(null); //返回空,让调用处报异常去 } result.BaseInfo = this.GetUserBaseInfo(queryParam); //获取用户组织机构 if (result.BaseInfo.IsSuperMgr && result.BaseInfo.LoginName == "sysadmin") //超级管理员 { result.UserOrgInfoList = (new Org_OrganizationDal()).GetAllUserOrgInfo(); result.UserFeatureInfoList = vfoDal.GetSystemManagerFeatures().ToList(); result.UserMenuInfoList = vmsDal.GetAll().ToList(); //数据权限暂时不考虑 } else { if (result.BaseInfo.IsSuperMgr) { result.UserOrgInfoList = this.GetUserOrgInfos(queryParam); result.UserFeatureInfoList = vfoDal.GetSystemManagerFeatures().ToList(); //var aa = result.UserFeatureInfoList.Where(p => p.FeatureCode == "DCBI-CRE-Head" || p.FeatureCode == "DCBI-CRE-Send").ToList(); result.UserMenuInfoList = vmsDal.GetAll().ToList(); //var bb = result.UserMenuInfoList.Where(p => p.MenuCode == "DCBI-CRE-Draft" || p.MenuCode == "DCBI-CRE-Finance").ToList(); } else { result.UserOrgInfoList = this.GetUserOrgInfos(queryParam); //用户岗位 var PositionIds = result.UserOrgInfoList.Where(k => k.PositionId.HasValue).Select(p => p.PositionId.Value).ToList(); #region 获取用户功能权限 View_FeaturePositionQueryParam featurepqueryParam = new View_FeaturePositionQueryParam(); //取出用户的多个岗位,查询多岗位下的功能项 //featurepqueryParam.PositionIds = result.UserOrgInfoList.Where(k => k.PositionId.HasValue).Select(p => p.PositionId.Value).ToList(); featurepqueryParam.PositionIds = PositionIds; result.UserFeatureInfoList = this.GetUserFeatureInfos(featurepqueryParam); #endregion #region 获取用户菜单 //获取用户的功能项,查询对应的菜单(IsMenu是菜单的功能项) View_MenuSysQueryParam menusyqueryParam = new View_MenuSysQueryParam(); menusyqueryParam.FeatureIds = result.UserFeatureInfoList.Where(k => k.FeatureId.HasValue && k.FeatureIsMenu.HasValue && k.FeatureIsMenu.Value == true).Select(p => p.FeatureId.Value).Distinct().ToList(); result.UserMenuInfoList = this.GetUserMenuInfoList(menusyqueryParam); //加上特别配置的菜单 Auth_PositionSpecialMenuConfigQueryParam apsmcqueryParam = new Auth_PositionSpecialMenuConfigQueryParam(); apsmcqueryParam.PositionIds = PositionIds; var specialMenuIds = this.GetMenuByPositions(apsmcqueryParam); //根据岗位ids查找岗位特别配置的菜单ids menusyqueryParam.Ids = specialMenuIds; var specialMenuInfos = this.GetMenuByIds(menusyqueryParam); //根据菜单ids查找菜单信息 result.UserMenuInfoList = result.UserMenuInfoList.Concat(specialMenuInfos).DistinctBy(p => p.Id).ToList(); #endregion //取得用户数据权限 View_DataRolePositionQueryParam udataquery = new View_DataRolePositionQueryParam(); //取得用户所有岗位 //udataquery.PositionIds = result.UserOrgInfoList.Where(k => k.PositionId.HasValue).Select(p => p.PositionId.Value).Distinct().ToList(); udataquery.PositionIds = PositionIds; result.UserDataInfoList = this.GetUserDataInfos(udataquery); } #region 获取当前登录用户默认组织机构、公司、区域信息 var OrgAll = (new Org_OrganizationDal()).GetAllOrg(); //当前登录组织机构 var notNullOrg = result.UserOrgInfoList.Where(f => !string.IsNullOrEmpty(f.OrganizationCode)).ToList(); var firstOrg = notNullOrg.OrderBy(f => f.OrganizationCode).FirstOrDefault(); if (firstOrg != null) { //result.CurrentOrganizationId = firstOrg.OrganizationId.Value; //result.CurrentOrganizationCode = firstOrg.OrganizationCode; //result.CurrentOrganizationName = firstOrg.OrganizationName; } List <string> parentCode = new List <string>(); //获取当前登录用户的所有父级组织机构 foreach (var get in notNullOrg) { var OriCode = get.OrganizationRelationShipCode.Replace("[" + get.OrganizationCode + "]", ""); var Ary = OriCode.Split(']'); foreach (var str in Ary) { if (!string.IsNullOrEmpty(str)) { parentCode.Add(str.Replace("[", "").Replace("]", "")); } } } var getCompany = OrgAll.Where(f => f.OrganizationCategoryCode == "Company" && parentCode.Contains(f.Code)).OrderBy(f => f.Code).FirstOrDefault(); var getArea = OrgAll.Where(f => f.OrganizationCategoryCode == "Region" && parentCode.Contains(f.Code)).OrderBy(f => f.Code).FirstOrDefault(); if (getCompany != null) { //result.CurrentCompanyId = getCompany.OrganizationId; //result.CurrentCompanyCode = getCompany.Code; //result.CurrentCompanyName = getCompany.Name; } if (getArea != null) { //result.CurrentAreaId = getArea.OrganizationId; //result.CurrentAreaCode = getArea.Code; //result.CurrentAreaName = getArea.Name; } else { //未找到区域公司时查找是否存在总公司 getArea = OrgAll.Where(f => f.OrganizationCategoryCode == "MainCompany" && parentCode.Contains(f.Code)).OrderBy(f => f.Code).FirstOrDefault(); if (getArea != null) { //result.CurrentAreaId = getArea.OrganizationId; //result.CurrentAreaCode = getArea.Code; //result.CurrentAreaName = getArea.Name; } } #endregion } return(result); }
/// <summary> /// 分页查询 /// </summary> /// <param name="queryParam">自定义扩展查询参数</param> /// <returns></returns> public ListByPages <vOrg_User> Query(Org_UserQueryParam queryParam) { return(Dal.Query(queryParam)); }
/// <summary> /// 获取当前用户 /// </summary> /// <returns></returns> public static PrincipalUser GetCurrentUser() { PrincipalUser principalUser; //通过Cookie获取当前登陆名,如果没有,则需要登录 string loginName = GetCurrentUserLoginName(); if (string.IsNullOrEmpty(loginName)) { principalUser = null; HttpContext.Current.Session[loginName] = null; HttpCookie cookies = HttpContext.Current.Request.Cookies[userGGNTokenCookie]; if (cookies != null) { cookies.Expires = DateTime.Today.AddDays(-1); HttpContext.Current.Response.Cookies.Add(cookies); HttpContext.Current.Request.Cookies.Remove(userGGNTokenCookie); } } else { //Session里面不存在 if (HttpContext.Current.Session[loginName] == null) { //检查数据库是否有此用户 Org_User user = GetOnlineUser(loginName); if (user == null) //没有说明有问题 { principalUser = (PrincipalUser)null; HttpContext.Current.Session[loginName] = null; HttpCookie cookies = HttpContext.Current.Request.Cookies[userGGNTokenCookie]; if (cookies != null) { cookies.Expires = DateTime.Today.AddDays(-1); HttpContext.Current.Response.Cookies.Add(cookies); HttpContext.Current.Request.Cookies.Remove(userGGNTokenCookie); } } else { //如果有此用户 principalUser = new PrincipalUser { Id = user.Id, LoginName = user.LoginName, UserName = user.UserName, UserCode = user.Code, IsManager = false, IsOutSide = user.IsOutSide, Phone = user.Phone }; //获取用户全信息数据 Org_UserQueryParam query = new Org_UserQueryParam { LoginName = loginName }; var userdatainfo = dalUser.GetUserFullInfo(query); //重建此session和缓存数据 principalUser.IsManager = userdatainfo.BaseInfo.IsSuperMgr; RedisHelper.Set("GGNCenterUser_" + loginName, userdatainfo, null); HttpContext.Current.Session[principalUser.LoginName] = userdatainfo; } } else //Session里面存在 { var sessionUser = (UserBackFullInfo)(HttpContext.Current.Session[loginName]); principalUser = new PrincipalUser(); principalUser.Id = sessionUser.BaseInfo.Id; principalUser.LoginName = sessionUser.BaseInfo.LoginName; principalUser.UserName = sessionUser.BaseInfo.UserName; principalUser.UserCode = sessionUser.BaseInfo.Code; principalUser.IsManager = sessionUser.BaseInfo.IsSuperMgr; principalUser.IsOutSide = sessionUser.BaseInfo.IsOutSide; principalUser.Phone = sessionUser.BaseInfo.Phone; } } return(principalUser); }
/// <summary> /// 获取当前用户 /// </summary> /// <returns></returns> public static ClaimsPrincipalUser GetCurrentUser() { ClaimsPrincipalUser principalUser; //取得 cookieValue string cookieValue = GetCookies(userCMPTokenCookie); //通过Cookie获取当前登陆名,如果没有,则需要登录 if (string.IsNullOrEmpty(cookieValue)) { return(null); } string loginName = DecryptLoginName(cookieValue); if (string.IsNullOrEmpty(loginName)) { principalUser = null; GlobalHttpContext.Current.Session.Set <UserBackFullInfo>(loginName, null); if (!string.IsNullOrEmpty(cookieValue)) //删除cookie { DeleteCookies(userCMPTokenCookie); } } else { //Session里面不存在 if (GlobalHttpContext.Current.Session.Get(loginName) == null) { //检查数据库是否有此用户 Org_User user = dalUser.GetByLoginName(loginName); if (user == null) //没有说明有问题 { principalUser = (ClaimsPrincipalUser)null; if (!string.IsNullOrEmpty(cookieValue)) //删除cookie { DeleteCookies(userCMPTokenCookie); } } else { //如果有此用户 principalUser = new ClaimsPrincipalUser { Id = user.Id, LoginName = user.LoginName, UserName = user.UserName, UserCode = user.Code, IsManager = false, IsOutSide = user.IsOutSide, Phone = user.Phone }; //获取用户全信息数据 Org_UserQueryParam query = new Org_UserQueryParam { LoginName = loginName }; var userdatainfo = dalUser.GetUserFullInfo(query); //重建此session和缓存数据 principalUser.IsManager = userdatainfo.BaseInfo.IsSuperMgr; RedisHelper.Set("CMPUser_" + loginName, userdatainfo, null); GlobalHttpContext.Current.Session.Set(principalUser.LoginName, userdatainfo); } } else //Session里面存在 { var sessionUser = GlobalHttpContext.Current.Session.Get <UserBackFullInfo>(loginName); principalUser = new ClaimsPrincipalUser(); principalUser.Id = sessionUser.BaseInfo.Id; principalUser.LoginName = sessionUser.BaseInfo.LoginName; principalUser.UserName = sessionUser.BaseInfo.UserName; principalUser.UserCode = sessionUser.BaseInfo.Code; principalUser.IsManager = sessionUser.BaseInfo.IsSuperMgr; principalUser.IsOutSide = sessionUser.BaseInfo.IsOutSide; principalUser.Phone = sessionUser.BaseInfo.Phone; } } return(principalUser); }