using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using FineAdmin.IService; using FineAdmin.Model; using FineAdmin.IRepository; namespace FineAdmin.Service { public class OrganizeService : BaseService, IOrganizeService { public IOrganizeRepository OrganizeRepository { get; set; } public dynamic GetListByFilter(OrganizeModel filter, PageInfo pageInfo) { throw new NotImplementedException(); } /// /// Organize TreeGrid数据列表 /// public IEnumerable GetOrganizeList() { return OrganizeRepository.GetOrganizeList(); } /// /// Organize treeSelect数据列表 /// public IEnumerable GetOrganizeTreeSelect() { IEnumerable organizeList = BaseRepository.GetAll("Id,FullName,ParentId", "ORDER BY SortCode ASC"); var rootOrganizeList = organizeList.Where(x => x.ParentId == 0).OrderBy(x => x.SortCode); List treeSelectList = new List(); foreach (var item in rootOrganizeList) { TreeSelect tree = new TreeSelect { id = item.Id, name = item.FullName, open = false }; GetOrganizeChildren(treeSelectList, organizeList, tree, item.Id); treeSelectList.Add(tree); } return treeSelectList; } /// /// 递归遍历treeSelectList /// private void GetOrganizeChildren(List treeSelectList, IEnumerable organizeList, TreeSelect tree, int id) { var childOrganizeList = organizeList.Where(x => x.ParentId == id).OrderBy(x => x.SortCode); if (childOrganizeList != null && childOrganizeList.Count() > 0) { List _children = new List(); foreach (var item in childOrganizeList) { TreeSelect _tree = new TreeSelect { id = item.Id, name = item.FullName, open = false }; _children.Add(_tree); tree.children = _children; GetOrganizeChildren(treeSelectList, organizeList, _tree, item.Id); } } } } }