ArticleController.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. using Microsoft.AspNetCore.Mvc;
  2. using ZR.Model.Content;
  3. using ZR.Model.Content.Dto;
  4. using ZR.Service.Content.IService;
  5. namespace ZR.Admin.WebApi.Controllers
  6. {
  7. /// <summary>
  8. /// 内容管理
  9. /// </summary>
  10. [Route("article")]
  11. [ApiExplorerSettings(GroupName = "article")]
  12. public class ArticleController : BaseController
  13. {
  14. /// <summary>
  15. /// 文章接口
  16. /// </summary>
  17. private readonly IArticleService _ArticleService;
  18. private readonly IArticleCategoryService _ArticleCategoryService;
  19. public ArticleController(
  20. IArticleService ArticleService,
  21. IArticleCategoryService articleCategoryService)
  22. {
  23. _ArticleService = ArticleService;
  24. _ArticleCategoryService = articleCategoryService;
  25. _ArticleService = ArticleService;
  26. }
  27. /// <summary>
  28. /// 查询文章列表
  29. /// </summary>
  30. /// <returns></returns>
  31. [HttpGet("list")]
  32. [ActionPermissionFilter(Permission = "system:article:list")]
  33. public IActionResult Query([FromQuery] ArticleQueryDto parm)
  34. {
  35. var response = _ArticleService.GetList(parm);
  36. return SUCCESS(response);
  37. }
  38. /// <summary>
  39. /// 内容批量审核通过
  40. /// </summary>
  41. /// <returns></returns>
  42. [HttpPut("pass/{ids}")]
  43. [ActionPermissionFilter(Permission = "article:audit")]
  44. [Log(Title = "内容审核", BusinessType = BusinessType.UPDATE)]
  45. public IActionResult PassedMonents(string ids)
  46. {
  47. long[] idsArr = Tools.SpitLongArrary(ids);
  48. if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"审核通过失败Id 不能为空")); }
  49. return ToResponse(_ArticleService.Passed(idsArr));
  50. }
  51. /// <summary>
  52. /// 内容批量审核拒绝
  53. /// </summary>
  54. /// <returns></returns>
  55. [HttpPut("reject/{ids}")]
  56. [ActionPermissionFilter(Permission = "article:audit")]
  57. [Log(Title = "内容审核", BusinessType = BusinessType.UPDATE)]
  58. public IActionResult RejectMonents(string ids, string reason = "")
  59. {
  60. long[] idsArr = Tools.SpitLongArrary(ids);
  61. if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"審核拒绝失败Id 不能为空")); }
  62. int result = _ArticleService.Reject(reason, idsArr);
  63. return ToResponse(result);
  64. }
  65. /// <summary>
  66. /// 查询我的文章列表
  67. /// </summary>
  68. /// <returns></returns>
  69. [HttpGet("mylist")]
  70. public IActionResult QueryMyList([FromQuery] ArticleQueryDto parm)
  71. {
  72. parm.UserId = HttpContext.GetUId();
  73. var response = _ArticleService.GetMyList(parm);
  74. return SUCCESS(response);
  75. }
  76. /// <summary>
  77. /// 查询文章详情
  78. /// </summary>
  79. /// <param name="id"></param>
  80. /// <returns></returns>
  81. [HttpGet("{id}")]
  82. public IActionResult Get(int id)
  83. {
  84. long userId = HttpContext.GetUId();
  85. var model = _ArticleService.GetArticle(id, userId);
  86. ApiResult apiResult = ApiResult.Success(model);
  87. return ToResponse(apiResult);
  88. }
  89. /// <summary>
  90. /// 发布文章
  91. /// </summary>
  92. /// <returns></returns>
  93. [HttpPost("add")]
  94. [ActionPermissionFilter(Permission = "system:article:add")]
  95. //[Log(Title = "发布文章", BusinessType = BusinessType.INSERT)]
  96. public IActionResult Publish([FromBody] ArticleDto parm)
  97. {
  98. var addModel = parm.Adapt<Article>().ToCreate(context: HttpContext);
  99. return SUCCESS(_ArticleService.PublishArticle(addModel));
  100. }
  101. /// <summary>
  102. /// 更新文章
  103. /// </summary>
  104. /// <returns></returns>
  105. [HttpPut("edit")]
  106. [ActionPermissionFilter(Permission = "system:article:update")]
  107. //[Log(Title = "文章修改", BusinessType = BusinessType.UPDATE)]
  108. public IActionResult Update([FromBody] ArticleDto parm)
  109. {
  110. parm.AuthorName = HttpContext.GetName();
  111. var modal = parm.Adapt<Article>().ToUpdate(HttpContext);
  112. var response = _ArticleService.UpdateArticle(modal);
  113. return SUCCESS(response);
  114. }
  115. /// <summary>
  116. /// 置顶
  117. /// </summary>
  118. /// <returns></returns>
  119. [HttpPut("top")]
  120. [ActionPermissionFilter(Permission = "system:article:update")]
  121. [Log(Title = "置顶文章", BusinessType = BusinessType.UPDATE)]
  122. public IActionResult Top([FromBody] Article parm)
  123. {
  124. var response = _ArticleService.TopArticle(parm);
  125. return SUCCESS(response);
  126. }
  127. /// <summary>
  128. /// 是否公开
  129. /// </summary>
  130. /// <returns></returns>
  131. [HttpPut("changePublic")]
  132. [ActionPermissionFilter(Permission = "system:article:update")]
  133. [Log(Title = "是否公开", BusinessType = BusinessType.UPDATE)]
  134. public IActionResult ChangePublic([FromBody] Article parm)
  135. {
  136. var response = _ArticleService.ChangeArticlePublic(parm);
  137. return SUCCESS(response);
  138. }
  139. /// <summary>
  140. /// 删除文章
  141. /// </summary>
  142. /// <returns></returns>
  143. [HttpDelete("{id}")]
  144. [ActionPermissionFilter(Permission = "system:article:delete")]
  145. [Log(Title = "文章删除", BusinessType = BusinessType.DELETE)]
  146. public IActionResult Delete(int id = 0)
  147. {
  148. var response = _ArticleService.Delete(id);
  149. return SUCCESS(response);
  150. }
  151. }
  152. }