From d9439a7b67c4ffe65ffb31766706b2e9189bdd9c Mon Sep 17 00:00:00 2001 From: Jackwang Date: Tue, 7 Jul 2020 17:45:37 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=86=85=E5=AE=B9=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E3=80=91-=E3=80=90=E5=88=9D=E5=BF=83=E4=BA=92=E5=8A=A9-?= =?UTF-8?q?=E5=B7=B2=E6=8A=A5=E5=90=8D=E6=B4=BB=E5=8A=A8-=E6=88=91?= =?UTF-8?q?=E8=A6=81=E6=89=93=E5=8D=A1=E3=80=91-=EF=BC=88=E7=8E=8B?= =?UTF-8?q?=E7=AB=A5=EF=BC=89-2020/07/07?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/content/CheckDataUtils.java | 128 ++++++++++++++++-- .../content/dto/form/SaveCheckRecordsDTO.java | 27 +--- .../dto/result/CheckResultMessageDTO.java | 33 +++++ 3 files changed, 149 insertions(+), 39 deletions(-) create mode 100644 epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/dto/result/CheckResultMessageDTO.java diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/CheckDataUtils.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/CheckDataUtils.java index 78439df..e03eb44 100644 --- a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/CheckDataUtils.java +++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/CheckDataUtils.java @@ -5,7 +5,10 @@ import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.commons.tools.security.content.dto.form.CheckContentFormDTO; import com.elink.esua.epdc.commons.tools.security.content.dto.form.CheckDataFromDTO; +import com.elink.esua.epdc.commons.tools.security.content.dto.result.CheckDetailResultsDTO; import com.elink.esua.epdc.commons.tools.security.content.dto.result.CheckResultDTO; +import com.elink.esua.epdc.commons.tools.security.content.dto.result.CheckResultDetailsDTO; +import com.elink.esua.epdc.commons.tools.security.content.dto.result.CheckResultMessageDTO; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -28,18 +31,36 @@ public class CheckDataUtils{ //图片审核地址 private static String imgUrl = "https://epmet-dev.elinkservice.cn/epmetscan/api/imgSyncScan"; + //文本正常 + private static String pass = "pass"; + + //文本需要进一步人工审核 + public static String review = "review"; + + //文本违规,可以直接删除或者限制公开 + private static String block = "block"; + + + //识别图片中的色情内容 + private static String porn = "porn"; + + //识别图片中的暴恐涉政内容 + private static String terrorism = "terrorism"; + + + private static Logger log = LogManager.getLogger(HttpClientUtils.class); public static void main(String[] args) { - checkContent(null,"bbb"); -// checkImgs("https://epdc-shibei.elinkservice.cn/epdcFile/M00/06/80/rBAAM17wjcKACqqXAAIyYyB0O-8107.png,,https://epdc-shibei.elinkservice.cn/epdcFile/M00/06/80/rBAAM17wjcKACqqXAAIyYyB0O-8107.png,"); +// checkContent(null,"bbb"); + checkImgs("https://epdc-shibei.elinkservice.cn/epdcFile/M00/06/80/rBAAM17wjcKACqqXAAIyYyB0O-8107.png,,https://epdc-shibei.elinkservice.cn/epdcFile/M00/06/80/rBAAM17wjcKACqqXAAIyYyB0O-8107.png,",null); } /** * @describe:内容审核 * @author wangtong * @date 2020/7/6 10:13 - * @param [title, content] + * @param :[ title :文本标题, content:文本内容] * @return java.lang.Object */ public static CheckResultDTO checkContent(String title, String content) { @@ -78,22 +99,38 @@ public class CheckDataUtils{ /** * @describe: 图片审核:只要有一张图片被驳回,本次审核判定为不通过 * @author wangtong - * @date 2020/7/6 9:09 - * @param [imgs] - * @return java.lang.Object + * @date 2020/7/7 17:42 + * @param :[ imgs:字符串拼接的图片地址, imgArray:集合类型的图片地址] + * @return com.elink.esua.epdc.commons.tools.security.content.dto.result.CheckResultDTO */ - public static CheckResultDTO checkImgs(String imgs){ - String[] imgList = imgs.split(","); + public static CheckResultDTO checkImgs(String imgs,List imgArray){ CheckDataFromDTO tasks = new CheckDataFromDTO(); List contentList = new ArrayList<>(); - for(int i = 0;i0){ + int i = 1; + for(String url : imgArray){ + if(StringUtils.isNotBlank(url)){//图片地址为空会报错 + CheckContentFormDTO imgDto = new CheckContentFormDTO(); + imgDto.setDataId(i+""); + imgDto.setUrl(url); + contentList.add(imgDto); + i++; + } + } + }else{ + return null; } + tasks.setTasks(contentList); String json = JSONObject.toJSONString(tasks); log.info("审核组装json:" + json); @@ -111,4 +148,67 @@ public class CheckDataUtils{ return null; } } + + /** + * @describe: 获取违规记录的分类占比,所属类别,审核状态 + * @author wangtong + * @date 2020/7/7 16:18 + * @param :[ contentResult:文本审核结果, imgResult:图片审核结果] + * @return com.elink.esua.epdc.commons.tools.security.content.dto.result.CheckResultMessageDTO + */ + public static CheckResultMessageDTO getCheckResultMessage(CheckResultDTO contentResult, CheckResultDTO imgResult) { + CheckResultMessageDTO result = new CheckResultMessageDTO(); + //如果是文字违规 + if (contentResult != null && !contentResult.getAllPass()) { + result.setSuggestion(contentResult.getDetails().get(0).getResults().get(0).getSuggestion()); + result.setLabel(contentResult.getDetails().get(0).getResults().get(0).getLabel()); + result.setRate(contentResult.getDetails().get(0).getResults().get(0).getRate()); + return result; + } else if (imgResult != null && !imgResult.getAllPass()) {//如果是图片违规 + for (CheckResultDetailsDTO details : imgResult.getDetails()) { + for (CheckDetailResultsDTO detailResult : details.getResults()) { + if (block.equals(detailResult.getSuggestion())) { + result.setSuggestion(block); + result.setLabel(detailResult.getLabel()); + result.setRate(detailResult.getRate()); + return result; + } + } + } + } + return result; + } + + /** + * @describe: 判断审核结果是review还是pass + * @author wangtong + * @date 2020/7/7 17:19 + * @param :[ contentResult:文本审核结果, imgResult:图片审核结果] + * @return com.elink.esua.epdc.commons.tools.security.content.dto.result.CheckResultMessageDTO + */ + public static CheckResultMessageDTO checkTwoTypes(CheckResultDTO contentResult, CheckResultDTO imgResult){ + CheckResultMessageDTO result = new CheckResultMessageDTO(); + //如果是文字待审核 + if (contentResult != null) { + if (review.equals(contentResult.getDetails().get(0).getResults().get(0).getSuggestion())) { + result.setSuggestion(review); + result.setLabel(contentResult.getDetails().get(0).getResults().get(0).getLabel()); + result.setRate(contentResult.getDetails().get(0).getResults().get(0).getRate()); + return result; + } + } else if (imgResult != null) {//如果是图片待审核 + for (CheckResultDetailsDTO details : imgResult.getDetails()) { + for (CheckDetailResultsDTO detailResult : details.getResults()) { + if (review.equals(detailResult.getSuggestion())) { + result.setSuggestion(review); + result.setLabel(detailResult.getLabel()); + result.setRate(detailResult.getRate()); + return result; + } + } + } + } + return result; + } + } \ No newline at end of file diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/dto/form/SaveCheckRecordsDTO.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/dto/form/SaveCheckRecordsDTO.java index 6721acb..aaa38b2 100644 --- a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/dto/form/SaveCheckRecordsDTO.java +++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/dto/form/SaveCheckRecordsDTO.java @@ -36,11 +36,6 @@ public class SaveCheckRecordsDTO implements Serializable { */ private String relationId; - /** - * 类型:1文字2图片 - */ - private Integer type; - /** * 判定方式:1系统2人工 */ @@ -74,32 +69,14 @@ public class SaveCheckRecordsDTO implements Serializable { /** * 审核状态 */ - private String suggestionText; + private String suggestion; - /** - * 图片鉴黄审核状态 - */ - private String suggestionImgPorn; - - /** - * 图片暴恐涉政审核状态 - */ - private String suggestionImgTerrorism; /** * 检测结果分类 */ - private String labelText; - - /** - * 图片鉴黄 - */ - private String labelImgPorn; + private String label; - /** - * 图片暴恐涉政识别 - */ - private String labelImgTerrorism; /** * 结果属于当前分类的概率,取值范围:0.00~100.00。值越高,表示越有可能属于当前分类。 diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/dto/result/CheckResultMessageDTO.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/dto/result/CheckResultMessageDTO.java new file mode 100644 index 0000000..1bf467a --- /dev/null +++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/security/content/dto/result/CheckResultMessageDTO.java @@ -0,0 +1,33 @@ +package com.elink.esua.epdc.commons.tools.security.content.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @program: esua-epdc + * @description: 组装审核结果分类 + * @author: wangtong + * @create: 2020-07-07 16:16 + **/ +@Data +public class CheckResultMessageDTO implements Serializable { + + private static final long serialVersionUID = -1831600854629135265L; + + /** + * 审核状态 + */ + private String suggestion; + + /** + * 检测结果分类 + */ + private String label; + + /** + * 结果属于当前分类的概率,取值范围:0.00~100.00。值越高,表示越有可能属于当前分类。 + */ + private BigDecimal rate; +} \ No newline at end of file