/// <summary> /// 根据下拉查询部门ids /// </summary> /// <param name="userId"></param> /// <param name="selectDeptId"></param> /// <returns></returns> public static List <int> GetPowerDeptIds(RedisLib.Model.Insurance.RInsuranceUserInfo userInfo, int selectDeptId) { if (selectDeptId < 1) { return(GetPowerDeptIds(userInfo)); } if (userInfo == null) { return new List <int>() { selectDeptId } } ; //全部或含下级权限 if (userInfo.Poser == 0 || userInfo.Poser == 2) { return(FrameHelp.CacheDeptChildren(selectDeptId)); } return(new List <int>() { selectDeptId }); } #endregion }
/// <summary> /// 获取权限相关部门 /// </summary> /// <param name="Id"></param> /// <param name="head"></param> /// <returns></returns> public static List <RedisLib.Model.Frame.RDept> GetPowerDepts(RedisLib.Model.Insurance.RInsuranceUserInfo userInfo, string head) { try { var ret = new List <RedisLib.Model.Frame.RDept>() { new RedisLib.Model.Frame.RDept() { Id = 0, Name = head, TreeLevel = 0, TreePath = "0", SortIndex = 0 } }; //全部数据 if (userInfo.Poser == 0) { var treeDepts = RedisLib.FrameHelp.GetTreeDepts(); ret.AddRange(treeDepts); return(ret); } var allDepts = RedisLib.FrameHelp.GetDepts(); var selfDept = allDepts.FirstOrDefault(s => s.Id == (userInfo?.DeptId ?? 0)); if (selfDept != null) { switch (userInfo.Poser) { case 1: //所在部门 selfDept.TreeLevel = 1; ret.Add(selfDept); break; case 2: //所在部门及下级 var son = new List <RedisLib.Model.Frame.RDept>(); FrameHelp.CompeleteDeptTree(selfDept, allDepts, son); var balanceLevel = selfDept.TreeLevel - 1; if (balanceLevel > 0) { son.ForEach(s => s.TreeLevel = s.TreeLevel - balanceLevel); } ret.AddRange(son); break; default: break; } } return(ret); } catch (Exception e) { throw new Exception(e.Message); } }
/// <summary> /// 获取权限下所有部门Ids /// </summary> /// <param name="Id"></param> /// <returns></returns> public static List <int> GetPowerDeptIds(RedisLib.Model.Insurance.RInsuranceUserInfo userInfo) { if (userInfo == null) { return(new List <int>()); } //全部数据 if (userInfo.Poser == 0) { return new List <int>() { -1 } } ; if (!userInfo.DeptId.HasValue) { return(new List <int>()); } //所在部门 if (userInfo.Poser == 1) { return new List <int>() { userInfo.DeptId.Value } } ; //所在部门及下级 if (userInfo.Poser == 2) { return(FrameHelp.CacheDeptChildren(userInfo.DeptId.Value)); } //自己 return(new List <int>()); }