MenuRepository.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. using QM.KJGH.MANAGE.IRepository.Users;
  2. using QM.KJGH.MANAGE.Model.Users;
  3. using QM.KJGH.Model;
  4. using QM.KJGH.Model.JCPT;
  5. using QM.KJGH.Model.KJGH;
  6. using QM.OrmSqlSugar;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Threading.Tasks;
  11. using WS;
  12. using WS.Orm;
  13. namespace QM.KJGH.MANAGE.Repository.Users
  14. {
  15. /// <summary>
  16. /// 菜单
  17. /// </summary>
  18. public class MenuRepository : SqlSugarRepository<SysMenu>, IMenuRepository
  19. {
  20. /// <summary>
  21. /// 分页查询
  22. /// </summary>
  23. /// <param name="input">查询条件</param>
  24. /// <returns></returns>
  25. public async Task<PageData> GetPage(MenuPage input)
  26. {
  27. var query = DbClient().Queryable<SysMenu>();
  28. query.WhereIF(!string.IsNullOrWhiteSpace(input.NAME_CH), t => t.NAME_CH.Contains(input.NAME_CH));
  29. query.WhereIF(input.TYPE != -1, t => t.TYPE == input.TYPE);
  30. query.Where(t => t.STATE == EnumBool.Yes);
  31. var page = await query.OrderBy(t => t.SORT).ToPageAsync(input.page, input.limit);
  32. return page;
  33. }
  34. /// <summary>
  35. /// 获取树
  36. /// </summary>
  37. /// <param name="type">菜单类型(-1:所有 0:后台 1:前端)</param>
  38. /// <returns></returns>
  39. public async Task<List<TreeList>> GetTree(int type = -1)
  40. {
  41. var query = DbClient().Queryable<SysMenu>();
  42. query.WhereIF(type != -1, t => t.TYPE == type);
  43. var list = await query.ToListAsync();
  44. List<TreeList> treeList = new List<TreeList>();
  45. //所有
  46. if(type == -1)
  47. {
  48. #region 前端
  49. var temp = new List<TreeList>();
  50. var root = list.Where(t => (string.IsNullOrWhiteSpace(t.PID) || t.PID == "000000") && t.TYPE == 1)
  51. .OrderBy(t => t.SORT);
  52. foreach (var item in root)
  53. {
  54. TreeList tree = new TreeList()
  55. {
  56. value = item.MID,
  57. label = item.NAME_CH,
  58. children = new List<TreeList>()
  59. };
  60. tree.children = MbTree(tree, list);
  61. temp.Add(tree);
  62. }
  63. treeList.Add(new TreeList()
  64. {
  65. value = "1",
  66. label = "前端",
  67. children = temp
  68. });
  69. #endregion
  70. #region 后台
  71. var temp0 = new List<TreeList>();
  72. var root0 = list.Where(t => (string.IsNullOrWhiteSpace(t.PID) || t.PID == "000000") && t.TYPE == 0)
  73. .OrderBy(t => t.SORT);
  74. foreach (var item in root0)
  75. {
  76. TreeList tree = new TreeList()
  77. {
  78. value = item.MID,
  79. label = item.NAME_CH,
  80. children = new List<TreeList>()
  81. };
  82. tree.children = MbTree(tree, list);
  83. temp0.Add(tree);
  84. }
  85. treeList.Add(new TreeList()
  86. {
  87. value = "0",
  88. label = "后台",
  89. children = temp0
  90. });
  91. #endregion
  92. }
  93. else
  94. {
  95. var root = list.Where(t => string.IsNullOrWhiteSpace(t.PID) || t.PID == "000000").OrderBy(t => t.SORT);
  96. foreach (var item in root)
  97. {
  98. TreeList tree = new TreeList()
  99. {
  100. value = item.MID,
  101. label = item.NAME_CH,
  102. children = new List<TreeList>()
  103. };
  104. tree.children = MbTree(tree, list);
  105. treeList.Add(tree);
  106. }
  107. }
  108. return treeList;
  109. }
  110. /// <summary>
  111. /// 模板树
  112. /// </summary>
  113. private List<TreeList> MbTree(TreeList tree, List<SysMenu> fzlist)
  114. {
  115. List<TreeList> list = new List<TreeList>();
  116. var fzs = fzlist.Where(t => t.PID == tree.value).OrderBy(t=>t.SORT);
  117. foreach (var item in fzs)
  118. {
  119. TreeList tre = new TreeList()
  120. {
  121. value = item.MID,
  122. label = item.NAME_CH,
  123. children = new List<TreeList>()
  124. };
  125. tre.children = MbTree(tre, fzlist);
  126. list.Add(tre);
  127. }
  128. return list;
  129. }
  130. }
  131. }