using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
namespace MES.Service.service.BasicData;
///
/// MesSimple服务管理类
///
public class MesSimpleManager : Repository
{
///
/// 获取树形结构数据
///
public List GetTree()
{
var tree = ToTree();
return tree;
}
///
/// 获取树形结构数据(新表 MES_SIMPLE_NEW)
///
public List GetTreeNew()
{
var tree = ToTreeNew();
return tree;
}
///
/// 转换为树形结构
///
public List ToTree()
{
var topList = GetTopList();
return ConvertToTreeViewList(topList);
}
///
/// 转换为树形结构(新表 MES_SIMPLE_NEW)
///
public List ToTreeNew()
{
var topList = GetTopListNew();
return ConvertToTreeViewListNew(topList);
}
///
/// 获取顶级节点列表
///
private List GetTopList()
{
return Db.Queryable()
.Where(x => x.IsTop == 0 && x.Disabled == 0)
.OrderBy(x => x.Id)
.ToList();
}
///
/// 获取顶级节点列表(新表 MES_SIMPLE_NEW)
///
private List GetTopListNew()
{
return Db.Queryable()
.Where(x => x.IsTop == 0 && x.Disabled == 0)
.OrderBy(x => new { x.SortOrder, x.Id })
.ToList();
}
///
/// 将MesSimple列表转换为TreeView列表
///
private List ConvertToTreeViewList(List mesSimpleList)
{
var treeViews = new List();
foreach (var mesSimple in mesSimpleList)
{
var treeView = ConvertToTreeView(mesSimple);
treeViews.Add(treeView);
}
return treeViews;
}
///
/// 将MesSimpleNew列表转换为TreeView列表
///
private List ConvertToTreeViewListNew(List mesSimpleList)
{
var treeViews = new List();
foreach (var mesSimple in mesSimpleList)
{
var treeView = ConvertToTreeViewNew(mesSimple);
treeViews.Add(treeView);
}
return treeViews;
}
///
/// 转换单个MesSimple为TreeView
///
private TreeView ConvertToTreeView(MesSimple mesSimple)
{
var treeView = new TreeView
{
Id = mesSimple.Id,
Title = mesSimple.Title,
Field = mesSimple.Field,
Spread = mesSimple.Spread.HasValue && mesSimple.Spread.Value == 1
};
// 查询子节点
var childList = Db.Queryable()
.Where(x => x.Disabled == 0 && x.Fid == mesSimple.Id)
.OrderBy(x => x.Id)
.ToList();
// 构建子节点列表
var childrenList = new List();
foreach (var child in childList)
{
var children = new Children
{
Id = child.Id,
Title = child.Title,
Field = child.Field
};
// 判断是否为轮播
if ("轮播".Equals(child.Href))
{
children.Href = $"bi_view.html?menuId={child.Id}&lbsj={child.Lbtime}";
}
else
{
children.Href = child.Href;
}
childrenList.Add(children);
}
treeView.Children = childrenList;
return treeView;
}
///
/// 转换单个MesSimpleNew为TreeView
///
private TreeView ConvertToTreeViewNew(MesSimpleNew mesSimple)
{
var treeView = new TreeView
{
Id = mesSimple.Id,
Title = mesSimple.Title,
Field = mesSimple.Field,
Spread = mesSimple.Spread.HasValue && mesSimple.Spread.Value == 1
};
// 查询子节点
var childList = Db.Queryable()
.Where(x => x.Disabled == 0 && x.Fid == mesSimple.Id)
.OrderBy(x => new { x.SortOrder, x.Id })
.ToList();
// 构建子节点列表
var childrenList = new List();
foreach (var child in childList)
{
var children = new Children
{
Id = child.Id,
Title = child.Title,
Field = child.Field
};
// 判断是否为轮播
if ("轮播".Equals(child.Href))
{
children.Href = $"bi_view.html?menuId={child.Id}&lbsj={child.Lbtime}";
}
else
{
children.Href = child.Href;
}
childrenList.Add(children);
}
treeView.Children = childrenList;
return treeView;
}
}