You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.7 KiB
C#
67 lines
1.7 KiB
C#
using Mapster;
|
|
using MapsterMapper;
|
|
using System.Collections.Generic;
|
|
|
|
namespace EntrustSettle.Model
|
|
{
|
|
/// <summary>
|
|
/// 通用分页信息类
|
|
/// </summary>
|
|
public class PageModel<T>
|
|
{
|
|
/// <summary>
|
|
/// 返回数据
|
|
/// </summary>
|
|
public List<T> data { get; set; }
|
|
/// <summary>
|
|
/// 数据总数
|
|
/// </summary>
|
|
public int dataCount { get; set; }
|
|
/// <summary>
|
|
/// 当前页标
|
|
/// </summary>
|
|
public int pageIndex { get; set; } = 1;
|
|
/// <summary>
|
|
/// 总页数
|
|
/// </summary>
|
|
public int pageCount => (int)System.Math.Ceiling((decimal)dataCount / pageSize);
|
|
/// <summary>
|
|
/// 每页大小
|
|
/// </summary>
|
|
public int pageSize { set; get; }
|
|
|
|
public PageModel() { }
|
|
|
|
public PageModel(int page, int dataCount, int pageSize, List<T> data)
|
|
{
|
|
this.pageIndex = page;
|
|
this.dataCount = dataCount;
|
|
this.pageSize = pageSize;
|
|
this.data = data;
|
|
}
|
|
|
|
public PageModel<TOut> ConvertTo<TOut>(bool isAdapt)
|
|
{
|
|
var model = new PageModel<TOut>(pageIndex, dataCount, pageSize, default);
|
|
|
|
if (isAdapt)
|
|
{
|
|
model.data = data.Adapt<List<TOut>>();
|
|
}
|
|
|
|
return model;
|
|
}
|
|
|
|
public PageModel<TOut> ConvertTo<TOut>(TypeAdapterConfig adapterConfig)
|
|
{
|
|
var model = new PageModel<TOut>(pageIndex, dataCount, pageSize, default);
|
|
|
|
var mapper = new Mapper(adapterConfig);
|
|
model.data = mapper.Map<List<TOut>>(data);
|
|
|
|
return model;
|
|
}
|
|
}
|
|
|
|
}
|