Exemplo n.º 1
0
        public IActionResult PagedList(PagedQueryMemberDto dto)
        {
            var pagedQueryMembersResult = _memberService.PagedQueryMembers(dto);

            if (pagedQueryMembersResult.Code > 0)
            {
                return(Json(pagedQueryMembersResult));
            }
            var result = new
            {
                Code    = 0,
                Message = "",
                Total   = pagedQueryMembersResult.Data.TotalCount,
                Data    = pagedQueryMembersResult.Data.List
            };

            return(Json(result));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public PublicResult <PagedList <QueryMemberItem> > PagedQueryMembers(PagedQueryMemberDto dto)
        {
            var page     = dto.Page ?? 1;
            var pageSize = dto.PageSize ?? 20;

            using (var client = DbFactory.CreateClient())
            {
                var total = 0;
                var list  = client.Queryable <Member>()
                            .WhereIF(!dto.Keyword.IsNullOrEmpty(), t => t.Username.Contains(dto.Keyword))
                            .Select(t => new QueryMemberItem()
                {
                    Id                   = t.Id,
                    Username             = t.Username,
                    Password             = t.Password,
                    PasswordSalt         = t.PasswordSalt,
                    Email                = t.Email,
                    Mobile               = t.Mobile,
                    Avatar               = t.Avatar,
                    Gender               = t.Gender,
                    Birthday             = t.Birthday,
                    RegisterIp           = t.RegisterIp,
                    RegisterDatetime     = t.RegisterDatetime,
                    LoginCount           = t.LoginCount,
                    LastLoginIp          = t.LastLoginIp,
                    LastLoginDatetime    = t.LastLoginDatetime,
                    CannotLoginUntilDate = t.CannotLoginUntilDate,
                    LastActiveDatetime   = t.LastActiveDatetime,
                    FailedLoginAttempts  = t.FailedLoginAttempts,
                    OnlineTimeCount      = t.OnlineTimeCount,
                    Address              = t.Address,
                    RegionCode           = t.RegionCode,
                    Lng                  = t.Lng,
                    Lat                  = t.Lat,
                    Geohash              = t.Geohash,
                    IsActive             = t.IsActive,
                    IsDelete             = t.IsDelete,
                    IsEmailValid         = t.IsEmailValid,
                    IsMobileValid        = t.IsMobileValid,
                    Nickname             = t.Nickname,
                })
                            .OrderBy("id DESC")
                            .ToPageList(page, pageSize, ref total);

                var memberIds = list.Select(it => it.Id).ToArray();
                var roles     = client.Queryable <MemberRole, Role>((mr, r) => new object[]
                {
                    JoinType.Left, mr.RoleId == r.Id
                })
                                .Where((mr, r) => memberIds.Contains(mr.MemberId))
                                .Select((mr, r) => new
                {
                    mr.MemberId,
                    r.Name
                })
                                .ToList();
                list.ForEach(it => { it.Roles = roles.Where(x => x.MemberId == it.Id).Select(x => x.Name).ToArray(); });

                return(new PagedList <QueryMemberItem>
                {
                    List = list,
                    Page = page,
                    PageSize = pageSize,
                    TotalCount = total
                });
            }
        }