using System.Collections.Generic;
|
using System.Threading.Tasks;
|
using SqlSugar;
|
|
namespace ZTICInterface.Core.Extend;
|
|
public class Page<T>
|
{
|
/// <summary>
|
/// 当前页索引
|
/// </summary>
|
public int PageIndex { get; set; }
|
/// <summary>
|
/// 总页数
|
/// </summary>
|
public int TotalPages => TotalItems != 0 ? (TotalItems % PageSize) == 0 ? (TotalItems / PageSize) : (TotalItems / PageSize) + 1 : 0;
|
/// <summary>
|
/// 总记录数
|
/// </summary>
|
public int TotalItems { get; set; }
|
/// <summary>
|
/// 每页的记录数
|
/// </summary>
|
public int PageSize { get; set; }
|
/// <summary>
|
/// 数据集
|
/// </summary>
|
public List<T> Items { get; set; }
|
}
|
|
public static class PageExtension
|
{
|
/// <summary>
|
/// 读取列表QueryableExtension
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="query"></param>
|
/// <param name="pageIndex"></param>
|
/// <param name="pageSize"></param>
|
/// <param name="isOrderBy"></param>
|
/// <returns></returns>
|
public static async Task<Page<T>> ToPageAsync<T>(this ISugarQueryable<T> query,
|
int pageIndex,
|
int pageSize,
|
bool isOrderBy = false)
|
{
|
RefAsync<int> totalItems = 0;
|
var page = new Page<T>();
|
page.Items = await query.ToPageListAsync(pageIndex, pageSize, totalItems);
|
page.PageIndex = pageIndex;
|
page.PageSize = pageSize;
|
page.TotalItems = totalItems;
|
return page;
|
}
|
|
/// <summary>
|
/// 读取列表
|
/// </summary>
|
/// <typeparam name="T"></typeparam>
|
/// <param name="query"></param>
|
/// <param name="pageIndex"></param>
|
/// <param name="pageSize"></param>
|
/// <param name="isOrderBy"></param>
|
/// <returns></returns>
|
public static Page<T> ToPage<T>(this ISugarQueryable<T> query,
|
int pageIndex,
|
int pageSize,
|
bool isOrderBy = false)
|
{
|
var page = new Page<T>();
|
var totalItems = 0;
|
page.Items = query.ToPageList(pageIndex, pageSize, ref totalItems);
|
page.PageIndex = pageIndex;
|
page.PageSize = pageSize;
|
page.TotalItems = totalItems;
|
return page;
|
}
|
}
|