using OASystem.Domain; using OASystem.Domain.Entities.System; using OASystem.Domain.ViewModels.System; using System.Collections; namespace OASystem.Infrastructure.Repositories.System { public class SystemMenuPermissionRepository : BaseRepository { public SystemMenuPermissionRepository(SqlSugarClient sqlSugar) : base(sqlSugar) { } /// /// 分页查询页面表 /// /// /// 模块id /// 行数 /// 页码 /// public Result GetSystemMenuViweData(SystemMenuPermissionRepository _SystemMenuPermissionRepository,int mid,int pageSize,int currentPage) { Result result = new Result(); if (currentPage == 0 || pageSize == 0) { return result; } string sql = $@"select top {pageSize} * from (select row_number() over(order by id asc) as rownumber,* from Sys_SystemMenuPermission where mid = {mid} and isdel = 0 and IsEnable = 1 ) temp_row where rownumber> {(currentPage - 1) * pageSize};"; var DBdata = _SystemMenuPermissionRepository.GetListBySqlWithNolock(sql); if (DBdata == null || DBdata.Count == 0) { result.Code = -1; result.Msg = "暂无数据!"; result.Data = new { DBdata, total = 0 }; return result; } var total = _SystemMenuPermissionRepository.Query(x => x.Mid == mid).Count(); result.Code = 0; result.Msg = "成功!"; result.Data = new { DBdata = DBdata.Select(x => new SystemMenuPermissionView { Id = x.Id, Name = x.Name, Mid = mid, SystemMenuCode = x.SystemMenuCode }), total = total }; return result; } public Result QueryMenuLoad(int uid,int PortType) { Result result = new Result(); if (uid != 0) { List DBData = new List(); string sql = $@" select a.UId,a.SmId,b.Id as Funid,b.FunctionName,b.FunctionCode,c.Id as modulid, c.Name as modulName,c.STid,d.Id as pageid ,d.Name as PageName,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon, d.IosUrl from Sys_UserAuthority a inner join Sys_PageFunctionPermission b on a.FId = b.Id inner join Sys_SystemMenuPermission d on a.SmId = d.Id inner join Sys_SetData c on c.Id = d.Mid where uid = {uid} and a.IsDel= 0 and b.IsDel = 0 and b.IsEnable = 1 and c.IsDel = 0 and d.IsDel = 0 "; if (PortType == 1) { sql += $@" and b.Id = 1 and d.IsEnable = 1 group by a.UId,a.SmId,b.Id,b.FunctionName,b.FunctionCode,c.Id, c.Name,c.STid,d.Id,d.Name,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon, d.IosUrl"; DBData = _sqlSugar.SqlQueryable(sql).ToList(); } else if (PortType == 2) { sql += $@" and d.phoneIsEnable = 1 group by a.UId,a.SmId,b.Id,b.FunctionName,b.FunctionCode,c.Id, c.Name,c.STid,d.Id,d.Name,d.SystemMenuCode,d.webUrl,d.AndroidUrl,d.icon, d.IosUrl "; DBData = _sqlSugar.SqlQueryable(sql).ToList(); } result.Code = -1; result.Msg = "暂无数据!"; if (DBData.Count > 0) { result.Code = 0; result.Msg = "成功!"; var arr = new ArrayList(); if (PortType == 1) { var menuGroup = DBData.GroupBy(x => x.modulid); foreach (var item in menuGroup) { var modul = item.FirstOrDefault(); if (modul != null) { if (modul.modulName.Contains("主页")) { arr.Insert(0, new { modulName = modul.modulName, modulid = modul.modulid, pageList = item }); } else { arr.Add(new { modulName = modul.modulName, modulid = modul.modulid, pageList = item }); } } } } else if (PortType == 2) { var AndMenu = DBData.GroupBy(x => x.SmId).ToList(); foreach (var item in AndMenu) { arr.Add(new { pageId = item.Key, opList = item.Select(x=>x.Funid).ToList(), }); } } result.Data = arr; } } return result; } } }