wx
2022-02-18 dbe3a91f87f65e893ae1e82f829e1a45496644d7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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;
    }
}