using Infrastructure.Attribute; using SqlSugar; using SqlSugar.IOC; using System.Collections.Generic; using System.Linq; using ZR.Model.System; using ZR.Repository.System; using ZR.Service.System.IService; namespace ZR.Service.System { /// /// 文章目录 /// [AppService(ServiceType = typeof(IArticleCategoryService), ServiceLifetime = LifeTime.Transient)] public class ArticleCategoryService : BaseService, IArticleCategoryService { /// /// 构建前端所需要树结构 /// /// 目录列表 /// public List BuildCategoryTree(List categories) { List returnList = new List(); List tempList = categories.Select(f => f.Category_Id).ToList(); foreach (var dept in categories) { // 如果是顶级节点, 遍历该父节点的所有子节点 if (!tempList.Contains(dept.ParentId)) { RecursionFn(categories, dept); returnList.Add(dept); } } if (!returnList.Any()) { returnList = categories; } return returnList; } /// /// 递归列表 /// /// /// private void RecursionFn(List list, ArticleCategory t) { //得到子节点列表 List childList = GetChildList(list, t); t.Children = childList; foreach (var item in childList) { if (GetChildList(list, item).Count() > 0) { RecursionFn(list, item); } } } /// /// 递归获取子菜单 /// /// 所有菜单 /// /// private List GetChildList(List list, ArticleCategory t) { return list.Where(p => p.ParentId == t.Category_Id).ToList(); } } }