SystemMenuPermissionRepository.cs 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using OASystem.Domain;
  2. using OASystem.Domain.Entities.System;
  3. using OASystem.Domain.ViewModels.System;
  4. using System.Collections;
  5. namespace OASystem.Infrastructure.Repositories.System
  6. {
  7. public class SystemMenuPermissionRepository : BaseRepository<Sys_SystemMenuPermission, SystemMenuPermissionView>
  8. {
  9. public SystemMenuPermissionRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
  10. {
  11. }
  12. /// <summary>
  13. /// 分页查询页面表
  14. /// </summary>
  15. /// <param name="_SystemMenuPermissionRepository"></param>
  16. /// <param name="mid">模块id</param>
  17. /// <param name="pageSize">行数</param>
  18. /// <param name="currentPage">页码</param>
  19. /// <returns></returns>
  20. public Result GetSystemMenuViweData(SystemMenuPermissionRepository _SystemMenuPermissionRepository,int mid,int pageSize,int currentPage)
  21. {
  22. Result result = new Result();
  23. if (currentPage == 0 || pageSize == 0)
  24. {
  25. return result;
  26. }
  27. string sql = $@"select top {pageSize} * from (select row_number()
  28. over(order by id asc) as rownumber,*
  29. from Sys_SystemMenuPermission where mid = {mid} and isdel = 0 and IsEnable = 1 ) temp_row
  30. where rownumber> {(currentPage - 1) * pageSize};";
  31. var DBdata = _SystemMenuPermissionRepository.GetListBySqlWithNolock(sql);
  32. if (DBdata == null || DBdata.Count == 0)
  33. {
  34. result.Code = -1;
  35. result.Msg = "暂无数据!";
  36. result.Data = new
  37. {
  38. DBdata,
  39. total = 0
  40. };
  41. return result;
  42. }
  43. var total = _SystemMenuPermissionRepository.Query<Sys_SystemMenuPermission>(x => x.Mid == mid).Count();
  44. result.Code = 0;
  45. result.Msg = "成功!";
  46. result.Data = new
  47. {
  48. DBdata = DBdata.Select(x => new SystemMenuPermissionView
  49. {
  50. Id = x.Id,
  51. Name = x.Name,
  52. Mid = mid,
  53. SystemMenuCode = x.SystemMenuCode
  54. }),
  55. total = total
  56. };
  57. return result;
  58. }
  59. public Result QueryMenuLoad(int uid,int PortType)
  60. {
  61. Result result = new Result();
  62. result.Data = new string [0];
  63. if (uid != 0)
  64. {
  65. List<MenuLoadView> DBData = new List<MenuLoadView>();
  66. string sql = $@"
  67. select a.UId,a.SmId,b.Id as Funid,b.FunctionName,b.FunctionCode,c.Id as modulid,
  68. c.Name as modulName,c.STid,d.Id as pageid ,d.Name as PageName,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon,
  69. d.IosUrl
  70. from Sys_UserAuthority a inner join Sys_PageFunctionPermission b on a.FId = b.Id
  71. inner join Sys_SystemMenuPermission d on a.SmId = d.Id inner join Sys_SetData c on c.Id = d.Mid
  72. where uid = {uid} and a.IsDel= 0 and b.IsDel = 0
  73. and b.IsEnable = 1 and c.IsDel = 0 and d.IsDel = 0 ";
  74. if (PortType == 1)
  75. {
  76. sql += $@" and b.Id = 1 and d.IsEnable = 1 group by
  77. a.UId,a.SmId,b.Id,b.FunctionName,b.FunctionCode,c.Id,
  78. c.Name,c.STid,d.Id,d.Name,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon,
  79. d.IosUrl";
  80. DBData = _sqlSugar.SqlQueryable<MenuLoadView>(sql).ToList();
  81. }
  82. else if (PortType == 2)
  83. {
  84. sql += $@" and d.phoneIsEnable = 1 group by
  85. a.UId,a.SmId,b.Id,b.FunctionName,b.FunctionCode,c.Id,
  86. c.Name,c.STid,d.Id,d.Name,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon,
  87. d.IosUrl ";
  88. DBData = _sqlSugar.SqlQueryable<MenuLoadView>(sql).ToList();
  89. }
  90. result.Code = -1;
  91. result.Msg = "暂无数据!";
  92. if (DBData.Count > 0)
  93. {
  94. result.Code = 0;
  95. result.Msg = "成功!";
  96. var arr = new ArrayList();
  97. var setDataArr = _sqlSugar.SqlQueryable<Sys_SetData>("select * from Sys_SetData ssd WHERE IsDel = 0 AND STid = 5").ToList();
  98. if (PortType == 1)
  99. {
  100. var menuGroup = DBData.GroupBy(x => x.modulid);
  101. foreach (var item in menuGroup)
  102. {
  103. var modul = item.FirstOrDefault();
  104. if (modul != null)
  105. {
  106. string Remark = setDataArr.Find(x => x.Id == modul.modulid)?.Remark;
  107. if (modul.modulName.Contains("主页"))
  108. {
  109. arr.Insert(0, new
  110. {
  111. modulName = modul.modulName,
  112. modulid = modul.modulid,
  113. pageList = item,
  114. Remark
  115. });
  116. }
  117. else
  118. {
  119. arr.Add(new
  120. {
  121. modulName = modul.modulName,
  122. modulid = modul.modulid,
  123. pageList = item,
  124. Remark
  125. });
  126. }
  127. }
  128. }
  129. }
  130. else if (PortType == 2)
  131. {
  132. var AndMenu = DBData.GroupBy(x => x.SmId).ToList();
  133. foreach (var item in AndMenu)
  134. {
  135. arr.Add(new
  136. {
  137. pageId = item.Key,
  138. opList = item.Select(x=>x.Funid).ToList(),
  139. });
  140. }
  141. }
  142. result.Data = arr;
  143. }
  144. }
  145. return result;
  146. }
  147. }
  148. }