kafka实战应用&文章自动审核
导入对应得kafka得内置类信息
配置kafka并让他正常运行
消息发送
消息接受成功
2 文章审核自动化
2.1 阿里云服务介绍 内容检测API开发准备 您在使用内容检测API之前,需要先注册阿里云账号,添加Access Key并签约云盾内容安全。 操作步骤
1. 前往阿里云官网注册账号。如果已有注册账号,请跳过此步骤。
2. 打开云盾内容安全产品试用页面,单击立即开通,正式开通服务。
3. 在AccessKey管理页面管理您的AccessKeyID和AccessKeySecret。
2.1.1 文本垃圾内容检测 文本垃圾内容检测接口说明 抽取工具类
云安全内容审核成功
图片审核
下面是审核文章的接口信息
public void autoReviewArticleByMedia(Integer newsId) {
//根据文章id查询文章信息
WmNews wmNews = wmNewsMapper.selectNewsDetailByPrimaryKey(newsId);
if(wmNews!=null){
//状态为4的时候,直接保存数据
if(wmNews.getStatus()==4){
reviewSuccessSaveAll(wmNews);
return;
}
//审核通过后待发布文章,判断发布时间
if(wmNews.getStatus()==8 && wmNews.getPublishTime()!=null && wmNews.getPublishTime().getTime()<new Date().getTime()){
reviewSuccessSaveAll(wmNews);
return;
}
//审核文章
if(wmNews.getStatus()==1){
//审核文章的标题与内容的匹配度
String content = wmNews.getContent();
String title = wmNews.getTitle();
double degree = Compute.SimilarDegree(content, title);
if(degree<=0){
//文章标题与内容匹配
updateWmNews(wmNews,(short)2,"文章标题与内容不匹配");
return;
}
//审核文本内容 阿里接口
List<String> images = new ArrayList<>();
StringBuilder sb = new StringBuilder();
JSONArray jsonArray = JSON.parseArray(content);
handlerTextAndImages(images,sb,jsonArray);
try {
/*String response = aliyunTextScanRequest.textScanRequest(sb.toString());
if("review".equals(response)){//人工审核
updateWmNews(wmNews,(short)3,"需要人工审核");
return;
}
if("block".equals(response)){//审核失败
updateWmNews(wmNews,(short)2,"文本内容审核失败");
return;
}*/
//审核文章中的图片信息,阿里接口
/*String imagesResponse = aliyunImageScanRequest.imageScanRequest(images);
if(imagesResponse!=null){
if("review".equals(imagesResponse)){//人工审核
updateWmNews(wmNews,(short)3,"需要人工审核");
return;
}
if("block".equals(imagesResponse)){//审核失败
updateWmNews(wmNews,(short)2,"图片内容审核失败");
return;
}
}else{
updateWmNews(wmNews,(short)2,"图片审核出现问题");
return;
}*/
} catch (Exception e) {
e.printStackTrace();
}
if(wmNews.getPublishTime()!=null){
if(wmNews.getPublishTime().getTime()>new Date().getTime()){
//修改wmnews的状态为8
updateWmNews(wmNews,(short)8,"待发布");
}else{
//立即发布
reviewSuccessSaveAll(wmNews);
}
}else{
//立即发布
reviewSuccessSaveAll(wmNews);
}
}
}
}
在测试的时候出现这种错误,将其enable字段注释掉就可以了
删掉wmnew的xml文件中的enable字段
测试通过
查到新闻id为5104的这篇文章,进行审核业务的测试
在数据库中查看状态
private Boolean origin;插入到ApAritcal这个文章类中
审核成功
数据库中字段修改成功
在NewsServiceImpl这个保存文章的方法下面加入kafka的消息发送的信息,分别设置消息发送的发送体,和发送消息,设置消息发送方
设置接受消息,创建监听
下面就是测试文章审核的前端工程先进行文章发布,然后消息队列监听之后就进行文章审核,审核通过之后修改文章状态为已发表状态,需要启动
前端文章发布
消息队列到medi发送的消息
并处理审结果
数据库保存数据成功