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();
}
}
}