Przeglądaj źródła

外呼记录新增展示聊天记录

zyy 2 tygodni temu
rodzic
commit
474814e90f

+ 30 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceRoboticServiceImpl.java

@@ -1,7 +1,9 @@
 package com.fs.company.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.aicall.domain.apiresult.Notify;
@@ -46,7 +48,10 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
+
+import static com.fs.company.service.impl.call.node.AbstractWorkflowNode.companyVoiceRoboticCallLogCallphoneMapper;
 import static com.fs.company.service.impl.call.node.AiCallTaskNode.EASYCALL_WORKFLOW_REDIS_KEY;
 
 
@@ -1536,6 +1541,31 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
                 .filter(Objects::nonNull)
                 .collect(Collectors.toList());
 
+        //拿取业务id
+        List<Long> businessIds = records.stream()
+                .map(WorkflowExecRecordVo::getBusinessId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toList());
+
+        if (!businessIds.isEmpty()) {
+            List<CompanyVoiceRoboticBusiness> businesses = companyVoiceRoboticBusinessMapper.selectList(new LambdaQueryWrapper<CompanyVoiceRoboticBusiness>()
+                    .in(CompanyVoiceRoboticBusiness::getId, businessIds));
+            if (ObjectUtil.isNotEmpty(businesses)) {
+                Map<Long, CompanyVoiceRoboticBusiness> businessMap = businesses.stream().collect(Collectors.toMap(CompanyVoiceRoboticBusiness::getId, Function.identity()));
+                records.forEach(record -> {
+                    if (record.getBusinessId() != null && businessMap.containsKey(record.getBusinessId())) {
+                        CompanyVoiceRoboticBusiness business = businessMap.get(record.getBusinessId());
+                        CompanyVoiceRoboticCallLogCallphone callLogCallphone = companyVoiceRoboticCallLogCallphoneMapper.selectOne(new LambdaQueryWrapper<CompanyVoiceRoboticCallLogCallphone>()
+                                .eq(CompanyVoiceRoboticCallLogCallphone::getRoboticId, business.getRoboticId())
+                                .eq(CompanyVoiceRoboticCallLogCallphone::getCallerId, business.getCalleeId()));
+                        if (ObjectUtil.isNotEmpty(callLogCallphone)) {
+                            record.setContentList(callLogCallphone.getContentList());
+                        }
+                    }
+                });
+            }
+        }
+
         if (!instanceIds.isEmpty()) {
             List<CompanyAiWorkflowExecLog> allLogs = companyAiWorkflowExecLogMapper.selectByInstanceIds(instanceIds);
 

+ 5 - 0
fs-service/src/main/java/com/fs/company/vo/WorkflowExecRecordVo.java

@@ -124,6 +124,11 @@ public class WorkflowExecRecordVo {
      */
     private Boolean waitCallNode;
 
+    /**
+     * 通话内容
+     */
+    private String contentList;
+
     /**
      * 节点执行日志VO
      */