|
|
@ -2,10 +2,7 @@ package com.youlai.boot.admin.service.impl; |
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
import com.alibaba.fastjson.JSON; |
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
import com.aliyun.green20220302.models.ImageModerationResponse; |
|
|
import com.aliyun.green20220302.models.*; |
|
|
import com.aliyun.green20220302.models.TextModerationResponse; |
|
|
|
|
|
import com.aliyun.green20220302.models.VideoModerationResponse; |
|
|
|
|
|
import com.aliyun.green20220302.models.VideoModerationResultResponse; |
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.youlai.boot.admin.constant.AuditConstants; |
|
|
import com.youlai.boot.admin.constant.AuditConstants; |
|
|
import com.youlai.boot.admin.model.dto.AuditContentDTO; |
|
|
import com.youlai.boot.admin.model.dto.AuditContentDTO; |
|
|
@ -46,7 +43,7 @@ public class AuditExecutorServiceImpl implements AuditExecutorService { |
|
|
* @return {status, auditId};配置关闭或无配置时返回 null,调用方以此判断是否跳过审核 |
|
|
* @return {status, auditId};配置关闭或无配置时返回 null,调用方以此判断是否跳过审核 |
|
|
*/ |
|
|
*/ |
|
|
@Override |
|
|
@Override |
|
|
public Map<String, Object> executeAudit(String moduleCode, String bizId, AuditContentDTO content) { |
|
|
public Map<String, Object> executeAudit(String moduleCode, Long bizId, AuditContentDTO content) { |
|
|
// 1) 查询对应模块的审核配置
|
|
|
// 1) 查询对应模块的审核配置
|
|
|
MiniContentAuditConfig config = findAuditConfig(moduleCode); |
|
|
MiniContentAuditConfig config = findAuditConfig(moduleCode); |
|
|
if (config == null || isAuditDisabled(config)) { |
|
|
if (config == null || isAuditDisabled(config)) { |
|
|
@ -124,7 +121,7 @@ public class AuditExecutorServiceImpl implements AuditExecutorService { |
|
|
|
|
|
|
|
|
switch (contentType) { |
|
|
switch (contentType) { |
|
|
case "text" -> { |
|
|
case "text" -> { |
|
|
TextModerationResponse r = aliyunContentAuditUtil.textModeration(contentValue); |
|
|
TextModerationPlusResponse r = aliyunContentAuditUtil.textModerationPlus(contentValue); |
|
|
String riskLevel = extractRiskLevelFromResponse(r); |
|
|
String riskLevel = extractRiskLevelFromResponse(r); |
|
|
contentAuditTaskService.updateTaskMachineResult( |
|
|
contentAuditTaskService.updateTaskMachineResult( |
|
|
task.getId(), JSON.toJSONString(r), riskLevel, null, null); |
|
|
task.getId(), JSON.toJSONString(r), riskLevel, null, null); |
|
|
@ -192,7 +189,7 @@ public class AuditExecutorServiceImpl implements AuditExecutorService { |
|
|
* 文本审核(同步)。 |
|
|
* 文本审核(同步)。 |
|
|
*/ |
|
|
*/ |
|
|
private void handleTextAudit(MiniContentAuditTask task, String textContent, String strictness) { |
|
|
private void handleTextAudit(MiniContentAuditTask task, String textContent, String strictness) { |
|
|
TextModerationResponse response = aliyunContentAuditUtil.textModeration(textContent); |
|
|
TextModerationPlusResponse response = aliyunContentAuditUtil.textModerationPlus(textContent); |
|
|
String riskLevel = extractRiskLevelFromResponse(response); |
|
|
String riskLevel = extractRiskLevelFromResponse(response); |
|
|
String machineResultJson = JSON.toJSONString(response); |
|
|
String machineResultJson = JSON.toJSONString(response); |
|
|
applyAuditResultToTask(task, riskLevel, machineResultJson, strictness); |
|
|
applyAuditResultToTask(task, riskLevel, machineResultJson, strictness); |
|
|
@ -248,6 +245,9 @@ public class AuditExecutorServiceImpl implements AuditExecutorService { |
|
|
*/ |
|
|
*/ |
|
|
private void applyAuditResultToTask(MiniContentAuditTask task, String riskLevel, String machineResultJson, String strictness) { |
|
|
private void applyAuditResultToTask(MiniContentAuditTask task, String riskLevel, String machineResultJson, String strictness) { |
|
|
if (riskLevel == null) { |
|
|
if (riskLevel == null) { |
|
|
|
|
|
log.warn("机审riskLevel为null, 转人工处理, taskId={}", task.getId()); |
|
|
|
|
|
contentAuditTaskService.updateTaskMachineResult( |
|
|
|
|
|
task.getId(), machineResultJson, null, null, AuditConstants.TASK_TO_MANUAL); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -255,7 +255,7 @@ public class AuditExecutorServiceImpl implements AuditExecutorService { |
|
|
String result = applyStrategy(riskLevel, strictness); |
|
|
String result = applyStrategy(riskLevel, strictness); |
|
|
|
|
|
|
|
|
// 2. result 决定任务最终状态
|
|
|
// 2. result 决定任务最终状态
|
|
|
String taskStatus = AuditConstants.TASK_SUCCESS.equals(result) |
|
|
String taskStatus = AuditConstants.RESULT_PASSED.equals(result) |
|
|
? AuditConstants.TASK_SUCCESS : AuditConstants.TASK_TO_MANUAL; |
|
|
? AuditConstants.TASK_SUCCESS : AuditConstants.TASK_TO_MANUAL; |
|
|
|
|
|
|
|
|
// 回填任务表:machine_result(JSON) / risk_level / result / status
|
|
|
// 回填任务表:machine_result(JSON) / risk_level / result / status
|
|
|
@ -522,7 +522,7 @@ public class AuditExecutorServiceImpl implements AuditExecutorService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
String result = applyStrategy(riskLevel, strictness); |
|
|
String result = applyStrategy(riskLevel, strictness); |
|
|
String taskStatus = AuditConstants.TASK_SUCCESS.equals(result) |
|
|
String taskStatus = AuditConstants.RESULT_PASSED.equals(result) |
|
|
? AuditConstants.TASK_SUCCESS : AuditConstants.TASK_TO_MANUAL; |
|
|
? AuditConstants.TASK_SUCCESS : AuditConstants.TASK_TO_MANUAL; |
|
|
|
|
|
|
|
|
contentAuditTaskService.updateTaskMachineResult( |
|
|
contentAuditTaskService.updateTaskMachineResult( |
|
|
|