90 lines
2.9 KiB
C#
90 lines
2.9 KiB
C#
using JSMachine.WMS.Domain.IRepository;
|
|
using JSMachine.WMS.Domain.Repository;
|
|
using System.Collections.Generic;
|
|
|
|
namespace JSMachine.WMS.Domain.Entity
|
|
{
|
|
/// <summary>
|
|
/// 通用分页查询结果,封装分页统计信息和当前页数据。
|
|
/// </summary>
|
|
/// <typeparam name="T">页数据的元素类型。</typeparam>
|
|
public class PagedResult<T>
|
|
{
|
|
public static readonly PagedResult<T> EmptyPagedResult = new PagedResult<T>(0, 0, 0, 0, null);
|
|
|
|
#region Public Properties
|
|
/// <summary>
|
|
/// 总记录数
|
|
/// </summary>
|
|
public int TotalRecords { get; set; }
|
|
|
|
/// <summary>
|
|
/// 总页数
|
|
/// </summary>
|
|
public int TotalPages { get; set; }
|
|
|
|
/// <summary>
|
|
/// 每页的记录数
|
|
/// </summary>
|
|
public int PageSize { get; set; }
|
|
|
|
/// <summary>
|
|
/// 当前页码
|
|
/// </summary>
|
|
public int PageNumber { get; set; }
|
|
|
|
/// <summary>
|
|
/// 获取或设置当前页码的记录
|
|
/// </summary>
|
|
public List<T> PageData { get; set; }
|
|
|
|
#endregion
|
|
|
|
|
|
/// <summary>
|
|
/// 创建空的分页结果,页数据初始化为空集合。
|
|
/// </summary>
|
|
public PagedResult()
|
|
{
|
|
this.PageData = new List<T>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 使用完整分页统计信息创建结果。
|
|
/// </summary>
|
|
/// <param name="totalRecords">符合条件的总记录数。</param>
|
|
/// <param name="totalPages">总页数。</param>
|
|
/// <param name="pageSize">每页记录数。</param>
|
|
/// <param name="pageNumber">当前页码。</param>
|
|
/// <param name="data">当前页数据。</param>
|
|
public PagedResult(int totalRecords, int totalPages, int pageSize, int pageNumber, List<T> data)
|
|
{
|
|
this.TotalPages = totalPages;
|
|
this.TotalRecords = totalRecords;
|
|
this.PageSize = pageSize;
|
|
this.PageNumber = pageNumber;
|
|
this.PageData = data;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据总记录数和分页参数计算总页数并创建结果。
|
|
/// </summary>
|
|
/// <param name="totalRecords">符合条件的总记录数。</param>
|
|
/// <param name="pageSize">每页记录数。</param>
|
|
/// <param name="pageNumber">当前页码。</param>
|
|
/// <param name="data">当前页数据。</param>
|
|
public PagedResult(int totalRecords, int pageSize, int pageNumber, List<T> data)
|
|
{
|
|
if (pageSize > 0)
|
|
{
|
|
this.TotalPages = totalRecords % pageSize == 0 ? totalRecords / pageSize : totalRecords / pageSize + 1;
|
|
}
|
|
|
|
this.TotalRecords = totalRecords;
|
|
this.PageSize = pageSize;
|
|
this.PageNumber = pageNumber;
|
|
this.PageData = data;
|
|
}
|
|
}
|
|
}
|