/// <summary> /// https://github.com/2881099/FreeSql/wiki/%e8%bf%94%e5%9b%9e%e6%9f%a5%e8%af%a2%e7%9a%84%e6%95%b0%e6%8d%ae 返回更为复杂的结构 /// </summary> /// <param name="searchDto"></param> /// <returns></returns> public PagedResultDto <UserDto> GetUserList(UserSearchDto searchDto) { ISelect <LinUser> select = _userRepository.Select .Where(r => r.Admin == (int)UserAdmin.Common) .WhereIf(searchDto.GroupId != null, r => r.GroupId == searchDto.GroupId); List <UserDto> linUsers = select .OrderByDescending(r => r.Id) .From <LinGroup>((a, b) => a.LeftJoin(c => c.GroupId == b.Id) ) .Page(searchDto.Page + 1, searchDto.Count) .ToList((a, b) => new { user = a, GroupName = b.Name }).Select(r => { UserDto userDto = _mapper.Map <UserDto>(r.user); userDto.GroupName = r.GroupName; return(userDto); }).ToList(); long totalNums = select.Count(); return(new PagedResultDto <UserDto>(linUsers, totalNums)); }
/// <summary> /// Creates the specified source. /// </summary> /// <param name="source">The source.</param> /// <param name="pageNumber">The page number.</param> /// <param name="pageSize">Size of the page.</param> /// <returns></returns> public static PagedList <T> Create(ISelect <T> source, int pageNumber, int pageSize) { var count = source.Count(); var items = source.Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList(); return(new PagedList <T>(items, count, pageNumber, pageSize)); }
/// <summary> /// @xis 模糊查询入库单 /// </summary> /// <param name="selector">列选择器</param> /// <param name="order_sn">订单号</param> /// <param name="position_id">职位id</param> /// <param name="page_index">页码</param> /// <param name="page_size">数量</param> /// <returns></returns> public async Task <PaginerData <t_stock_in> > GetStockHasByVagueOrderSn(Func <t_stock_in, dynamic> selector, string order_sn, int position_id, int page_index, int page_size = 15) { ISelect <t_stock_in> select = g_sqlMaker.Select(selector); ISelect <t_stock_in> select_count = g_sqlMaker.Select <t_stock_in>(null); IWhere <t_stock_in> where_data; IWhere <t_stock_in> where_count; if (!string.IsNullOrWhiteSpace(order_sn)) { where_data = select.Where("order_sn", "like", "@order_sn"); where_count = select_count.Count().Where("order_sn", "like", "@order_sn"); } else { where_data = select.Where(); where_count = select_count.Count().Where(); } string sql_data = where_data .And("position_id", "in", "@position_ids") .And("status", "=", "@status") .OrderByDesc("add_time") .Pager(page_index, page_size) .ToSQL(); string sql_count = where_count .And("status", "=", "@status") .ToSQL(); IPositionServer positionServer = new PositionServerImpl(g_dbHelper, g_logServer); List <int> position_ids = (await positionServer.GetSubordinatePositions(s => new { s.id }, position_id)).Select(s => s.id).ToList(); position_ids.Insert(0, position_id); PaginerData <t_stock_in> paginer_data = new PaginerData <t_stock_in> { Data = await g_dbHelper.QueryListAsync <t_stock_in>(sql_data, new { order_sn = $"%{order_sn}%", position_ids = position_ids, status = (int)EnumStatus.Enable, state = (int)EnumState.Normal }), page_index = page_index, page_size = page_size, total = await g_dbHelper.QueryAsync <int>(sql_count, new { order_sn = $"%{order_sn}%", status = (int)EnumStatus.Enable, state = (int)EnumState.Normal }) }; return(paginer_data); }
public PagedResultDto <User> Get([FromQuery] PageDto pageDto) { ISelect <User> selectPost = _fsql .Select <User>(); List <User> lists = selectPost .Page(pageDto.PageNumber, pageDto.PageSize) .ToList(); long total = selectPost.Count(); return(new PagedResultDto <User>(total, lists)); }
public PagedResultDto <Post> Get([FromQuery] SearchPostDto searchPostDto) { ISelect <Post> selectPost = _fsql .Select <Post>() .Where(r => r.BlogId == searchPostDto.BlogId); List <Post> posts = selectPost.OrderByDescending(r => r.ReplyTime) .Page(searchPostDto.PageNumber, searchPostDto.PageSize) .ToList(); long total = selectPost.Count(); return(new PagedResultDto <Post>(total, posts)); }
protected virtual Page <TEntity> ToPage(ISelect <TEntity> condition, int pageIndex, int pageSize, string orderBy) { // 获取总数,分页数据有先后执行顺序要求 // Count前不允许使用OrderBy var total = condition.Count(); var page = condition .OrderBy(!string.IsNullOrWhiteSpace(orderBy), orderBy) .Page(pageIndex, pageSize).ToList(); return(new Page <TEntity> { Items = page, TotalItems = total }); }
/// <summary> /// 分页处理并映射Dto,异步 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <typeparam name="TResult"></typeparam> /// <param name="source"></param> /// <param name="pageDto"></param> /// <param name="count"></param> /// <returns></returns> public static Task <List <TResult> > ToPageListAsync <TEntity, TResult>(this ISelect <TEntity> source, PagingDto pageDto, out long count) where TEntity : class { return(source.Count(out count).Page(pageDto.Page, pageDto.Size).ToListAsync <TResult>()); }
/// <summary> /// 分页处理,同步 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="source"></param> /// <param name="pageDto"></param> /// <param name="count"></param> /// <returns></returns> public static List <TEntity> ToPageList <TEntity>(this ISelect <TEntity> source, PagingDto pageDto, out long count) where TEntity : class { return(source.Count(out count).Page(pageDto.Page, pageDto.Size).ToList()); }
public static long Count <T>(ISelect <T> select) where T : class => select.Count();
/// <summary> /// 异步分页查询,返回输出结果数据集 /// </summary> /// <typeparam name="TEntity">查询实体对象</typeparam> /// <typeparam name="TResult">输出结果对象</typeparam> /// <param name="source">查询数据源</param> /// <param name="input">分页信息</param> /// <param name="count">查询数据总数</param> /// <returns>分页查询,返回输出结果数据集</returns> public static Task <List <TResult> > ToPagingListAsync <TEntity, TResult>(this ISelect <TEntity> source, PagingInput input, out long count) where TEntity : class { return(source.Count(out count).Page(input.PageIndex, input.PageSize).ToListAsync <TResult>()); }
/// <summary> /// 分页查询 /// </summary> /// <typeparam name="TEntity">查询实体对象</typeparam> /// <param name="source">查询数据源</param> /// <param name="input">分页信息</param> /// <param name="count">查询数据总数</param> /// <returns>返回分页查询结果</returns> public static List <TEntity> ToPagingList <TEntity>(this ISelect <TEntity> source, PagingInput input, out long count) where TEntity : class { return(source.Count(out count).Page(input.PageIndex, input.PageSize).ToList()); }
public static List <TResult> ToPagerList <TEntity, TResult>(this ISelect <TEntity> source, PageDto pageDto, out long count) where TEntity : class { return(source.Count(out count).Page(pageDto.Page + 1, pageDto.Count).ToList <TResult>()); }
public static ISelect <TEntity> ToPager <TEntity>(this ISelect <TEntity> source, PageDto pageDto, out long count) where TEntity : class { return(source.Count(out count).Page(pageDto.Page + 1, pageDto.Count)); }
/// <summary> /// Page 方法是从1开始 /// </summary> /// <typeparam name="T1"></typeparam> /// <typeparam name="T2"></typeparam> /// <param name="source"></param> /// <param name="pageDto"></param> /// <param name="count"></param> /// <returns></returns> public static ISelect <T1, T2> ToPager <T1, T2>(this ISelect <T1, T2> source, PageDto pageDto, out long count) where T1 : class where T2 : class { return(source.Count(out count).Page(pageDto.Page + 1, pageDto.Count)); }
public static Task <List <TEntity> > ToPagerListAsync <TEntity>(this ISelect <TEntity> source, PageDto pageDto, out long count) where TEntity : class { return(source.Count(out count).Page(pageDto.Page + 1, pageDto.Count).ToListAsync()); }
public static List <TEntity> ToPagerList <TEntity>(this ISelect <TEntity> source, PageDto pageDto, out long count) where TEntity : class { count = source.Count(); //Page 方法是从1开始 return(source.Page(pageDto.Page + 1, pageDto.Count).ToList()); }