using Microsoft.AspNetCore.Mvc; using ZR.Model; using ZR.Model.Content; using ZR.Model.Content.Dto; using ZR.Service.Content.IService; namespace ZR.Admin.WebApi.Controllers { /// /// 评论 /// [Route("front/comment")] [ApiExplorerSettings(GroupName = "article")] [ApiController] public class FrontCommentController : BaseController { private readonly IArticleCommentService messageService; private readonly IArticleService articleService; /// /// /// /// /// public FrontCommentController( IArticleCommentService messageService, IArticleService articleService) { this.messageService = messageService; this.articleService = articleService; } /// /// 查询评论列表 /// /// /// [HttpGet("list")] [AllowAnonymous] public IActionResult QueryList([FromQuery] MessageQueryDto parm) { parm.PageSize = 10; PagedInfo? response; //查询二级评论 if (parm.CommentId > 0) { response = messageService.GetReplyComments(parm.CommentId, parm); } else { response = messageService.GetMessageList(parm); } return SUCCESS(response); } /// /// 评论 /// /// [HttpPost("add")] [ActionPermissionFilter(Permission = "common")] public IActionResult Create([FromBody] ArticleCommentDto parm) { var uid = HttpContextExtension.GetUId(HttpContext); if (uid <= 0) { return ToResponse(ResultCode.DENY); } var addModel = parm.Adapt().ToCreate(context: HttpContext); addModel.UserIP = HttpContextExtension.GetClientUserIp(HttpContext); addModel.UserId = uid; return SUCCESS(messageService.AddMessage(addModel).Adapt()); } /// /// 评论点赞 /// /// /// [HttpPost("praise")] [ActionPermissionFilter(Permission = "common")] public IActionResult Praise([FromBody] ArticleCommentDto dto) { if (dto == null || dto.CommentId <= 0) return ToResponse(ResultCode.PARAM_ERROR); //var uid = HttpContextExtension.GetUId(HttpContext); return SUCCESS(messageService.PraiseMessage(dto.CommentId)); } /// /// 评论删除 /// /// /// [HttpDelete("delete/{mid}")] [ActionPermissionFilter(Permission = "common")] public IActionResult Delete(long mid) { var uid = HttpContextExtension.GetUId(HttpContext); if (uid <= 0) { return ToResponse(ResultCode.DENY); } return SUCCESS(messageService.DeleteMessage(mid.ParseToLong(), uid)); } /// /// 查询我的评论列表 /// /// /// [HttpGet("mylist")] public IActionResult QueryMyCommentList([FromQuery] MessageQueryDto parm) { PagedInfo response = messageService.GetMyMessageList(parm); return SUCCESS(response); } /// /// 评论置顶 /// /// [HttpPut("top")] [ActionPermissionFilter(Permission = "common")] public IActionResult Top([FromBody] ArticleCommentDto parm) { var uid = HttpContextExtension.GetUId(HttpContext); if (uid <= 0) { return ToResponse(ResultCode.DENY); } var contentInfo = articleService.GetArticle(parm.TargetId, uid); if (contentInfo == null) { return ToResponse(ResultCode.CUSTOM_ERROR, "操作失败"); } return SUCCESS(messageService.TopMessage(parm.CommentId, parm.Top)); } } }