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