using AutoMapper; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Yi.Framework.Common.Models; using Yi.Framework.DTOModel.Vo; using Yi.Framework.Interface; using Yi.Framework.Model.Models; using Yi.Framework.Repository; using Yi.Framework.WebCore; using Yi.Framework.WebCore.AttributeExtend; using Yi.Framework.WebCore.AuthorizationPolicy; namespace Yi.Framework.ApiMicroservice.Controllers { [ApiController] [Route("api/[controller]/[action]")] public class CommentController : BaseSimpleCrudController { private ICommentService _iCommentService; private IMapper _mapper; public CommentController(ILogger logger, ICommentService iCommentService, IMapper mapper) : base(logger, iCommentService) { _iCommentService = iCommentService; _mapper = mapper; } /// /// 获取文章的全部一级评论 /// /// [HttpGet] [Route("{articleId}")] public async Task GetListByArticleId(long articleId) { //一级评论被回复的用户id为空 var data = await _repository._DbQueryable.Where(u => u.ParentId == 0 && u.ArticleId == articleId).Includes(u => u.CreateUserInfo).OrderByDescending(u=>u.CreateTime).ToListAsync(); return Result.Success().SetData(_mapper.Map>(data)); } /// /// 获取一级评论详情 /// /// /// public override async Task GetById([FromRoute] long id) { var data = await _repository._DbQueryable.Includes(u => u.CreateUserInfo).Includes(u => u.UserInfo).FirstAsync(u => u.Id == id); return Result.Success().SetData(_mapper.Map(data)); } /// /// 回复文章或回复评论 /// /// [HttpPost] public override async Task Add(CommentEntity comment) { return Result.Success().SetStatus(await _iCommentService.AddAsync(comment)); } } }