示例#1
0
        //[AdminAuthorize(Permissions = "admin.article.index")]
        public IActionResult PagedList(PagedQueryArticleRequest request)
        {
            var list   = _articleService.PagedQueryArticles(request);
            var result = new
            {
                Code    = 0,
                Message = "",
                Total   = list.TotalCount,
                Data    = list.List
            };

            return(Json(result));
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public PagedQueryArticleResponse PagedQueryArticles(PagedQueryArticleRequest request)
        {
            var page     = request.Page ?? 1;
            var pageSize = request.PageSize ?? 20;

            ArticleModel model = null;

            using (var client = DbFactory.GetClient())
            {
                model = client.Queryable <ArticleModel>().InSingle(request.ArticleModelId);
            }

            if (model == null)
            {
                throw new AlertException("找不到文章模型");
            }

            //设置字段
            var articleProperties = GenericCache <ArticleTypeInfo>
                                    .GetOrSet(() => new ArticleTypeInfo { PropertyInfos = typeof(Article).GetProperties() })
                                    .PropertyInfos;

            var configs      = JsonConvert.DeserializeObject <List <ArticleConfiguration> >(model.Configuration);
            var selectFields = configs.Where(it => it.IsEnable && it.IsShowedInList)
                               .Select(it =>
            {
                var sugarColumn = articleProperties
                                  .FirstOrDefault(x => x.Name.Equals(it.FiledName, StringComparison.OrdinalIgnoreCase))
                                  .GetCustomAttribute <SugarColumn>();
                return(sugarColumn == null ? it.FiledName : sugarColumn.ColumnName);
            }).ToArray().Join(",");

            selectFields += selectFields.IsNullOrEmpty() ? "id,category_id" : ",id,category_id";


            //类别
            var categories = new long[] { };

            //if (request.CategoryId > 0)
            //    categories = _categoryService.GetChildrenIdsByParentId(request.CategoryId).ToArray();

            using (var client = DbFactory.GetClient())
            {
                var total = 0;

                var query = client.Queryable <Article>()
                            .Where(it => it.ArticleTypeId == request.ArticleModelId)
                            .WhereIF(request.CategoryId > 0, it => categories.Contains(it.CategoryId.Value));


                query = query.Select(selectFields);

                var list = query
                           .OrderBy("id DESC")
                           .ToPageList(page, pageSize, ref total);

                return(new PagedQueryArticleResponse()
                {
                    List = list.Select(it => new QueryArticleItem
                    {
                        Id = it.Id,
                        CategoryId = it.CategoryId,
                        Title = it.Title,
                        SubTitle = it.SubTitle,
                        TitleColor = it.TitleColor,
                        TitleBold = it.TitleBold,
                        Summary = it.Summary,
                        Content = it.Content,
                        Tags = it.Tags,
                        ThumbImage = it.ThumbImage.GetFullPath(),
                        Video = it.Video,
                        Source = it.Source,
                        Author = it.Author,
                        Hits = it.Hits,
                        Addtime = it.Addtime,
                        OrderIndex = it.OrderIndex,
                        IsTop = it.IsTop,
                        IsRecommend = it.IsRecommend,
                        SeoTitle = it.SeoTitle,
                        SeoKeyword = it.SeoKeyword,
                        SeoDescription = it.SeoDescription,
                        String1 = it.String1,
                        String2 = it.String2,
                        String3 = it.String3,
                        String4 = it.String4,
                        Int1 = it.Int1,
                        Int2 = it.Int2,
                        Int3 = it.Int3,
                        Int4 = it.Int4,
                        Decimal1 = it.Decimal1,
                        Decimal2 = it.Decimal2,
                        Decimal3 = it.Decimal3,
                        Decimal4 = it.Decimal4,
                        Datetime1 = it.Datetime1,
                        Datetime2 = it.Datetime2,
                        Datetime3 = it.Datetime3,
                        Datetime4 = it.Datetime4,
                        Bool1 = it.Bool1,
                        Bool2 = it.Bool2,
                        Bool3 = it.Bool3,
                        Bool4 = it.Bool4,
                        Text1 = it.Text1,
                        Text2 = it.Text2,
                        Text3 = it.Text3,
                        Text4 = it.Text4
                    }).ToList(),
                    Page = page,
                    PageSize = pageSize,
                    TotalCount = total
                });
            }
        }