说明:
(1)本篇博客内容:开发【管理员,人工审核文章,接口】;
目录
1.在【api】接口工程的ArticleControllerApi接口中,定义后台的【管理员,人工审核文章,接口】;
2.在【article】文章服务的ArticleController类中,去实现后台的【管理员,人工审核文章,接口】;
一:本篇博客内容:管理员人工审核文章;
二:开发【管理员,人工审核文章,接口】;
1.在【api】接口工程的ArticleControllerApi接口中,定义后台的【管理员,人工审核文章,接口】;
/** * 【管理员,人工审核文章,接口】 * @param articleId:文章id * @param passOrNot:审核结果,通过OR不通过; * PS:这些参数名,如果不通过@RequestParam("")的方式指定的话。那么这些参数名,需要和前端对应,不能瞎写; * @return */ @ApiOperation(value = "管理员,人工审核文章", notes = "管理员,人工审核文章", httpMethod = "POST") @PostMapping("/doReview") //设置路由,这个是需要前后端约定好的; public GraceJSONResult doReviewArticle(@RequestParam String articleId,@RequestParam Integer passOrNot);
说明:
(1)这个接口的url、请求方式、参数,不是瞎写的,需要前后端保持一致;
![]()
2.在【article】文章服务的ArticleController类中,去实现后台的【管理员,人工审核文章,接口】;
/** * 【管理员,人工审核文章,接口】 * @param articleId:文章id * @param passOrNot:审核结果,通过OR不通过; * @return */ @Override public GraceJSONResult doReviewArticle(String articleId, Integer passOrNot) { Integer pendingStatus;//定义一个变量,后面用来承接,文章人工审核后,真正应该处于的状态; // 1.根据passOrNot的结果,分别去处理; if (passOrNot == YesOrNo.YES.type) { //如果passOrNot是1,表示审核通过;那么,文章状态应该是:3:审核通过(已发布); pendingStatus = ArticleReviewStatus.SUCCESS.type; } else if (passOrNot == YesOrNo.NO.type) { //如果passOrNot是0,表示审核不通过;那么,文章状态应该是:4:审核未通过; pendingStatus = ArticleReviewStatus.FAILED.type; } else { //如果passOrNot既不是1也不是0,就返回一个信息是"文章审核出错!"的GraceJSONResult; return GraceJSONResult.errorCustom(ResponseStatusEnum.ARTICLE_REVIEW_ERROR); } // 2.调用Service层的方法,去更改文章的状态; articleService.updateArticleStatus(articleId, pendingStatus); return GraceJSONResult.ok(); }
说明:
(1) 前台在审核的时候,如果审核通过,passOrNot就是1;如果审核失败,passOrNot就是0;
● 在数据库表中,文章的状态有:
(2)这儿调用了在【76:第六章:开发文章服务:9:发表文章后,利用“阿里内容安全服务“去机审文章内容;(并没有实测;默认机审通过,即文章状态直接变更为【机审结束,等待人工审核】)(定义了一个“变更文章状态“的方法)】中编写的,“变更文章状态“的方法;
(3)可以看到,这儿的逻辑有点直接粗暴;只要前端发过来的审核结果是审核通过,就直接把文章状态改为3,而不管文章原先状态是啥;只要前端发过来的审核结果是审核不通过,就直接把文章状态修改为4,而不管文章原先状态是啥;
三:效果;
(1)先install一下整个项目;(2)记得使用SwitchHost开启虚拟域名映射;(3)使用Tomcat启动前端项目;(4)然后,启动后端项目;