Explorar el Código

申诉评价 AI审核

qxy hace 15 horas
padre
commit
df13ac7380

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/store/CommentAppeal.java

@@ -96,5 +96,9 @@ public class CommentAppeal extends Model<CommentAppeal> {
     @ApiModelProperty(value = "订单ID")
     @TableField("order_id")
     private Integer orderId;
+
+//    @ApiModelProperty(value = "评价图片")
+//    @TableField("review_images")
+//    private String reviewImages;
 }
 

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/OrderReviewVo.java

@@ -94,5 +94,8 @@ public class OrderReviewVo {
 
     @ApiModelProperty(value = "申诉id (如果该评价被申诉 申诉id会有值)")
     private String appealId;
+
+    @ApiModelProperty(value = "用户手机号")
+    private String userPhone;
 }
 

+ 22 - 0
alien-lawyer/src/main/java/shop/alien/lawyer/controller/AiAutoReview.java

@@ -15,11 +15,15 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.RestTemplate;
+import shop.alien.entity.store.CommentAppeal;
 import shop.alien.entity.store.LawyerUserViolation;
 import shop.alien.lawyer.service.AiUserAuditTaskService;
+import shop.alien.lawyer.service.CommentAppealService;
 import shop.alien.lawyer.service.LawyerUserViolationService;
 import shop.alien.lawyer.util.ai.AiAuthTokenUtil;
 
+import java.sql.Date;
+import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Map;
 
