|
@@ -1,6 +1,7 @@
|
|
|
package com.fs.company.service.impl;
|
|
package com.fs.company.service.impl;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fs.aicall.domain.apiresult.Notify;
|
|
import com.fs.aicall.domain.apiresult.Notify;
|
|
@@ -22,6 +23,7 @@ import com.fs.company.mapper.CompanyVoiceRoboticMapper;
|
|
|
import com.fs.company.mapper.CompanyVoiceRoboticWxMapper;
|
|
import com.fs.company.mapper.CompanyVoiceRoboticWxMapper;
|
|
|
import com.fs.company.mapper.CompanyWxClientMapper;
|
|
import com.fs.company.mapper.CompanyWxClientMapper;
|
|
|
import com.fs.company.service.ICompanySmsService;
|
|
import com.fs.company.service.ICompanySmsService;
|
|
|
|
|
+import com.fs.company.service.ICompanyVoiceRoboticCallLogService;
|
|
|
import com.fs.company.service.ICompanyVoiceRoboticService;
|
|
import com.fs.company.service.ICompanyVoiceRoboticService;
|
|
|
import com.fs.company.service.ICompanyWxAccountService;
|
|
import com.fs.company.service.ICompanyWxAccountService;
|
|
|
import com.fs.company.vo.AddWxClientVo;
|
|
import com.fs.company.vo.AddWxClientVo;
|
|
@@ -79,6 +81,7 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
private final CompanySmsTempServiceImpl smsTempService;
|
|
private final CompanySmsTempServiceImpl smsTempService;
|
|
|
private final ICompanySmsService companySmsService;
|
|
private final ICompanySmsService companySmsService;
|
|
|
private final CompanyWxClientMapper companyWxClientMapper;
|
|
private final CompanyWxClientMapper companyWxClientMapper;
|
|
|
|
|
+ private final ICompanyVoiceRoboticCallLogService companyVoiceRoboticCallLogService;
|
|
|
/**
|
|
/**
|
|
|
* 查询机器人外呼任务
|
|
* 查询机器人外呼任务
|
|
|
*
|
|
*
|
|
@@ -162,6 +165,7 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
if(customerList.isEmpty()){
|
|
if(customerList.isEmpty()){
|
|
|
throw new BaseException("拨打电话不能为空");
|
|
throw new BaseException("拨打电话不能为空");
|
|
|
}
|
|
}
|
|
|
|
|
+ List<CompanyVoiceRoboticCallLog> addLogs = new ArrayList<>();
|
|
|
// 构建三方接口请求数据
|
|
// 构建三方接口请求数据
|
|
|
CalltaskcreateaiCustomizeDomain param = new CalltaskcreateaiCustomizeDomain();
|
|
CalltaskcreateaiCustomizeDomain param = new CalltaskcreateaiCustomizeDomain();
|
|
|
param.setRobot(companyVoiceRobotic.getRobot());
|
|
param.setRobot(companyVoiceRobotic.getRobot());
|
|
@@ -197,6 +201,16 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
}
|
|
}
|
|
|
// 请求外呼接口
|
|
// 请求外呼接口
|
|
|
CalltaskcreateaiCustomizeResult result = aiCallService.calltaskcreateaiCustomize(param, companyVoiceRobotic.getCompanyId());
|
|
CalltaskcreateaiCustomizeResult result = aiCallService.calltaskcreateaiCustomize(param, companyVoiceRobotic.getCompanyId());
|
|
|
|
|
+ JSONObject runParam = (JSONObject) JSON.toJSON(param);
|
|
|
|
|
+ runParam.put("companyId", companyVoiceRobotic.getCompanyId());
|
|
|
|
|
+ String runPString = runParam.toJSONString();
|
|
|
|
|
+ calleesList.forEach(call -> {
|
|
|
|
|
+ CompanyVoiceRoboticCallLog addLog = CompanyVoiceRoboticCallLog.initCallLogByType(Constants.CELL_PHONE,
|
|
|
|
|
+ runPString, call.getId(), companyVoiceRobotic.getId());
|
|
|
|
|
+ addLog.setStatus(1);
|
|
|
|
|
+ addLogs.add(addLog);
|
|
|
|
|
+ });
|
|
|
|
|
+ companyVoiceRoboticCallLogService.asyncInsertCompanyVoiceRoboticCallLogBatch(addLogs);
|
|
|
// 设置返回数据
|
|
// 设置返回数据
|
|
|
companyVoiceRobotic.setTaskId(result.getTaskID());
|
|
companyVoiceRobotic.setTaskId(result.getTaskID());
|
|
|
companyVoiceRobotic.setTaskName(result.getTaskName());
|
|
companyVoiceRobotic.setTaskName(result.getTaskName());
|
|
@@ -232,8 +246,14 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
if(StringUtils.isNotEmpty(robotic.getEndTime1())){
|
|
if(StringUtils.isNotEmpty(robotic.getEndTime1())){
|
|
|
param.setEndTime1(robotic.getEndTime1() + ":00");
|
|
param.setEndTime1(robotic.getEndTime1() + ":00");
|
|
|
}
|
|
}
|
|
|
|
|
+ JSONObject runParam = (JSONObject) JSON.toJSON(param);
|
|
|
|
|
+ runParam.put("companyId",robotic.getCompanyId());
|
|
|
|
|
+ CompanyVoiceRoboticCallLog addLog = CompanyVoiceRoboticCallLog.initCallLogByType(Constants.CELL_PHONE,
|
|
|
|
|
+ runParam.toJSONString(), callerId, roboticId);
|
|
|
// 请求外呼接口
|
|
// 请求外呼接口
|
|
|
CalltaskcreateaiCustomizeResult result = aiCallService.calltaskcreateaiCustomize(param, robotic.getCompanyId());
|
|
CalltaskcreateaiCustomizeResult result = aiCallService.calltaskcreateaiCustomize(param, robotic.getCompanyId());
|
|
|
|
|
+ addLog.setStatus(1);
|
|
|
|
|
+ companyVoiceRoboticCallLogService.asyncInsertCompanyVoiceRoboticCallLog(addLog);
|
|
|
// 设置返回数据
|
|
// 设置返回数据
|
|
|
// robotic.setTaskId(result.getTaskID());
|
|
// robotic.setTaskId(result.getTaskID());
|
|
|
// robotic.setTaskName(result.getTaskName());
|
|
// robotic.setTaskName(result.getTaskName());
|
|
@@ -286,7 +306,19 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
smsSendBatchParam.setCustomerIds(ids);
|
|
smsSendBatchParam.setCustomerIds(ids);
|
|
|
smsSendBatchParam.setContent(temp.getContent());
|
|
smsSendBatchParam.setContent(temp.getContent());
|
|
|
smsSendBatchParam.setSenderName(wxAccount.getWxNickName());
|
|
smsSendBatchParam.setSenderName(wxAccount.getWxNickName());
|
|
|
- sendMsgBatch(temp,smsSendBatchParam);
|
|
|
|
|
|
|
+ JSONObject runParam = (JSONObject) JSON.toJSON(smsSendBatchParam);
|
|
|
|
|
+ runParam.put("temp",temp);
|
|
|
|
|
+ CompanyVoiceRoboticCallLog addLog = CompanyVoiceRoboticCallLog.initCallLogByType(Constants.SEND_MSG,
|
|
|
|
|
+ runParam.toJSONString(), callerId, roboticId);
|
|
|
|
|
+ addLog.setStatus(2);
|
|
|
|
|
+ try{
|
|
|
|
|
+ sendMsgBatch(temp,smsSendBatchParam);
|
|
|
|
|
+ }catch(Exception ex){
|
|
|
|
|
+ addLog.setStatus(3);
|
|
|
|
|
+ addLog.setResult(ex.getMessage());
|
|
|
|
|
+ log.error("sendMsgOne异常:",ex);
|
|
|
|
|
+ }
|
|
|
|
|
+ companyVoiceRoboticCallLogService.asyncInsertCompanyVoiceRoboticCallLog(addLog);
|
|
|
//如果选择的是名片短链接模版 update by qxj 2023年05月26日10:45:28
|
|
//如果选择的是名片短链接模版 update by qxj 2023年05月26日10:45:28
|
|
|
// if(StringUtils.isNotEmpty(param.getCardUrl())){
|
|
// if(StringUtils.isNotEmpty(param.getCardUrl())){
|
|
|
// smsSendBatchParam.setCardUrl(param.getCardUrl());
|
|
// smsSendBatchParam.setCardUrl(param.getCardUrl());
|
|
@@ -395,6 +427,8 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
|
|
|
if("billing".equals(notify.getType())) pushBilling(result);
|
|
if("billing".equals(notify.getType())) pushBilling(result);
|
|
|
// // 是否全部回调完毕
|
|
// // 是否全部回调完毕
|
|
|
CompanyVoiceRoboticCallees callee = getResultCalleeInfo(notify);
|
|
CompanyVoiceRoboticCallees callee = getResultCalleeInfo(notify);
|
|
|
|
|
+ //更新调用日志
|
|
|
|
|
+ companyVoiceRoboticCallLogService.asyncHandleCalleeCallBackResult(result,callee);
|
|
|
long count = companyVoiceRoboticCalleesMapper.countByRoboticIdNotUuid(callee.getRoboticId());
|
|
long count = companyVoiceRoboticCalleesMapper.countByRoboticIdNotUuid(callee.getRoboticId());
|
|
|
if(count == 0){
|
|
if(count == 0){
|
|
|
// new Thread(() -> dispenseWx(callee.getRoboticId())).start();
|
|
// new Thread(() -> dispenseWx(callee.getRoboticId())).start();
|