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<Sys_SystemMenuPermission, SystemMenuPermissionView>
{
public SystemMenuPermissionRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
{
}
/// <summary>
/// 分页查询页面表
/// </summary>
/// <param name="_SystemMenuPermissionRepository"></param>
/// <param name="mid">模块id</param>
/// <param name="pageSize">行数</param>
/// <param name="currentPage">页码</param>
/// <returns></returns>
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<Sys_SystemMenuPermission>(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();
result.Data = new string [0];
if (uid != 0)
{
List<MenuLoadView> DBData = new List<MenuLoadView>();
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<MenuLoadView>(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<MenuLoadView>(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;
}
}
}