|
|
@@ -151,20 +151,20 @@ public class CompanyVoiceRoboticCallLogCallphoneServiceImpl extends ServiceImpl<
|
|
|
@Async("callLogExcutor")
|
|
|
public void asyncHandleCalleeCallBackResult(PushIIntentionResult result, CompanyVoiceRoboticCallees callees) {
|
|
|
try {
|
|
|
- String runTaskFlow = callees.getRunTaskFlow();
|
|
|
- if(StringUtils.isBlank(runTaskFlow)){
|
|
|
- runTaskFlow = Constants.CELL_PHONE;
|
|
|
- }else{
|
|
|
- if (!runTaskFlow.contains(Constants.CELL_PHONE)) {
|
|
|
- runTaskFlow = runTaskFlow + "," + Constants.CELL_PHONE;
|
|
|
- }
|
|
|
- }
|
|
|
- if(!runTaskFlow.equals(callees.getRunTaskFlow())){
|
|
|
- CompanyVoiceRoboticCallees updateCallees = new CompanyVoiceRoboticCallees();
|
|
|
- updateCallees.setId(callees.getId());
|
|
|
- updateCallees.setRunTaskFlow(runTaskFlow);
|
|
|
- companyVoiceRoboticCalleesMapper.updateById(updateCallees);
|
|
|
- }
|
|
|
+// String runTaskFlow = callees.getRunTaskFlow();
|
|
|
+// if(StringUtils.isBlank(runTaskFlow)){
|
|
|
+// runTaskFlow = Constants.CELL_PHONE;
|
|
|
+// }else{
|
|
|
+// if (!runTaskFlow.contains(Constants.CELL_PHONE)) {
|
|
|
+// runTaskFlow = runTaskFlow + "," + Constants.CELL_PHONE;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// if(!runTaskFlow.equals(callees.getRunTaskFlow())){
|
|
|
+// CompanyVoiceRoboticCallees updateCallees = new CompanyVoiceRoboticCallees();
|
|
|
+// updateCallees.setId(callees.getId());
|
|
|
+// updateCallees.setRunTaskFlow(runTaskFlow);
|
|
|
+// companyVoiceRoboticCalleesMapper.updateById(updateCallees);
|
|
|
+// }
|
|
|
String json= configService.selectConfigByKey("cid.config");
|
|
|
if(StringUtils.isBlank( json)){
|
|
|
log.error("未配置cid.config");
|
|
|
@@ -173,44 +173,48 @@ public class CompanyVoiceRoboticCallLogCallphoneServiceImpl extends ServiceImpl<
|
|
|
|
|
|
Notify notify = result.getNotify();
|
|
|
String uuid = notify.getUuid();
|
|
|
- getDialogMapDomain getDialogMap = getDialogMapDomain.builder()
|
|
|
- .uuid(uuid)
|
|
|
- .build();
|
|
|
- CompanyVoiceRoboticCallLogCallphone companyVoiceRoboticCallLog = companyVoiceRoboticCallLogCallphoneMapper.selectNoResultLogByCallees(callees);
|
|
|
-
|
|
|
- companyVoiceRoboticCallLog.setStatus(2);
|
|
|
- companyVoiceRoboticCallLog.setResult(JSON.toJSONString(result));
|
|
|
-
|
|
|
- CompanyWxClient companyWxClient = companyWxClientServiceImpl.getOne(new QueryWrapper<CompanyWxClient>().eq("robotic_id", callees.getRoboticId()).eq("customer_id", callees.getUserId()));
|
|
|
- CompanyVoiceRoboticWx roboticWx = companyVoiceRoboticWxServiceImpl.getById(companyWxClient.getRoboticWxId());
|
|
|
- CompanyWxAccount companyWxAccount = companyWxAccountMapper.selectCompanyWxAccountById(roboticWx.getAccountId());
|
|
|
- companyVoiceRoboticCallLog.setCompanyUserId(companyWxAccount.getCompanyUserId());
|
|
|
-
|
|
|
- // 调用接口查询通话其他信息
|
|
|
- TaskInfo dialogMap = aiCallService.getDialogMapNew(getDialogMap, companyVoiceRoboticCallLog.getCompanyId());
|
|
|
- // 写入其他记录
|
|
|
- JSONObject telData = dialogMap.getTelData();
|
|
|
- companyVoiceRoboticCallLog.setRecordPath((String) telData.getOrDefault("recordPath", ""));
|
|
|
- companyVoiceRoboticCallLog.setContentList(telData.containsKey("contentList")?telData.getJSONArray("contentList").toJSONString() : "");
|
|
|
- companyVoiceRoboticCallLog.setCallerNum((String) telData.getOrDefault("callerNum", ""));
|
|
|
- companyVoiceRoboticCallLog.setCalleeNum((String) telData.getOrDefault("calleeNum", ""));
|
|
|
- companyVoiceRoboticCallLog.setUuid((String) telData.getOrDefault("uuid", ""));
|
|
|
- Long createTime = telData.getLong("createTime");
|
|
|
- companyVoiceRoboticCallLog.setCallCreateTime(createTime);
|
|
|
- Long answerTime = telData.getLong("answerTime");
|
|
|
- companyVoiceRoboticCallLog.setCallAnswerTime(answerTime);
|
|
|
- companyVoiceRoboticCallLog.setIntention((String) telData.getOrDefault("intention", ""));
|
|
|
- companyVoiceRoboticCallLog.setCallTime( telData.getLong("duration"));
|
|
|
- BigDecimal callCharge = cidConfigVO.getCallCharge();
|
|
|
- //
|
|
|
- if(null == callCharge){
|
|
|
- callCharge = DEFAULT_CALL_CHARGE;
|
|
|
+
|
|
|
+
|
|
|
+ if(StringUtils.isNotBlank(uuid)){
|
|
|
+ getDialogMapDomain getDialogMap = getDialogMapDomain.builder()
|
|
|
+ .uuid(uuid)
|
|
|
+ .build();
|
|
|
+ CompanyVoiceRoboticCallLogCallphone companyVoiceRoboticCallLog = companyVoiceRoboticCallLogCallphoneMapper.selectNoResultLogByCallees(callees);
|
|
|
+
|
|
|
+ companyVoiceRoboticCallLog.setStatus(2);
|
|
|
+ companyVoiceRoboticCallLog.setResult(JSON.toJSONString(result));
|
|
|
+
|
|
|
+ CompanyWxClient companyWxClient = companyWxClientServiceImpl.getOne(new QueryWrapper<CompanyWxClient>().eq("robotic_id", callees.getRoboticId()).eq("customer_id", callees.getUserId()));
|
|
|
+ CompanyVoiceRoboticWx roboticWx = companyVoiceRoboticWxServiceImpl.getById(companyWxClient.getRoboticWxId());
|
|
|
+ CompanyWxAccount companyWxAccount = companyWxAccountMapper.selectCompanyWxAccountById(roboticWx.getAccountId());
|
|
|
+ companyVoiceRoboticCallLog.setCompanyUserId(companyWxAccount.getCompanyUserId());
|
|
|
+ // 调用接口查询通话其他信息
|
|
|
+ TaskInfo dialogMap = aiCallService.getDialogMapNew(getDialogMap, companyVoiceRoboticCallLog.getCompanyId());
|
|
|
+ // 写入其他记录
|
|
|
+ JSONObject telData = dialogMap.getTelData();
|
|
|
+ companyVoiceRoboticCallLog.setRecordPath((String) telData.getOrDefault("recordPath", ""));
|
|
|
+ companyVoiceRoboticCallLog.setContentList(telData.containsKey("contentList")?telData.getJSONArray("contentList").toJSONString() : "");
|
|
|
+ companyVoiceRoboticCallLog.setCallerNum((String) telData.getOrDefault("callerNum", ""));
|
|
|
+ companyVoiceRoboticCallLog.setCalleeNum((String) telData.getOrDefault("calleeNum", ""));
|
|
|
+ companyVoiceRoboticCallLog.setUuid((String) telData.getOrDefault("uuid", ""));
|
|
|
+ Long createTime = telData.getLong("createTime");
|
|
|
+ companyVoiceRoboticCallLog.setCallCreateTime(createTime);
|
|
|
+ Long answerTime = telData.getLong("answerTime");
|
|
|
+ companyVoiceRoboticCallLog.setCallAnswerTime(answerTime);
|
|
|
+ companyVoiceRoboticCallLog.setIntention((String) telData.getOrDefault("intention", ""));
|
|
|
+ companyVoiceRoboticCallLog.setCallTime( telData.getLong("duration"));
|
|
|
+ BigDecimal callCharge = cidConfigVO.getCallCharge();
|
|
|
+ //
|
|
|
+ if(null == callCharge){
|
|
|
+ callCharge = DEFAULT_CALL_CHARGE;
|
|
|
+ }
|
|
|
+ //向上取整分钟数
|
|
|
+ BigDecimal divide = new BigDecimal(companyVoiceRoboticCallLog.getCallTime()).divide(ONE_MINUTES_SECOND, 0, RoundingMode.CEILING);
|
|
|
+ BigDecimal multiply = divide.multiply(callCharge);
|
|
|
+ companyVoiceRoboticCallLog.setCost(multiply);
|
|
|
+ baseMapper.updateCompanyVoiceRoboticCallLogCallphone(companyVoiceRoboticCallLog);
|
|
|
}
|
|
|
- //向上取整分钟数
|
|
|
- BigDecimal divide = new BigDecimal(companyVoiceRoboticCallLog.getCallTime()).divide(ONE_MINUTES_SECOND, 0, RoundingMode.CEILING);
|
|
|
- BigDecimal multiply = divide.multiply(callCharge);
|
|
|
- companyVoiceRoboticCallLog.setCost(multiply);
|
|
|
- baseMapper.updateCompanyVoiceRoboticCallLogCallphone(companyVoiceRoboticCallLog);
|
|
|
+
|
|
|
} catch (Exception ex) {
|
|
|
log.error("处理回调结果异常:{}", result, ex);
|
|
|
}
|