using DOAN.Repository;
using Mapster;
using MES_Model.Model;
namespace MES_Model.Service
{
///
/// 基础服务定义
///
///
public class BaseService : BaseRepository where T : class, new()
{
}
///
/// 分页查询扩展
///
public static class QueryableExtension
{
///
/// 读取列表
///
///
/// 查询表单式
/// 分页参数
///
public static PagedInfo ToPage(this ISugarQueryable source, PagerInfo parm)
{
var page = new PagedInfo();
var total = 0;
page.PageSize = parm.PageSize;
page.PageIndex = parm.PageNum;
if (parm.Sort.IsNotEmpty())
{
source.OrderByPropertyName(parm.Sort, parm.SortType.Contains("desc") ? OrderByType.Desc : OrderByType.Asc);
}
page.Result = source
//.OrderByIF(parm.Sort.IsNotEmpty(), $"{parm.Sort.ToSqlFilter()} {(!string.IsNullOrWhiteSpace(parm.SortType) && parm.SortType.Contains("desc") ? "desc" : "asc")}")
.ToPageList(parm.PageNum, parm.PageSize, ref total);
page.TotalNum = total;
return page;
}
///
/// 转指定实体类Dto
///
///
///
///
///
///
public static PagedInfo ToPage(this ISugarQueryable source, PagerInfo parm)
{
var page = new PagedInfo();
var total = 0;
page.PageSize = parm.PageSize;
page.PageIndex = parm.PageNum;
if (parm.Sort.IsNotEmpty())
{
source.OrderByPropertyName(parm.Sort, parm.SortType.Contains("desc") ? OrderByType.Desc : OrderByType.Asc);
}
var result = source
//.OrderByIF(parm.Sort.IsNotEmpty(), $"{parm.Sort.ToSqlFilter()} {(!string.IsNullOrWhiteSpace(parm.SortType) && parm.SortType.Contains("desc") ? "desc" : "asc")}")
.ToPageList(parm.PageNum, parm.PageSize, ref total);
page.TotalNum = total;
page.Result = result.Adapt>();
return page;
}
///
/// 分页查询 不转
///
///
///
///
///
public static PagedInfo ToPage_NO_Convert(this ISugarQueryable source, PagerInfo parm)
{
var page = new PagedInfo();
var total = 0;
page.PageSize = parm.PageSize;
page.PageIndex = parm.PageNum;
if (parm.Sort.IsNotEmpty())
{
source.OrderByPropertyName(parm.Sort, parm.SortType.Contains("desc") ? OrderByType.Desc : OrderByType.Asc);
}
var result = source
//.OrderByIF(parm.Sort.IsNotEmpty(), $"{parm.Sort.ToSqlFilter()} {(!string.IsNullOrWhiteSpace(parm.SortType) && parm.SortType.Contains("desc") ? "desc" : "asc")}")
.ToPageList(parm.PageNum, parm.PageSize, ref total);
page.TotalNum = total;
page.Result = result;
return page;
}
}
}