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));
}
}
}