Example #1
0
        /// <summary>
        /// 取得当前组织与组织对应等级的子集
        /// </summary>
        /// <param name="orgid"></param>
        /// <param name="getLevel"></param>
        /// <returns></returns>
        public Org_Detail[] GetCurrentOrgAndOrgParentIds(Org_Detail item, int getLevel = 0)
        {
            //TODO:OK,获取父级组织的核心方法
            if (getLevel == 0)
            {
                return(new Org_Detail[1]
                {
                    item
                });
            }
            //获取指定等级的组织的父级ID
            List <int> list = (from e in ExpandHelper.ChangeToIntList(item.OrgParentIDALL.Replace("|", "")).Distinct()
                               where e != 0
                               select e).ToList();

            Org_Detail[] array = new Org_Detail[list.Count];
            for (int i = 0; i < list.Count; i++)
            {
                //TODO:OK.遍历通过redis获取组织信息,当前组织的父级节点,到根节点3级左右
                array[i] = _orgStore.GetModel(list[i]) ?? new Org_Detail();
            }
            //获取大于等于指定级别的组织
            return(array.Where(m => m.OrgLevelKey >= getLevel && m.OrgID > 0).OrderByDescending(b => b.OrgLevelKey).ToArray());
        }