示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#5
0
        /// <summary>
        /// 获取用户组织机构信息
        /// </summary>
        /// <param name="queryParam"></param>
        /// <returns></returns>
        public List <View_UserOrgInfo> GetUserOrgInfos(Org_UserQueryParam queryParam)
        {
            var result = vuoiDal.GetUserOrgInfos(queryParam);

            return(result);
        }
示例#6
0
        /// <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);
        }
示例#7
0
 /// <summary>
 /// 分页查询
 /// </summary>
 /// <param name="queryParam">自定义扩展查询参数</param>
 /// <returns></returns>
 public ListByPages <vOrg_User> Query(Org_UserQueryParam queryParam)
 {
     return(Dal.Query(queryParam));
 }
示例#8
0
        /// <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);
        }