FrontCommentController.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. using Microsoft.AspNetCore.Mvc;
  2. using ZR.Model;
  3. using ZR.Model.Content;
  4. using ZR.Model.Content.Dto;
  5. using ZR.Service.Content.IService;
  6. namespace ZR.Admin.WebApi.Controllers
  7. {
  8. /// <summary>
  9. /// 评论
  10. /// </summary>
  11. [Route("front/comment")]
  12. [ApiExplorerSettings(GroupName = "article")]
  13. [ApiController]
  14. public class FrontCommentController : BaseController
  15. {
  16. private readonly IArticleCommentService messageService;
  17. private readonly IArticleService articleService;
  18. /// <summary>
  19. ///
  20. /// </summary>
  21. /// <param name="messageService"></param>
  22. /// <param name="articleService"></param>
  23. public FrontCommentController(
  24. IArticleCommentService messageService, IArticleService articleService)
  25. {
  26. this.messageService = messageService;
  27. this.articleService = articleService;
  28. }
  29. /// <summary>
  30. /// 查询评论列表
  31. /// </summary>
  32. /// <param name="parm"></param>
  33. /// <returns></returns>
  34. [HttpGet("list")]
  35. [AllowAnonymous]
  36. public IActionResult QueryList([FromQuery] MessageQueryDto parm)
  37. {
  38. parm.PageSize = 10;
  39. PagedInfo<ArticleCommentDto>? response;
  40. //查询二级评论
  41. if (parm.CommentId > 0)
  42. {
  43. response = messageService.GetReplyComments(parm.CommentId, parm);
  44. }
  45. else
  46. {
  47. response = messageService.GetMessageList(parm);
  48. }
  49. return SUCCESS(response);
  50. }
  51. /// <summary>
  52. /// 评论
  53. /// </summary>
  54. /// <returns></returns>
  55. [HttpPost("add")]
  56. [ActionPermissionFilter(Permission = "common")]
  57. public IActionResult Create([FromBody] ArticleCommentDto parm)
  58. {
  59. var uid = HttpContextExtension.GetUId(HttpContext);
  60. if (uid <= 0) { return ToResponse(ResultCode.DENY); }
  61. var addModel = parm.Adapt<ArticleComment>().ToCreate(context: HttpContext);
  62. addModel.UserIP = HttpContextExtension.GetClientUserIp(HttpContext);
  63. addModel.UserId = uid;
  64. return SUCCESS(messageService.AddMessage(addModel).Adapt<ArticleCommentDto>());
  65. }
  66. /// <summary>
  67. /// 评论点赞
  68. /// </summary>
  69. /// <param name="dto"></param>
  70. /// <returns></returns>
  71. [HttpPost("praise")]
  72. [ActionPermissionFilter(Permission = "common")]
  73. public IActionResult Praise([FromBody] ArticleCommentDto dto)
  74. {
  75. if (dto == null || dto.CommentId <= 0) return ToResponse(ResultCode.PARAM_ERROR);
  76. //var uid = HttpContextExtension.GetUId(HttpContext);
  77. return SUCCESS(messageService.PraiseMessage(dto.CommentId));
  78. }
  79. /// <summary>
  80. /// 评论删除
  81. /// </summary>
  82. /// <param name="mid"></param>
  83. /// <returns></returns>
  84. [HttpDelete("delete/{mid}")]
  85. [ActionPermissionFilter(Permission = "common")]
  86. public IActionResult Delete(long mid)
  87. {
  88. var uid = HttpContextExtension.GetUId(HttpContext);
  89. if (uid <= 0) { return ToResponse(ResultCode.DENY); }
  90. return SUCCESS(messageService.DeleteMessage(mid.ParseToLong(), uid));
  91. }
  92. /// <summary>
  93. /// 查询我的评论列表
  94. /// </summary>
  95. /// <param name="parm"></param>
  96. /// <returns></returns>
  97. [HttpGet("mylist")]
  98. public IActionResult QueryMyCommentList([FromQuery] MessageQueryDto parm)
  99. {
  100. PagedInfo<ArticleCommentDto> response = messageService.GetMyMessageList(parm);
  101. return SUCCESS(response);
  102. }
  103. /// <summary>
  104. /// 评论置顶
  105. /// </summary>
  106. /// <returns></returns>
  107. [HttpPut("top")]
  108. [ActionPermissionFilter(Permission = "common")]
  109. public IActionResult Top([FromBody] ArticleCommentDto parm)
  110. {
  111. var uid = HttpContextExtension.GetUId(HttpContext);
  112. if (uid <= 0) { return ToResponse(ResultCode.DENY); }
  113. var contentInfo = articleService.GetArticle(parm.TargetId, uid);
  114. if (contentInfo == null) { return ToResponse(ResultCode.CUSTOM_ERROR, "操作失败"); }
  115. return SUCCESS(messageService.TopMessage(parm.CommentId, parm.Top));
  116. }
  117. }
  118. }