99 lines
3.6 KiB
C#
99 lines
3.6 KiB
C#
|
|
using DOAN.Repository;
|
|
using Mapster;
|
|
using MES_Model.Model;
|
|
|
|
|
|
namespace MES_Model.Service
|
|
{
|
|
/// <summary>
|
|
/// 基础服务定义
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
public class BaseService<T> : BaseRepository<T> where T : class, new()
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分页查询扩展
|
|
/// </summary>
|
|
public static class QueryableExtension
|
|
{
|
|
/// <summary>
|
|
/// 读取列表
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="source">查询表单式</param>
|
|
/// <param name="parm">分页参数</param>
|
|
/// <returns></returns>
|
|
public static PagedInfo<T> ToPage<T>(this ISugarQueryable<T> source, PagerInfo parm)
|
|
{
|
|
var page = new PagedInfo<T>();
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转指定实体类Dto
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <typeparam name="T2"></typeparam>
|
|
/// <param name="source"></param>
|
|
/// <param name="parm"></param>
|
|
/// <returns></returns>
|
|
public static PagedInfo<T2> ToPage<T, T2>(this ISugarQueryable<T> source, PagerInfo parm)
|
|
{
|
|
var page = new PagedInfo<T2>();
|
|
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<List<T2>>();
|
|
return page;
|
|
}
|
|
/// <summary>
|
|
/// 分页查询 不转
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="source"></param>
|
|
/// <param name="parm"></param>
|
|
/// <returns></returns>
|
|
public static PagedInfo<T> ToPage_NO_Convert<T>(this ISugarQueryable<T> source, PagerInfo parm)
|
|
{
|
|
var page = new PagedInfo<T>();
|
|
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;
|
|
}
|
|
}
|
|
}
|