예제 #1
0
        /// <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));
        }
예제 #2
0
        /// <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));
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        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));
        }
예제 #5
0
        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));
        }
예제 #6
0
        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
            });
        }
예제 #7
0
 /// <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>());
 }
예제 #8
0
 /// <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());
 }
예제 #9
0
 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());
 }
예제 #12
0
 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>());
 }
예제 #13
0
 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));
 }
예제 #14
0
 /// <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());
 }