Optimize PageModel

This commit is contained in:
__Leo__ 2022-03-04 15:31:33 +08:00
parent 831299929e
commit d166b02cd5
3 changed files with 55 additions and 26 deletions

View File

@ -16,7 +16,7 @@ namespace Blog.Core.Controllers
response = data,
};
}
// [NonAction]
// [NonAction]
//public MessageModel<T> Success<T>(T data, string msg = "成功",bool success = true)
//{
// return new MessageModel<T>()
@ -59,20 +59,15 @@ namespace Blog.Core.Controllers
};
}
[NonAction]
public MessageModel<PageModel<T>> SuccessPage<T>(int page, int dataCount, List<T> data, int pageCount, string msg = "获取成功")
public MessageModel<PageModel<T>> SuccessPage<T>(int page, int dataCount, int pageSize, List<T> data, int pageCount, string msg = "获取成功")
{
return new MessageModel<PageModel<T>>()
{
success = true,
msg = msg,
response = new PageModel<T>()
{
page = page,
dataCount = dataCount,
data = data,
pageCount = pageCount,
}
response = new PageModel<T>(page, dataCount, pageSize, data)
};
}
[NonAction]
@ -83,13 +78,7 @@ namespace Blog.Core.Controllers
{
success = true,
msg = msg,
response = new PageModel<T>()
{
page = pageModel.page,
dataCount = pageModel.dataCount,
data = pageModel.data,
pageCount = pageModel.pageCount,
}
response = pageModel
};
}
}

View File

@ -1,4 +1,6 @@
using System.Collections.Generic;
using AutoMapper;
using System;
using System.Collections.Generic;
namespace Blog.Core.Model
{
@ -14,7 +16,7 @@ namespace Blog.Core.Model
/// <summary>
/// 总页数
/// </summary>
public int pageCount { get; set; } = 6;
public int pageCount => (int)Math.Ceiling((decimal)dataCount / PageSize);
/// <summary>
/// 数据总数
/// </summary>
@ -22,12 +24,53 @@ namespace Blog.Core.Model
/// <summary>
/// 每页大小
/// </summary>
public int PageSize { set; get; }
public int PageSize { set; get; } = 20;
/// <summary>
/// 返回数据
/// </summary>
public List<T> data { get; set; }
public PageModel() { }
public PageModel(int page, int dataCount, int pageSize, List<T> data)
{
this.page = page;
this.dataCount = dataCount;
PageSize = pageSize;
this.data = data;
}
public PageModel<TOut> ConvertTo<TOut>()
{
return new PageModel<TOut>(page, dataCount, PageSize, default);
}
public PageModel<TOut> ConvertTo<TOut>(IMapper mapper)
{
var model = ConvertTo<TOut>();
if (data != null)
{
model.data = mapper.Map<List<TOut>>(data);
}
return model;
}
public PageModel<TOut> ConvertTo<TOut>(IMapper mapper, Action<IMappingOperationOptions> options)
{
var model = ConvertTo<TOut>();
if (data != null)
{
model.data = mapper.Map<List<TOut>>(data, options);
}
return model;
}
}
}

View File

@ -453,8 +453,7 @@ namespace Blog.Core.Repository.Base
.WhereIF(whereExpression != null, whereExpression)
.ToPageListAsync(intPageIndex, intPageSize, totalCount);
int pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intPageSize.ObjToDecimal())).ObjToInt();
return new PageModel<TEntity>() { dataCount = totalCount, pageCount = pageCount, page = intPageIndex, PageSize = intPageSize, data = list };
return new PageModel<TEntity>(intPageIndex, totalCount, intPageSize, list);
}
@ -510,8 +509,7 @@ namespace Blog.Core.Repository.Base
.OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds)
.WhereIF(whereExpression != null, whereExpression)
.ToPageListAsync(intPageIndex, intPageSize, totalCount);
int pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intPageSize.ObjToDecimal())).ObjToInt();
return new PageModel<TResult>() { dataCount = totalCount, pageCount = pageCount, page = intPageIndex, PageSize = intPageSize, data = list };
return new PageModel<TResult>(intPageIndex, totalCount, intPageSize, list);
}
/// <summary>
@ -543,8 +541,7 @@ namespace Blog.Core.Repository.Base
.OrderByIF(!string.IsNullOrEmpty(strOrderByFileds), strOrderByFileds)
.WhereIF(whereExpression != null, whereExpression)
.ToPageListAsync(intPageIndex, intPageSize, totalCount);
int pageCount = (Math.Ceiling(totalCount.ObjToDecimal() / intPageSize.ObjToDecimal())).ObjToInt();
return new PageModel<TResult>() { dataCount = totalCount, pageCount = pageCount, page = intPageIndex, PageSize = intPageSize, data = list };
return new PageModel<TResult>(intPageIndex, totalCount, intPageSize, list);
}
//var exp = Expressionable.Create<ProjectToUser>()