合并点呼api
parent
7cb3378a7d
commit
b4c02351f2
@ -1,27 +0,0 @@
|
||||
package com.baiye.modules.telemarkting.service;
|
||||
|
||||
import com.baiye.http.CommonResponse;
|
||||
import com.baiye.modules.telemarkting.entity.dto.TelephoneCallReqDTO;
|
||||
import com.baiye.modules.telemarkting.entity.dto.RollCallBackDTO;
|
||||
|
||||
/**
|
||||
* @author wujingtao
|
||||
* @date 2022/02/10
|
||||
* 点呼
|
||||
*/
|
||||
public interface RollCallService {
|
||||
/**
|
||||
* 点呼请求
|
||||
*
|
||||
* @param telephoneCallReqDTO
|
||||
* @return
|
||||
*/
|
||||
CommonResponse<Object> rollCallReq(TelephoneCallReqDTO telephoneCallReqDTO);
|
||||
|
||||
/**
|
||||
* 电呼回调
|
||||
*
|
||||
* @param rollCallBackDTO
|
||||
*/
|
||||
void rollCallBack(RollCallBackDTO rollCallBackDTO);
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
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.dao.ExtensionNumberRepository;
|
||||
import com.baiye.modules.telemarkting.dao.ExtensionUserRepository;
|
||||
import com.baiye.modules.telemarkting.entity.AllCallInfo;
|
||||
import com.baiye.modules.telemarkting.entity.CallClueInfo;
|
||||
import com.baiye.modules.telemarkting.entity.ExtensionNumber;
|
||||
import com.baiye.modules.telemarkting.entity.dto.TelephoneCallReqDTO;
|
||||
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;
|
||||
@Resource
|
||||
private ExtensionUserRepository extensionUserRepository;
|
||||
@Resource
|
||||
private ExtensionNumberRepository extensionNumberRepository;
|
||||
|
||||
@Override
|
||||
public CommonResponse<Object> rollCallReq(TelephoneCallReqDTO telephoneCallReqDTO) {
|
||||
String requestId = RandomUtil.randomString(10);
|
||||
telephoneCallReqDTO.setRequestId(requestId);
|
||||
//获取分机号
|
||||
ExtensionNumber extensionNumber = extensionNumberRepository.selectByMemberId(telephoneCallReqDTO.getMemberId());
|
||||
if (extensionNumber == null) {
|
||||
return CommonResponse.createByErrorMessage("未配置分机号");
|
||||
}
|
||||
telephoneCallReqDTO.setTelA(String.valueOf(extensionNumber.getNumber()));
|
||||
telephoneCallReqDTO.setDisplay(extensionNumber.getDisplay());
|
||||
//获取线索号
|
||||
Clue body = sourceClueClient.queryDetails(Long.parseLong(telephoneCallReqDTO.getUserData())).getBody();
|
||||
if (ObjectUtil.isNull(body) || StrUtil.isEmpty(body.getNid())) {
|
||||
return CommonResponse.createByErrorMessage("未获取到号码");
|
||||
}
|
||||
telephoneCallReqDTO.setTelB(body.getNid());
|
||||
String reqId = rollCallReq.startReq(telephoneCallReqDTO);
|
||||
log.info("=============================reqId {}", reqId);
|
||||
if (StrUtil.isNotBlank(reqId)) {
|
||||
if (StrUtil.isNotBlank(reqId)) {
|
||||
AllCallInfo allCallInfo = new AllCallInfo();
|
||||
allCallInfo.setRequestId(requestId);
|
||||
allCallInfo.setClueId(Long.parseLong(telephoneCallReqDTO.getUserData()));
|
||||
allCallInfo.setMemberId(telephoneCallReqDTO.getMemberId());
|
||||
allCallInfo.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
||||
allCallInfo.setType(DefaultNumberConstants.TWO_NUMBER);
|
||||
allCallInfo.setRecordFlag(DefaultNumberConstants.ZERO_NUMBER);
|
||||
|
||||
CallClueInfo clueInfo = new CallClueInfo();
|
||||
clueInfo.setClueId(Long.parseLong(telephoneCallReqDTO.getUserData()));
|
||||
clueInfo.setTeamId(telephoneCallReqDTO.getTeamId());
|
||||
clueInfo.setMemberId(telephoneCallReqDTO.getMemberId());
|
||||
clueInfo.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
||||
clueInfo.setTaskId(telephoneCallReqDTO.getTaskId());
|
||||
allCallInfoRepository.save(allCallInfo);
|
||||
callClueRepository.save(clueInfo);
|
||||
} else {
|
||||
return CommonResponse.createByError();
|
||||
}
|
||||
}
|
||||
return CommonResponse.createBySuccess(requestId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void rollCallBack(RollCallBackDTO rollCallBackDTO) {
|
||||
String reqId = rollCallBackDTO.getReqid();
|
||||
AllCallInfo allCallInfo = allCallInfoRepository.findByRequestId(reqId);
|
||||
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