Esempio n. 1
0
        /// <summary>
        /// 获取评论列表
        /// </summary>
        /// <param name="blogId"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public async Task <CommonPageResultDto <CommentViewDto> > CommentList(string blogId, int pageIndex, int pageSize)
        {
            CommonPageResultDto <CommentViewDto> rlt = new CommonPageResultDto <CommentViewDto>();
            var qry = await(from a in _context.tbl_comment.Where(i => i.BlogId == blogId)
                            join b in _context.tbl_user
                            on a.From equals b.Id
                            join c in _context.tbl_user
                            on a.To equals c.Id into temp
                            from g in temp.DefaultIfEmpty()
                            select new CommentViewDto
            {
                Id              = a.Id,
                FromUserName    = b.Name,
                ToUserName      = g == null ? null : g.Name,
                CurrentFloorNum = a.CurrentFloorNum,
                ToFloorNum      = a.ToFloorNum,
                CreateAt        = a.CreateAt,
                Address         = b.LastLoginAddr,
                LikeTimes       = a.LikeTimes,
                Content         = a.Content
            }).ToListAsync();

            rlt.DataCount = qry.Count;
            rlt.Page      = pageIndex;
            rlt.PageSize  = pageSize;
            rlt.PageCount = (qry.Count + pageSize - 1) / pageSize;
            rlt.Data      = qry.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();

            return(rlt);
        }
Esempio n. 2
0
        /// <summary>
        /// 用户列表
        /// </summary>
        /// <param name="keyword"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public async Task <CommonPageResultDto <UserViewDto> > UserList(string keyword, int pageIndex, int pageSize)
        {
            CommonPageResultDto <UserViewDto> rlt = new CommonPageResultDto <UserViewDto>();
            var qry = await _context.tbl_user.OrderBy(s => s.RegisterAt).Select(i => _mapper.Map <UserViewDto>(i)).ToListAsync();

            qry           = String.IsNullOrEmpty(keyword) ? qry : qry.Where(i => i.Name.Contains(keyword) || i.Email.Contains(keyword)).ToList();
            rlt.DataCount = qry.Count;
            rlt.Page      = pageIndex;
            rlt.PageSize  = pageSize;
            rlt.PageCount = (qry.Count + pageSize - 1) / pageSize;
            rlt.Data      = qry.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();

            return(rlt);
        }
Esempio n. 3
0
        /// <summary>
        /// 查询博客列表
        /// </summary>
        /// <param name="keyword"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public async Task <CommonPageResultDto <BlogListViewDto> > BlogList(string keyword, int pageIndex, int pageSize)
        {
            CommonPageResultDto <BlogListViewDto> rlt = new CommonPageResultDto <BlogListViewDto>();
            List <BlogListViewDto> qry = await(from a in _context.tbl_blog
                                               join b in _context.tbl_blog_content
                                               on a.ContentId equals b.Id
                                               join c in _context.tbl_category
                                               on a.CategoryId equals c.Id
                                               where a.DeleteAt == null
                                               select new BlogListViewDto
            {
                Id           = a.Id,
                Title        = a.Title,
                Content      = b.Content,
                CreateAt     = a.CreateAt,
                UpdateAt     = a.UpdateAt,
                PublishAt    = a.PublishAt,
                CategoryName = c.Name,
                StateName    = a.State == '1' ? "未发布" : "已发布",
                ViewTimes    = a.ViewTimes,
                LikeTimes    = a.LikeTimes
            }).OrderByDescending(i => i.CreateAt).ThenByDescending(i => i.UpdateAt).ToListAsync();

            IQueryable <BlogTagQryDto> tagRlt = (from a in _context.tbl_blog_tag_relation
                                                 join b in _context.tbl_tag
                                                 on a.TagId equals b.Id
                                                 select new BlogTagQryDto {
                BlogId = a.BlogId, TagName = b.Name
            });

            qry = String.IsNullOrEmpty(keyword) ? qry : qry.Where(i => i.Title.Contains(keyword) || i.Content.Contains(keyword)).ToList();
            foreach (var item in qry)
            {
                item.TagNameList = await tagRlt.Where(i => i.BlogId == item.Id).Select(i => i.TagName).ToListAsync();
            }
            rlt.DataCount = qry.Count;
            rlt.Page      = pageIndex;
            rlt.PageSize  = pageSize;
            rlt.PageCount = (qry.Count + pageSize - 1) / pageSize;
            rlt.Data      = qry.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();

            return(rlt);
        }
