浏览代码

feat(job): 优化AI用户违规检查任务逻辑

- 修改XXL-JOB注解名称为getAiUserViolationResult
- 更新查询条件,增加processing_status和ai_task_id非空判断
- 修复处理状态更新逻辑,完善报告结果存储
- 优化违规类型映射,支持多种投诉类型的中文描述
- 调整任务ID获取方式,从Integer改为String类型
- 更新查询排序字段,由create_time改为created_time
- 移除冗余的SecondGoodsAuditServiceImpl依赖注入
- 删除无用的SecondAiTaskService接口定义
fcw 1 周之前
父节点
当前提交
e69d9ef8e8

+ 6 - 3
alien-job/src/main/java/shop/alien/job/second/AiUserViolationJob.java

@@ -43,7 +43,7 @@ public class AiUserViolationJob {
 
     private String aiUserViolationCheckUrl = "http://192.168.2.78:9000/ai/auto-review/api/v1/user_complaint_record/result";
 
-    @XxlJob("getAiGoodsCheckResult")
+    @XxlJob("getAiUserViolationResult")
     public R<String> getAiUserViolationResult() {
         String accessToken = fetchAiServiceToken();
         if (!StringUtils.hasText(accessToken)) {
@@ -85,7 +85,8 @@ public class AiUserViolationJob {
         // 查询所有状态为处理中的申诉
         List<LifeUserViolation> pendingTasks = lifeUserViolationMapper.selectList(
                 new QueryWrapper<LifeUserViolation>()
-                        .eq("status", "0")
+                        .eq("processing_status", "0")
+                        .isNotNull("ai_task_id")
         );
 
         // 循环调用查询结果接口
@@ -136,10 +137,12 @@ public class AiUserViolationJob {
                     }
 
                     if (dataJsonObj.getString("status").equals("completed")) {
-                        if (dataJsonObj.getString("is_valid").isEmpty() && dataJsonObj.getString("is_valid").equals("true")) {
+                        if (dataJsonObj.getString("is_valid").equals("true")) {
                             aiTask.setProcessingStatus("1");
+                            aiTask.setReportResult(dataJsonObj.getString("decision_reason"));
                         } else {
                             aiTask.setProcessingStatus("0");
+                            aiTask.setReportResult(dataJsonObj.getString("decision_reason"));
                         }
                     }
 

+ 0 - 2
alien-job/src/main/java/shop/alien/job/second/goodsCheckJob.java

@@ -25,8 +25,6 @@ import shop.alien.entity.store.StoreCommentAppeal;
 import shop.alien.job.feign.SecondGoodsFeign;
 import shop.alien.mapper.SecondAiTaskMapper;
 import shop.alien.mapper.second.SecondGoodsMapper;
-import shop.alien.second.service.SecondGoodsAuditService;
-import shop.alien.second.service.impl.SecondGoodsAuditServiceImpl;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;

+ 0 - 12
alien-second/src/main/java/shop/alien/second/service/SecondAiTaskService.java

@@ -1,12 +0,0 @@
-package shop.alien.second.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import shop.alien.entity.store.SecondAiTask;
-
-/**
- * second_ai_task 服务接口
- */
-public interface SecondAiTaskService extends IService<SecondAiTask> {
-}
-
-

+ 0 - 1
alien-second/src/main/java/shop/alien/second/service/impl/SecondGoodsAuditServiceImpl.java

@@ -49,7 +49,6 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class SecondGoodsAuditServiceImpl implements SecondGoodsAuditService {
 
-    private final SecondAiTaskService secondAiTaskService;
     private final SecondAiTaskMapper secondAiTaskMapper;
     private final StoreImgMapper storeImgMapper;
     /**

+ 23 - 4
alien-store/src/main/java/shop/alien/store/util/AiUserViolationUtils.java

@@ -105,7 +105,26 @@ public class AiUserViolationUtils {
 
         Map<String, Object> analyzeRequest = new HashedMap<>();
         // 对应参数
-        analyzeRequest.put("complaint_type", lifeuserViolation.getViolationType());
+        if (lifeuserViolation.getViolationType().equals("1")){
+            analyzeRequest.put("complaint_type", "用户违规");
+        } else if (lifeuserViolation.getViolationType().equals("2")){
+            analyzeRequest.put("complaint_type", "色情低俗");
+        } else if (lifeuserViolation.getViolationType().equals("3")){
+            analyzeRequest.put("complaint_type", "违法违规");
+        } else if (lifeuserViolation.getViolationType().equals("5")){
+            analyzeRequest.put("complaint_type", "涉嫌诈骗");
+        } else if (lifeuserViolation.getViolationType().equals("6")){
+            analyzeRequest.put("complaint_type", "人身攻击");
+        } else if (lifeuserViolation.getViolationType().equals("7")){
+            analyzeRequest.put("complaint_type", "种族歧视");
+        } else if (lifeuserViolation.getViolationType().equals("4")){
+            analyzeRequest.put("complaint_type", "辱骂敏感");
+        } else if (lifeuserViolation.getViolationType().equals("12")){
+            analyzeRequest.put("complaint_type", "网络暴力");
+        } else {
+            analyzeRequest.put("complaint_type", "其他");
+        }
+
         analyzeRequest.put("reporter_user_id", lifeuserViolation.getReportingUserId());
         analyzeRequest.put("reported_user_id", lifeuserViolation.getReportedUserId());
 
@@ -163,13 +182,13 @@ public class AiUserViolationUtils {
             }
 
             // 获取record_id用于后续查询
-            Integer taskId = dataJsonObj.getInteger("task_id");
+            String taskId = dataJsonObj.getString("task_id");
             if (taskId == null) {
                 log.error("提交用户投诉审核任务返回record_id为空");
                 R.fail("提交用户投诉审核任务返回record_id为空");
                 return  null;
             }
-            return taskId.toString();
+            return taskId;
         } else {
             if (analyzeResp != null) {
                 log.error("调用提交用户投诉审核任务接口失败, http状态: {}", analyzeResp.getStatusCode());
@@ -199,7 +218,7 @@ public class AiUserViolationUtils {
                         .eq("receiver_id", userReporterUserById));
 
         // 按时间倒序排列
-        queryWrapper.orderByDesc("create_time");
+        queryWrapper.orderByDesc("created_time");
 
         // 限制50条记录
         queryWrapper.last("LIMIT 50");