Beispiel #1
0
        /// <summary>
        /// 获取文章列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <GetArticleListResponseDto> GetArticleListAsync(GetArticleListRequestDto request)
        {
            var validStatus = new Models.Utility.ReleaseStatus[] {
                Models.Utility.ReleaseStatus.Release,
                Models.Utility.ReleaseStatus.ReviewPass,
                Models.Utility.ReleaseStatus.Reject,
            };
            var orderbySql = "creation_date desc ";

            if (!string.IsNullOrWhiteSpace(request.SortField))
            {
                orderbySql = $"{request.SortField} {(request.IsAscending ? "asc" : "desc")}";
            }
            var sqlWhere = "1 = 1 ";

            //var sqlWhere = $@"AND actcle_release_status IN ({string.Join(",", validStatus.Select(a => $"'{a.ToString()}'"))})";
            sqlWhere = $"{sqlWhere} AND source_type = @SourceType";

            if (!string.IsNullOrWhiteSpace(request.Keyword))
            {
                request.Keyword = $"{request.Keyword}%";
                sqlWhere        = $"{sqlWhere} AND (title like @Keyword  OR abstract like @Keyword)";
            }
            if (!string.IsNullOrWhiteSpace(request.ArticleType))
            {
                sqlWhere = $"{sqlWhere} AND article_type_dic = @ArticleType";
            }
            if (request.ReleaseStatus != null)
            {
                sqlWhere = $"{sqlWhere} AND actcle_release_status = @ReleaseStatus";
            }
            var sql = $@"
SELECT * FROM(
	SELECT
	    a.*,
	    b.nick_name AS AuthorName,--    c.like_count,
	    ( SELECT count( 1 ) FROM t_consumer_article_view __s WHERE a.article_guid = __s.target_guid GROUP BY target_guid ) AS visit_count,
	    ( SELECT count( 1 ) FROM t_consumer_collection __s WHERE a.article_guid = __s.target_guid GROUP BY target_guid ) AS collection 
    FROM
	    t_utility_article a
	    LEFT JOIN t_utility_user b ON a.author_guid = b.user_guid
) T 
WHERE
	{sqlWhere}
ORDER BY
	{orderbySql}
";

            return(await MySqlHelper.QueryByPageAsync <GetArticleListRequestDto, GetArticleListResponseDto, GetArticleListItemDto>(sql, request));
        }
Beispiel #2
0
        public async Task <IActionResult> GetArticleListAsync([FromQuery] GetArticleListRequestDto request)
        {
            var response = await new ArticleBiz().GetArticleListAsync(request);

            return(Success(response));
        }
Beispiel #3
0
        /// <summary>
        /// 获取文章列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <GetArticleListResponseDto> GetArticleListAsync(string userId, GetArticleListRequestDto request)
        {
            var orderbySql = "creation_date desc";

            if (!string.IsNullOrWhiteSpace(request.SortField))
            {
                orderbySql = $"{request.SortField} {(request.IsAscending ? "asc" : "desc")}";
            }
            var sqlWhere = $@"AND ENABLE = 1 AND  created_by='{userId}'";

            if (!string.IsNullOrWhiteSpace(request.Keyword))
            {
                sqlWhere = $"{sqlWhere} AND (title like @Keyword  OR abstract like @Keyword)";
            }
            if (string.IsNullOrWhiteSpace(request.ActcleReleaseStatus))
            {
                request.ActcleReleaseStatus = ReleaseStatus.Release.ToString();
            }
            if (request.ActcleReleaseStatus != "All")
            {
                sqlWhere = $"{sqlWhere} AND (actcle_release_status=@ActcleReleaseStatus)";
            }
            var sql = $@"
SELECT * FROM(
	SELECT
	a.*,
	b.nick_name,
	c.like_count,
	c.visit_count,
	( SELECT count( 1 ) FROM t_consumer_collection __s where a.article_guid = __s.target_guid  GROUP BY target_guid ) AS collection 
FROM
	t_utility_article a
	LEFT JOIN t_utility_user b ON a.author_guid = b.user_guid
	LEFT JOIN t_utility_hot c ON a.article_guid = c.owner_guid
) T 
WHERE
	1 = 1 {sqlWhere}
ORDER BY
	{orderbySql}
";

            request.Keyword = $"%{request.Keyword}%";
            return(await MySqlHelper.QueryByPageAsync <GetArticleListRequestDto, GetArticleListResponseDto, GetArticleListItemDto>(sql, request));
        }
Beispiel #4
0
        public async Task <IActionResult> GetArticleListAsync([FromBody] GetArticleListRequestDto request)
        {
            var response = await new ConsumerBiz().GetArticleListAsync(UserID, request);

            return(Success(response));
        }