/// <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)); }
public async Task <IActionResult> GetArticleListAsync([FromQuery] GetArticleListRequestDto request) { var response = await new ArticleBiz().GetArticleListAsync(request); return(Success(response)); }
/// <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)); }
public async Task <IActionResult> GetArticleListAsync([FromBody] GetArticleListRequestDto request) { var response = await new ConsumerBiz().GetArticleListAsync(UserID, request); return(Success(response)); }