Esempio n. 4
0
        /// <summary>
        /// 查询博客列表
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public async Task <CommonPageResultDto <BlogListViewDto> > BlogList(ConditionParamDto condition, int pageIndex, int pageSize)
        {
            CommonPageResultDto <BlogListViewDto> rlt = new CommonPageResultDto <BlogListViewDto>();
            List <tbl_blog> list = new List <tbl_blog>();

            //if (!String.IsNullOrEmpty(condition.Keyword))
            //{
            //    list = await (from a in _context.tbl_blog.Where(i => i.Title.Contains(condition.Keyword))
            //                 join b in _context.tbl_blog_content.Where(i => i.Content.Contains(condition.Keyword))
            //                 on a.ContentId equals b.Id
            //                 select a).ToListAsync();
            //}
            if (!String.IsNullOrEmpty(condition.CategoryId))
            {
                list = _context.tbl_blog.Where(i => i.CategoryId == condition.CategoryId && i.DeleteAt == null).ToList();
            }
            else if (!String.IsNullOrEmpty(condition.TagId))
            {
                list = (from a in _context.tbl_blog.Where(i => i.DeleteAt == null)
                        join b in _context.tbl_blog_tag_relation.Where(i => i.TagId == condition.TagId)
                        on a.Id equals b.BlogId
                        select a).ToList();
            }
            else
            {
                list = await _context.tbl_blog.Where(i => i.DeleteAt == null).ToListAsync();
            }

            List <BlogListViewDto> commentGroup = await(from a in _context.tbl_comment
                                                        group a by a.BlogId into g
                                                        select new BlogListViewDto
            {
                Id           = g.Key,
                CommentTimes = g.Count()
            }).ToListAsync();

            List <BlogListViewDto> qry = (from a in list
                                          join b in _context.tbl_blog_content
                                          on a.ContentId equals b.Id
                                          join c in _context.tbl_category
                                          on a.CategoryId equals c.Id
                                          join d in commentGroup
                                          on a.Id equals d.Id into temp
                                          from g in temp.DefaultIfEmpty()
                                          select new BlogListViewDto
            {
                Id = a.Id,
                Title = a.Title,
                Content = b.Content,
                CreateAt = a.CreateAt,
                ViewTimes = a.ViewTimes,
                LikeTimes = a.LikeTimes,
                PicUrl = a.PicUrl,
                CommentTimes = g == null ? 0 : g.CommentTimes                             // _context.tbl_comment.Count(i=>i.BlogId == a.Id)
            }).ToList();

            IQueryable <TagViewDto> tagRlt = (from a in _context.tbl_blog_tag_relation
                                              join b in _context.tbl_tag
                                              on a.TagId equals b.Id
                                              select new TagViewDto {
                BlogId = a.BlogId, TagName = b.Name, TagId = b.Id, Sequence = b.Sequence
            });

            qry = String.IsNullOrEmpty(condition.Keyword) ? qry : qry.Where(i => i.Title.Contains(condition.Keyword) || i.Content.Contains(condition.Keyword)).ToList();
            foreach (var item in qry)
            {
                item.TagList = await tagRlt.Where(i => i.BlogId == item.Id).Select(i => i).ToListAsync();
            }

            rlt.DataCount = qry.Count;
            rlt.Page      = pageIndex;
            rlt.PageSize  = pageSize;
            rlt.PageCount = (qry.Count + pageSize - 1) / pageSize;
            rlt.Data      = qry.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();

            return(rlt);
        }