自媒体文章-自动审核
1. 自媒体文章自动审核流程
1 自媒体端发布文章后,开始审核文章
2 审核的主要是审核文章的内容(文本内容和图片)
3 借助第三方提供的接口审核文本
4 借助第三方提供的接口审核图片,由于图片存储到minIO中,需要先下载才能审核
5 如果审核失败,则需要修改自媒体文章的状态,status:2 审核失败 status:3 转到人工审核
6 如果审核成功,则需要在文章微服务中创建app端需要的文章
2. app端文章保存接口
2.1 表结构分析
ap_article 文章信息表
ap_article_config 文章配置表
ap_article_content 文章内容表
2.2 实现思路分析
在文章审核成功以后需要在app的article库中新增文章数据
1.保存文章信息 ap_article
2.保存文章配置信息 ap_article_config
3.保存文章内容 ap_article_content
2.3 feign接口
说明 | |
---|---|
接口路径 | /api/v1/article/save |
请求方式 | POST |
参数 | ArticleDto |
响应结果 | ResponseResult |
2.4 代码实现
在heima-leadnews-feign-api模块中新增接口
第一:线导入feign的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
第二:定义文章端的接口
package com.heima.feign.apis.acticle;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.common.dtos.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient("leadnews-article")//要调用的服务名称
public interface FeignArticleApi {
/**
* 对外暴露保存文章接口
* 请求路径:/api/v1/article/save
* 请求参数:ArticleDto
* 请求方式:post
* 响应数据:ResponseResult,封装文章id
* @param dto
* @return
*/
@PostMapping("/api/v1/article/save")
ResponseResult saveAppArticle(@RequestBody ArticleDto dto);
}
接收参数的ArticleDto
package com.heima.model.article.dtos;
import com.heima.model.article.pojos.ApArticle;
import lombok.Data;
@Data
public class ArticleDto extends ApArticle {
private String content;
}
第三:在heima-leadnews-article中实现该方法
package com.heima.article.feign;
import com.heima.article.service.ApArticleService;
import com.heima.feign.apis.acticle.FeignArticleApi;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.common.dtos.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class FeignArticleApiImpl implements FeignArticleApi {
@Autowired
private ApArticleService apArticleService;
@PostMapping("/api/v1/article/save")
public ResponseResult saveAppArticle(ArticleDto dto) {
ResponseResult responseResult = apArticleService.saveAppArticle(dto);
return responseResult;
}
}
第四,在ApArticleService中新增方法
//app端保存文章
ResponseResult saveAppArticle(ArticleDto dto);
实现之前准备一些工作
ApArticleConfigMappe
package com.heima.article.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.heima.model.article.pojos.ApArticleConfig;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ApArticleConfigMapper extends BaseMapper<ApArticleConfig> {
}
同时,修改ApArticleConfig类,添加如下构造函数
public ApArticleConfig(Long articleId){
this.articleId = articleId;
this.isComment = true;
this.isForward = true;
this.isDelete = false;
this.isDown = false;
}
第五,ApArticleService实现类:
/**
* app端保存文章
* @param dto
* @return
*/
public ResponseResult saveAppArticle(ArticleDto dto) {
//1.参数校验
if(dto ==null ){
return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
}
ApArticle article = new ApArticle();
BeanUtils.copyProperties(dto, article);
//2.判断dto是否存在文章id
if(dto.getId() == null){