@@ -40,6 +44,8 @@ public class AiAutoReview {
 
     private final LawyerUserViolationService lawyerUserViolationService;
 
+    private final CommentAppealService commentAppealService;
+
     /**
      * 调用 AI 服务,获取申诉结果
      *
@@ -72,6 +78,22 @@ public class AiAutoReview {
         aiHeaders.setContentType(MediaType.APPLICATION_JSON);
         aiHeaders.set("Authorization", "Bearer " + accessToken);
 
+        CommentAppeal commentAppeal = new CommentAppeal();
+        //申诉理由
+        commentAppeal.setAppealReason(requestBody.get("appeal_reason").toString());
+        //评价id
+        commentAppeal.setCommentId(Integer.parseInt(requestBody.get("comment_id").toString()));
+        //评价内容
+        commentAppeal.setCommentInfo(requestBody.get("user_review").toString());
+        //订单id
+        commentAppeal.setOrderId(Integer.parseInt(requestBody.get("order_id").toString()));
+        //申诉图片
+        commentAppeal.setImgUrl(requestBody.get("appeal_images").toString());
+        //评价图片
+//        commentAppeal.setReviewImages(requestBody.get("review_images").toString());
+        //律师id
+        commentAppeal.setLawyerUserId(requestBody.get("lawyer_user_id").toString());
+        commentAppealService.submitAppeal(commentAppeal);
         HttpEntity<Map<String, Object>> request = new HttpEntity<>(requestBody, aiHeaders);
         try {
             aiUserAuditTaskService.asyncAiReview(requestBody, accessToken);

+ 7 - 7
alien-lawyer/src/main/java/shop/alien/lawyer/controller/CommentAppealController.java

@@ -42,8 +42,8 @@ public class CommentAppealController {
     public R<CommentAppeal> submitAppeal(@RequestBody CommentAppeal commentAppeal) {
         log.info("CommentAppealController.submitAppeal?commentAppeal={}", commentAppeal);
         //申诉时间
-        commentAppeal.setAppealTime(new Date());
-        commentAppeal.setAppealNumber(generateOrderNumber());
+//        commentAppeal.setAppealTime(new Date());
+//        commentAppeal.setAppealNumber(generateOrderNumber());
         return commentAppealService.submitAppeal(commentAppeal);
     }
 
@@ -120,11 +120,11 @@ public class CommentAppealController {
         return R.data(appealList, "查询成功");
     }
 
-    private String generateOrderNumber() {
-        String dateStr = new SimpleDateFormat("yyyyMMdd").format(new Date());
-        String randomStr = String.format("%05d", RandomUtils.nextInt(100000));
-        return "LAW" + dateStr + randomStr;
-    }
+//    private String generateOrderNumber() {
+//        String dateStr = new SimpleDateFormat("yyyyMMdd").format(new Date());
+//        String randomStr = String.format("%05d", RandomUtils.nextInt(100000));
+//        return "LAW" + dateStr + randomStr;
+//    }
 }
 
 

+ 1 - 0
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/AiUserAuditTaskServiceImpl.java

@@ -122,6 +122,7 @@ public class AiUserAuditTaskServiceImpl implements AiUserAuditTaskService {
     }
 
     @Override
+    @Async("lawyerTaskExecutor")
     public void asyncAiReview(Map<String, Object> requestBody, String accessToken) {
         log.info("开始异步调用AI申诉接口,请求URL:{},请求参数:{}", aiUserAuditTaskUrl, requestBody);
 

+ 10 - 0
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/CommentAppealServiceImpl.java

@@ -1,6 +1,7 @@
 package shop.alien.lawyer.service.impl;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.nacos.client.naming.utils.RandomUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -23,6 +24,7 @@ import shop.alien.lawyer.service.ReviewCommentService;
 import shop.alien.util.common.JwtUtil;
 import shop.alien.util.common.ListToPage;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -83,6 +85,8 @@ public class CommentAppealServiceImpl extends ServiceImpl<CommentAppealMapper, C
         if (commentAppeal.getDeleteFlag() == null) {
             commentAppeal.setDeleteFlag(0);
         }
+        commentAppeal.setAppealTime(new Date());
+        commentAppeal.setAppealNumber(generateOrderNumber());
 
         // 保存申诉
         boolean result = this.save(commentAppeal);
@@ -566,6 +570,12 @@ public class CommentAppealServiceImpl extends ServiceImpl<CommentAppealMapper, C
 
         return appealList;
     }
+
+    private String generateOrderNumber() {
+        String dateStr = new SimpleDateFormat("yyyyMMdd").format(new Date());
+        String randomStr = String.format("%05d", RandomUtils.nextInt(100000));
+        return "LAW" + dateStr + randomStr;
+    }
 }
 
 

+ 7 - 12
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/OrderReviewServiceImpl.java

@@ -15,12 +15,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import shop.alien.entity.result.R;
-import shop.alien.entity.store.LawyerConsultationOrder;
-import shop.alien.entity.store.LawyerUser;
-import shop.alien.entity.store.LifeLikeRecord;
-import shop.alien.entity.store.LifeNotice;
-import shop.alien.entity.store.OrderReview;
-import shop.alien.entity.store.ReviewComment;
+import shop.alien.entity.store.*;
 import shop.alien.entity.store.dto.OrderReviewDto;
 import shop.alien.entity.store.vo.LawyerReviewStatisticsVo;
 import shop.alien.entity.store.vo.OrderReviewDetailVo;
@@ -30,12 +25,7 @@ import shop.alien.entity.store.vo.WebSocketVo;
 import shop.alien.lawyer.config.WebSocketProcess;
 import shop.alien.lawyer.service.OrderReviewService;
 import shop.alien.lawyer.service.ReviewCommentService;
-import shop.alien.mapper.LawyerConsultationOrderMapper;
-import shop.alien.mapper.LawyerUserMapper;
-import shop.alien.mapper.LifeLikeRecordMapper;
-import shop.alien.mapper.LifeNoticeMapper;
-import shop.alien.mapper.OrderReviewMapper;
-import shop.alien.mapper.ReviewCommentMapper;
+import shop.alien.mapper.*;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -61,6 +51,7 @@ public class OrderReviewServiceImpl extends ServiceImpl<OrderReviewMapper, Order
     private final LawyerUserMapper lawyerUserMapper;
     private final LifeNoticeMapper lifeNoticeMapper;
     private final WebSocketProcess webSocketProcess;
+    private final LifeUserMapper lifeUserMapper;
 
     /**
      * 系统发送者ID常量
@@ -319,6 +310,10 @@ public class OrderReviewServiceImpl extends ServiceImpl<OrderReviewMapper, Order
         }
         
         // 构建返回结果
+        if(reviewVo.getUserId() != null){
+            LifeUser lifeUser = lifeUserMapper.selectOne(new LambdaQueryWrapper<LifeUser>().eq(LifeUser :: getId, reviewVo.getUserId()));
+            reviewVo.setUserPhone(lifeUser.getUserPhone());
+        }
         OrderReviewDetailVo detailVo = new OrderReviewDetailVo();
         detailVo.setReview(reviewVo);
         detailVo.setComments(comments != null ? comments : new ArrayList<>());