// Copyright (c) 2022-Now 少林寺驻北固山办事处大神父王喇嘛 // // SimpleAdmin 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款: // 1.请不要删除和修改根目录下的LICENSE文件。 // 2.请不要删除和修改SimpleAdmin源码头部的版权声明。 // 3.分发源码时候,请注明软件出处 https://gitee.com/dotnetmoyu/SimpleAdmin // 4.基于本软件的作品,只能使用 SimpleAdmin 作为后台服务,除外情况不可商用且不允许二次分发或开源。 // 5.请不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。 // 6.任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。 namespace SimpleAdmin.SqlSugar; /// /// SqlSugar分页拓展类 /// public static class SqlSugarPageExtension { /// /// SqlSugar分页扩展 /// /// /// /// /// /// public static SqlSugarPagedList ToPagedList(this ISugarQueryable queryable, int pageNum, int pageSize) { var total = 0; var list = queryable.ToPageList(pageSize, pageNum, ref total); var pages = (int)Math.Ceiling(total / (double)pageSize); return new SqlSugarPagedList { PageNum = pageSize, PageSize = pageNum, List = list, Total = total, Pages = pages, HasNextPages = pageSize < pages, HasPrevPages = pageSize - 1 > 0 }; } /// /// SqlSugar分页扩展 /// /// /// /// /// /// public static async Task> ToPagedListAsync(this ISugarQueryable queryable, int pageNum, int pageSize) { RefAsync totalCount = 0; var list = await queryable.ToPageListAsync(pageNum, pageSize, totalCount); var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize); return new SqlSugarPagedList { PageNum = pageNum, PageSize = pageSize, List = list, Total = (int)totalCount, Pages = totalPages, HasNextPages = pageNum < totalPages, HasPrevPages = pageNum - 1 > 0 }; } /// /// SqlSugar分页扩展 /// /// /// /// /// /// /// /// public static SqlSugarPagedList ToPagedList(this ISugarQueryable queryable, int pageNum, int pageSize, Expression> expression) { var totalCount = 0; var items = queryable.ToPageList(pageNum, pageSize, ref totalCount, expression); var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize); return new SqlSugarPagedList { PageNum = pageNum, PageSize = pageSize, List = items, Total = totalCount, Pages = totalPages, HasNextPages = pageNum < totalPages, HasPrevPages = pageNum - 1 > 0 }; } /// /// SqlSugar分页扩展 /// /// /// /// /// /// /// /// public static async Task> ToPagedListAsync(this ISugarQueryable queryable, int pageNum, int pageSize, Expression> expression) { RefAsync totalCount = 0; var items = await queryable.ToPageListAsync(pageNum, pageSize, totalCount, expression); var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize); return new SqlSugarPagedList { PageNum = pageNum, PageSize = pageSize, List = items, Total = (int)totalCount, Pages = totalPages, HasNextPages = pageNum < totalPages, HasPrevPages = pageNum - 1 > 0 }; } /// /// 分页查询 /// /// /// 数据列表 /// 当前页 /// 每页数量 /// 分页集合 public static LinqPagedList LinqPagedList(this List list, int pageNum, int pageSize) { var result = list.ToPagedList(pageNum, pageSize);//获取分页 //格式化 return new LinqPagedList { PageNum = pageNum, PageSize = result.PageSize, List = result.Data, Total = result.TotalCount, Pages = result.TotalPages, HasNextPages = result.HasNext, HasPrevPages = result.HasPrev }; } } /// /// SqlSugar 分页泛型集合 /// /// public class SqlSugarPagedList { /// /// 页码 /// public int PageNum { get; set; } /// /// 数量 /// public int PageSize { get; set; } /// /// 总条数 /// public int Total { get; set; } /// /// 总页数 /// public int Pages { get; set; } /// /// 当前页集合 /// public IEnumerable List { get; set; } /// /// 是否有上一页 /// public bool HasPrevPages { get; set; } /// /// 是否有下一页 /// public bool HasNextPages { get; set; } }