using NewPdaSqlServer.DB;
|
using NewPdaSqlServer.Dto.Simple;
|
using NewPdaSqlServer.entity;
|
using SqlSugar;
|
|
namespace NewPdaSqlServer.service.Simple;
|
|
/// <summary>
|
/// ¿´°å²Ëµ¥ÒµÎñ¹ÜÀíÆ÷
|
/// ʵÏÖÓëJava°æ±¾MesSimpleServiceImplÍêȫһÖµÄÒµÎñÂß¼
|
/// </summary>
|
public class SimpleManager : Repository<MesSimple>
|
{
|
/// <summary>
|
/// »ñÈ¡Ê÷Ðβ˵¥
|
/// ¶ÔÓ¦Java: getTree()
|
/// </summary>
|
/// <returns>Ê÷Ðβ˵¥Êý¾Ý</returns>
|
public ResultDto<List<TreeViewDto>> GetTree()
|
{
|
try
|
{
|
var tree = ToTree();
|
return ResultDto<List<TreeViewDto>>.Ok(tree, tree.Count);
|
}
|
catch (Exception ex)
|
{
|
return ResultDto<List<TreeViewDto>>.Error(ex.Message);
|
}
|
}
|
|
/// <summary>
|
/// ת»»ÎªÊ÷Ðνṹ
|
/// ¶ÔÓ¦Java: toTree()
|
/// </summary>
|
/// <returns>Ê÷ÐÎÊÓͼÁбí</returns>
|
public List<TreeViewDto> ToTree()
|
{
|
return ConvertToTreeViewList(GetTopList());
|
}
|
|
/// <summary>
|
/// »ñÈ¡²Ëµ¥Áбí
|
/// ¶ÔÓ¦Java: getMenuList()
|
/// ²éѯÌõ¼þ: disabled=0 ÇÒ isTop>0 (Åųý¸ù½Úµã)
|
/// </summary>
|
/// <returns>²Ëµ¥Áбí</returns>
|
public ResultDto<List<MesSimpleDto>> GetMenuList()
|
{
|
try
|
{
|
var list = Db.Queryable<MesSimple>()
|
.Where(m => m.Disabled == 0 && m.IsTop > 0)
|
.Select(m => new MesSimpleDto
|
{
|
Id = m.Id,
|
IsTop = m.IsTop,
|
Fid = m.Fid,
|
Title = m.Title,
|
Field = m.Field,
|
Href = m.Href,
|
Spread = m.Spread,
|
Disabled = m.Disabled,
|
Lbtime = m.Lbtime
|
})
|
.ToList();
|
|
return ResultDto<List<MesSimpleDto>>.Ok(list, list.Count);
|
}
|
catch (Exception ex)
|
{
|
return ResultDto<List<MesSimpleDto>>.Error(ex.Message);
|
}
|
}
|
|
/// <summary>
|
/// ¸ù¾Ý²Ëµ¥ID»ñÈ¡BIÊÓͼÁбí
|
/// ¶ÔÓ¦Java: getBiViewsByMenuId()
|
/// </summary>
|
/// <param name="menuId">²Ëµ¥ID</param>
|
/// <returns>BIÊÓͼÁбí</returns>
|
public ResultDto<List<BiViewDto>> GetBiViewsByMenuId(int menuId)
|
{
|
try
|
{
|
// ²éѯָ¶¨²Ëµ¥ÏµÄËùÓÐBIÊÓͼ
|
var list = Db.Queryable<MesSimpleCcb>()
|
.Where(b => b.Pid == menuId && b.Href != null)
|
.Select(b => new BiViewDto
|
{
|
Id = b.Id,
|
Pid = b.Pid,
|
Name = b.Name,
|
Href = b.Href,
|
Lbtime = b.Lbtime
|
})
|
.ToList();
|
|
// Èç¹ûÓÐÊý¾Ý£¬»ñÈ¡¸¸²Ëµ¥µÄÂÖ²¥Ê±¼äÅäÖò¢¸³Öµ¸øËùÓÐBIÊÓͼ
|
if (list.Count > 0)
|
{
|
var simple = Db.Queryable<MesSimple>()
|
.Where(m => m.Id == menuId)
|
.First();
|
|
if (simple != null)
|
{
|
// ½«¸¸²Ëµ¥µÄlbtime¸³Öµ¸øËùÓÐBIÊÓͼ
|
list.ForEach(biView => biView.Lbtime = simple.Lbtime);
|
}
|
}
|
|
return ResultDto<List<BiViewDto>>.Ok(list, list.Count);
|
}
|
catch (Exception ex)
|
{
|
return ResultDto<List<BiViewDto>>.Error(ex.Message);
|
}
|
}
|
|
#region ˽Óз½·¨
|
|
/// <summary>
|
/// »ñÈ¡¸ù½ÚµãÁбí
|
/// ²éѯÌõ¼þ: isTop=0 ÇÒ disabled=0
|
/// </summary>
|
/// <returns>¸ù½ÚµãÁбí</returns>
|
private List<MesSimple> GetTopList()
|
{
|
return Db.Queryable<MesSimple>()
|
.Where(m => m.IsTop == 0 && m.Disabled == 0)
|
.ToList();
|
}
|
|
/// <summary>
|
/// ת»»ÎªÊ÷ÐÎÊÓͼÁбí
|
/// ¶ÔÓ¦Java: convertToTreeViewList()
|
/// ʹÓò¢Ðд¦ÀíÌáÉýÐÔÄÜ
|
/// </summary>
|
/// <param name="mesSimpleList">¸ù½ÚµãÁбí</param>
|
/// <returns>Ê÷ÐÎÊÓͼÁбí</returns>
|
private List<TreeViewDto> ConvertToTreeViewList(List<MesSimple> mesSimpleList)
|
{
|
// ʹÓÃParallel.ForEachʵÏÖ²¢Ðд¦Àí£¬ÀàËÆJavaµÄCompletableFuture
|
var treeViews = new List<TreeViewDto>();
|
var lockObj = new object();
|
|
Parallel.ForEach(mesSimpleList, mesSimple =>
|
{
|
var treeView = ConvertToTreeView(mesSimple);
|
lock (lockObj)
|
{
|
treeViews.Add(treeView);
|
}
|
});
|
|
return treeViews;
|
}
|
|
/// <summary>
|
/// ת»»µ¥¸ö²Ëµ¥ÏîΪÊ÷ÐÎÊÓͼ
|
/// ¶ÔÓ¦Java: convertToTreeView()
|
/// </summary>
|
/// <param name="mesSimple">²Ëµ¥ÊµÌå</param>
|
/// <returns>Ê÷ÐÎÊÓͼ</returns>
|
private TreeViewDto ConvertToTreeView(MesSimple mesSimple)
|
{
|
var treeView = new TreeViewDto
|
{
|
Id = mesSimple.Id,
|
Title = mesSimple.Title,
|
Field = mesSimple.Field,
|
Spread = mesSimple.Spread == 1
|
};
|
|
// ²éѯ×Ó½Úµã
|
var childList = Db.Queryable<MesSimple>()
|
.Where(m => m.Disabled == 0 && m.Fid == mesSimple.Id)
|
.ToList();
|
|
// ת»»×Ó½Úµã
|
var childrenList = new List<ChildrenDto>();
|
foreach (var child in childList)
|
{
|
var children = new ChildrenDto
|
{
|
Id = child.Id,
|
Title = child.Title,
|
Field = child.Field
|
};
|
|
// ´¦Àíhref×Ö¶Î
|
// Èç¹ûhrefֵΪ"ÂÖ²¥"£¬Ôò×Ô¶¯Éú³ÉÂÖ²¥Ò³ÃæÁ´½Ó
|
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;
|
}
|
|
#endregion
|
}
|