|
@@ -1,6 +1,7 @@
|
|
|
package com.fs.aiSipCall.service.impl;
|
|
package com.fs.aiSipCall.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -26,14 +27,19 @@ import com.fs.company.mapper.CompanyVoiceRoboticCallLogCallphoneMapper;
|
|
|
import com.fs.company.mapper.EasyCallMapper;
|
|
import com.fs.company.mapper.EasyCallMapper;
|
|
|
import com.fs.company.param.ExecutionContext;
|
|
import com.fs.company.param.ExecutionContext;
|
|
|
import com.fs.company.service.CompanyWorkflowEngine;
|
|
import com.fs.company.service.CompanyWorkflowEngine;
|
|
|
|
|
+import com.fs.company.service.impl.call.node.AiCallTaskNode;
|
|
|
|
|
+import com.fs.company.vo.CidConfigVO;
|
|
|
import com.fs.company.vo.easycall.EasyCallCallPhoneVO;
|
|
import com.fs.company.vo.easycall.EasyCallCallPhoneVO;
|
|
|
import com.fs.company.vo.easycall.EasyCallOutBoundVO;
|
|
import com.fs.company.vo.easycall.EasyCallOutBoundVO;
|
|
|
|
|
+import com.fs.system.service.ISysConfigService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.net.URLEncoder;
|
|
import java.net.URLEncoder;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
@@ -71,6 +77,11 @@ public class AiSipCallOutboundCdrServiceImpl extends ServiceImpl<AiSipCallOutbou
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private CompanyWorkflowEngine companyWorkflowEngine;
|
|
private CompanyWorkflowEngine companyWorkflowEngine;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ISysConfigService configService;
|
|
|
|
|
+
|
|
|
|
|
+ private static final BigDecimal DEFAULT_CALL_CHARGE = new BigDecimal("0.12");
|
|
|
|
|
+ private static final BigDecimal ONE_MINUTES_SECOND = new BigDecimal("60");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -523,13 +534,27 @@ public class AiSipCallOutboundCdrServiceImpl extends ServiceImpl<AiSipCallOutbou
|
|
|
companyVoiceRoboticCallLogCallphone.setUuid(req.getUuid());
|
|
companyVoiceRoboticCallLogCallphone.setUuid(req.getUuid());
|
|
|
companyVoiceRoboticCallLogCallphone.setCallCreateTime(callPhoneRes.getStartTime());
|
|
companyVoiceRoboticCallLogCallphone.setCallCreateTime(callPhoneRes.getStartTime());
|
|
|
companyVoiceRoboticCallLogCallphone.setCallAnswerTime(callPhoneRes.getAnsweredTime());
|
|
companyVoiceRoboticCallLogCallphone.setCallAnswerTime(callPhoneRes.getAnsweredTime());
|
|
|
-// companyVoiceRoboticCallLogCallphone.setIntention(callPhoneRes.getIntent());
|
|
|
|
|
|
|
+ companyVoiceRoboticCallLogCallphone.setIntention(req.getIntent());
|
|
|
companyVoiceRoboticCallLogCallphone.setCompanyId(req.getCompanyId());
|
|
companyVoiceRoboticCallLogCallphone.setCompanyId(req.getCompanyId());
|
|
|
companyVoiceRoboticCallLogCallphone.setCompanyUserId(req.getCompanyUserId());
|
|
companyVoiceRoboticCallLogCallphone.setCompanyUserId(req.getCompanyUserId());
|
|
|
companyVoiceRoboticCallLogCallphone.setCallTime(Long.valueOf(callPhoneRes.getTimeLen()));
|
|
companyVoiceRoboticCallLogCallphone.setCallTime(Long.valueOf(callPhoneRes.getTimeLen()));
|
|
|
-// companyVoiceRoboticCallLogCallphone.setCost(callPhoneRes.getTotalCost());
|
|
|
|
|
companyVoiceRoboticCallLogCallphone.setCallType(Integer.valueOf(callType));
|
|
companyVoiceRoboticCallLogCallphone.setCallType(Integer.valueOf(callType));
|
|
|
|
|
|
|
|
|
|
+ String json = configService.selectConfigByKey("cid.config");
|
|
|
|
|
+ CidConfigVO cidConfigVO = JSONUtil.toBean(json, CidConfigVO.class);
|
|
|
|
|
+ BigDecimal callCharge = cidConfigVO.getCallCharge();
|
|
|
|
|
+ //
|
|
|
|
|
+ if (null == callCharge) {
|
|
|
|
|
+ callCharge = DEFAULT_CALL_CHARGE;
|
|
|
|
|
+ }
|
|
|
|
|
+ //向上取整分钟数
|
|
|
|
|
+ BigDecimal divide = new BigDecimal(companyVoiceRoboticCallLogCallphone.getCallTime()).divide(ONE_MINUTES_SECOND, 0, RoundingMode.CEILING);
|
|
|
|
|
+ BigDecimal multiply = divide.multiply(callCharge);
|
|
|
|
|
+ companyVoiceRoboticCallLogCallphone.setCost(multiply);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ int i = companyVoiceRoboticCallLogCallphoneMapper.insertCompanyVoiceRoboticCallLogCallphone(companyVoiceRoboticCallLogCallphone);
|
|
|
|
|
+
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
param.put("callBackUuid", callBackUuid);
|
|
param.put("callBackUuid", callBackUuid);
|
|
|
param.put("callSource", "callBack");
|
|
param.put("callSource", "callBack");
|
|
@@ -538,7 +563,7 @@ public class AiSipCallOutboundCdrServiceImpl extends ServiceImpl<AiSipCallOutbou
|
|
|
redisCache.deleteObject(EASYCALL_WORKFLOW_REDIS_KEY + callBackUuid);
|
|
redisCache.deleteObject(EASYCALL_WORKFLOW_REDIS_KEY + callBackUuid);
|
|
|
|
|
|
|
|
|
|
|
|
|
- return companyVoiceRoboticCallLogCallphoneMapper.insertCompanyVoiceRoboticCallLogCallphone(companyVoiceRoboticCallLogCallphone);
|
|
|
|
|
|
|
+ return i;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|