コード例 #1
0
        /// <summary>
        /// 查询文章详情
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ApiResult <ArticleDetailResponse> > QueryArticleDetailAsync(ArticleDetailRequest request)
        {
            var response = new ApiResult <ArticleDetailResponse>();

            try
            {
                var article = await _articleRepository.TableNotTracking
                              .FirstOrDefaultAsync(item => item.Id == request.ArticleId && item.Status == 1);

                if (article == null)
                {
                    response.Code    = Code.Error;
                    response.Message = "文章不存在或被删除";
                    return(response);
                }
                var detail = await _articleDetailRepository.TableNotTracking
                             .FirstOrDefaultAsync(item => item.ArticleId == request.ArticleId && item.Status == 1);

                if (detail == null)
                {
                    response.Code    = Code.Error;
                    response.Message = "查无文章详情";
                    return(response);
                }
                var userName = await _userRepository.TableNotTracking
                               .Where(item => item.Id == article.UserId && item.Status == 1)
                               .Select(item => item.UserName)
                               .FirstOrDefaultAsync();

                var articleDetailResponse = article.MapTo <ArticleDetailResponse>();
                articleDetailResponse.UserName    = userName;
                articleDetailResponse.Content     = detail.Content;
                articleDetailResponse.ContentType = detail.ContentType;
                articleDetailResponse.Like        = await _articleCacheService.QueryLikeAsync(article.Id);

                articleDetailResponse.View = await _articleCacheService.QueryViewAsync(article.Id);

                response.Code    = Code.Ok;
                response.Message = "查询成功";
                response.Data    = articleDetailResponse;
                return(response);
            }
            catch (Exception ex)
            {
                _logger.LogError($"查询文章详情异常;method={nameof(QueryArticleDetailAsync)};param={request?.ToJson()};exception messges={ex.Message}");
                response.Code    = Code.Error;
                response.Message = $"查询文章详情异常:{ex.Message}";
                return(response);
            }
        }
コード例 #2
0
 public async Task <ApiResult <ArticleDetailResponse> > QueryArticleDetailAsync([FromBody] ArticleDetailRequest request)
 {
     return(await _articleService.QueryArticleDetailAsync(request));
 }