修改呼叫信息保存逻辑
parent
4e248c5324
commit
443ac3c909
@ -0,0 +1,30 @@
|
||||
package com.baiye.modules.telemarkting.entity.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author wujingtao
|
||||
* @date 2022/02/10
|
||||
*/
|
||||
@Data
|
||||
public class RollCallBackDTO {
|
||||
private String reqid;
|
||||
private String caller;
|
||||
private String callee;
|
||||
private String display_caller;
|
||||
private String display_callee;
|
||||
private String sessionid;
|
||||
private String duration;
|
||||
private String record_file_url;
|
||||
private String caller_start_time;
|
||||
private String caller_ring_time;
|
||||
private String caller_answer_time;
|
||||
private String callee_start_time;
|
||||
private String callee_ring_time;
|
||||
private String callee_answer_time;
|
||||
private String hangup_time;
|
||||
private String hangup_reason;
|
||||
private String extval1;
|
||||
private String extval2;
|
||||
private String extval3;
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.baiye.modules.telemarkting.entity.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author wujingtao
|
||||
* @date 2022/02/10
|
||||
*/
|
||||
@Data
|
||||
public class RollCallSystemDTO {
|
||||
private String sig;
|
||||
private String appid;
|
||||
private String req_id;
|
||||
private String caller;
|
||||
private String callee;
|
||||
private String display_caller;
|
||||
private String display_callee;
|
||||
private String is_record;
|
||||
private String transfer_tel;
|
||||
private String cdr_url;
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package com.baiye.modules.telemarkting.service;
|
||||
|
||||
import com.baiye.http.CommonResponse;
|
||||
import com.baiye.modules.telemarkting.entity.dto.DoubleCallReqDTO;
|
||||
import com.baiye.modules.telemarkting.entity.dto.RollCallBackDTO;
|
||||
|
||||
/**
|
||||
* @author wujingtao
|
||||
* @date 2022/02/10
|
||||
* 点呼
|
||||
*/
|
||||
public interface RollCallService {
|
||||
/**
|
||||
* 点呼请求
|
||||
*
|
||||
* @param doubleCallReq
|
||||
* @return
|
||||
*/
|
||||
CommonResponse<Object> rollCallReq(DoubleCallReqDTO doubleCallReq);
|
||||
|
||||
/**
|
||||
* 电呼回调
|
||||
*
|
||||
* @param rollCallBackDTO
|
||||
*/
|
||||
void rollCallBack(RollCallBackDTO rollCallBackDTO);
|
||||
}
|
@ -0,0 +1,97 @@
|
||||
package com.baiye.modules.telemarkting.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.feign.SourceClueClient;
|
||||
import com.baiye.http.CommonResponse;
|
||||
import com.baiye.modules.system.domain.Clue;
|
||||
import com.baiye.modules.telemarkting.dao.AllCallInfoRepository;
|
||||
import com.baiye.modules.telemarkting.dao.CallClueRepository;
|
||||
import com.baiye.modules.telemarkting.entity.AllCallInfo;
|
||||
import com.baiye.modules.telemarkting.entity.CallClueInfo;
|
||||
import com.baiye.modules.telemarkting.entity.dto.DoubleCallReqDTO;
|
||||
import com.baiye.modules.telemarkting.entity.dto.RollCallBackDTO;
|
||||
import com.baiye.modules.telemarkting.httpRequest.RollCallReq;
|
||||
import com.baiye.modules.telemarkting.service.RollCallService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author wujingtao
|
||||
* @date 2022/02/10
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class RollCallServiceImpl implements RollCallService {
|
||||
@Resource
|
||||
private AllCallInfoRepository allCallInfoRepository;
|
||||
@Resource
|
||||
private CallClueRepository callClueRepository;
|
||||
@Resource
|
||||
private SourceClueClient sourceClueClient;
|
||||
@Resource
|
||||
private RollCallReq rollCallReq;
|
||||
|
||||
@Override
|
||||
public CommonResponse<Object> rollCallReq(DoubleCallReqDTO doubleCallReq) {
|
||||
String requestId = RandomUtil.randomString(10);
|
||||
doubleCallReq.setRequestId(requestId);
|
||||
// Clue body = sourceClueClient.queryDetails(Long.parseLong(doubleCallReq.getUserData())).getBody();
|
||||
// if (ObjectUtil.isNull(body) || StrUtil.isEmpty(body.getNid())) {
|
||||
// return CommonResponse.createByErrorMessage("未获取到号码");
|
||||
// }
|
||||
// doubleCallReq.setTelB(body.getNid());
|
||||
doubleCallReq.setTelB("13003658692");
|
||||
String sessionId = rollCallReq.startReq(doubleCallReq);
|
||||
log.info("=============================sessionId {}", sessionId);
|
||||
if (StrUtil.isNotBlank(sessionId)) {
|
||||
AllCallInfo allCallInfo = new AllCallInfo();
|
||||
allCallInfo.setSessionId(sessionId);
|
||||
allCallInfo.setRequestId(requestId);
|
||||
allCallInfo.setClueId(Long.parseLong(doubleCallReq.getUserData()));
|
||||
allCallInfo.setMemberId(doubleCallReq.getMemberId());
|
||||
allCallInfo.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
||||
allCallInfo.setType(DefaultNumberConstants.ONE_NUMBER);
|
||||
allCallInfo.setRecordFlag(DefaultNumberConstants.ZERO_NUMBER);
|
||||
|
||||
CallClueInfo clueInfo = new CallClueInfo();
|
||||
clueInfo.setClueId(Long.parseLong(doubleCallReq.getUserData()));
|
||||
clueInfo.setTeamId(doubleCallReq.getTeamId());
|
||||
clueInfo.setMemberId(doubleCallReq.getMemberId());
|
||||
clueInfo.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
||||
clueInfo.setTaskId(doubleCallReq.getTaskId());
|
||||
|
||||
allCallInfoRepository.save(allCallInfo);
|
||||
callClueRepository.save(clueInfo);
|
||||
} else {
|
||||
return CommonResponse.createByError();
|
||||
}
|
||||
return CommonResponse.createBySuccess(sessionId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void rollCallBack(RollCallBackDTO rollCallBackDTO) {
|
||||
String sessionId = rollCallBackDTO.getSessionid();
|
||||
|
||||
AllCallInfo allCallInfo = allCallInfoRepository.findBySessionId(sessionId);
|
||||
if (ObjectUtil.isNotEmpty(allCallInfo)) {
|
||||
if (StrUtil.isBlank(rollCallBackDTO.getDuration())) {
|
||||
//表示接通
|
||||
callClueRepository.updateByStatus(DefaultNumberConstants.TWO_NUMBER, allCallInfo.getClueId());
|
||||
|
||||
allCallInfo.setStatus(DefaultNumberConstants.TWO_NUMBER);
|
||||
allCallInfo.setDuration(Integer.valueOf(rollCallBackDTO.getDuration()));
|
||||
allCallInfo.setRecordFlag(DefaultNumberConstants.ONE_NUMBER);
|
||||
allCallInfo.setRecordFileDownloadUrl(rollCallBackDTO.getRecord_file_url());
|
||||
}
|
||||
|
||||
allCallInfoRepository.save(allCallInfo);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue