/// <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); } }
public async Task <ApiResult <ArticleDetailResponse> > QueryArticleDetailAsync([FromBody] ArticleDetailRequest request) { return(await _articleService.QueryArticleDetailAsync(request)); }