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