修改点呼

master
wujingtao 3 years ago
parent fff75c0481
commit e54eb5e070

@ -143,7 +143,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
.antMatchers( "/api/organize/queryAll").permitAll()
.antMatchers( "/api/back/cdrUrl").permitAll()
.antMatchers( "/api/back/status").permitAll()
.antMatchers( "/api/call/record").permitAll()
.antMatchers( "/api/roll/cdrUrl").permitAll()
// 自定义匿名访问所有url放行允许匿名和带Token访问细腻化到每个 Request 类型
// GET
.antMatchers(HttpMethod.GET, anonymousUrls.get(RequestMethodEnum.GET.getType()).toArray(new String[0])).permitAll()

@ -44,12 +44,12 @@ public class RollCallController {
@PostMapping("/roll/cdrUrl")
@ApiOperation("点呼系统回调话单")
public CommonResponse<String> doubleCallBack(@RequestBody String json) {
log.info("点呼回调:{}", json);
try {
RollCallBackDTO rollCallBackDTO = JSONUtil.toBean(json, RollCallBackDTO.class);
if (ObjectUtil.isEmpty(rollCallBackDTO) || StrUtil.isEmpty(rollCallBackDTO.getSessionid())) {
return CommonResponse.createByErrorMessage("参数为空");
}
log.info("=======点呼回调话单: {}", rollCallBackDTO);
rollCallService.rollCallBack(rollCallBackDTO);
} catch (Exception e) {
log.error("点呼回调话单错误 参数 {}", json);

@ -1,11 +1,11 @@
package com.baiye.modules.telemarkting.httpRequest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.exception.BadRequestException;
@ -18,6 +18,8 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* @author wujingtao
@ -33,8 +35,6 @@ public class RollCallReq {
private String cdrUrl;
@Value("${roll.call.appId}")
private String appId;
@Value("${roll.call.token}")
private String token;
@Value("${roll.call.accountSid}")
private String accountSid;
@ -46,36 +46,39 @@ public class RollCallReq {
private String reqTask(TelephoneCallReqDTO doubleCallReq) {
RollCallSystemDTO rollCallSystemDTO = new RollCallSystemDTO();
String date = DateUtil.format(DateUtil.date(), "yyyyMMddHHssmm");
// String sig = SecureUtil.md5(accountSid + token + date).toUpperCase();
//设置header
String authorization = Base64.encode(accountSid + ":" + date);
// rollCallSystemDTO.setSig(sig);
rollCallSystemDTO.setAppid(appId);
rollCallSystemDTO.setReq_id(doubleCallReq.getRequestId());
rollCallSystemDTO.setCaller(doubleCallReq.getTelA());
rollCallSystemDTO.setCallee(doubleCallReq.getTelB());
rollCallSystemDTO.setIs_record(String.valueOf(DefaultNumberConstants.ONE_NUMBER));
rollCallSystemDTO.setCdr_url(cdrUrl);
log.info("请求对象:{}", JSONUtil.toJsonPrettyStr(rollCallSystemDTO));
HttpResponse httpResponse = sendCallReq(JSONUtil.toJsonPrettyStr(rollCallSystemDTO), reqUrl, authorization);
if (httpResponse.isOk()) {
RollCallResponse doubleCallResponse = JSONUtil
.toBean(httpResponse.body(), RollCallResponse.class);
if (String.valueOf
(DefaultNumberConstants.ZERO_NUMBER)
.equals(doubleCallResponse.getResult())) {
return doubleCallResponse.getReqid();
}
throw new BadRequestException
(StringUtils.isNotBlank(doubleCallResponse.getReason()) ?
doubleCallResponse.getReason()
: ResponseCode.CALL_ERROR.getDesc());
log.info("请求对象:{}", BeanUtil.beanToMap(rollCallSystemDTO));
String httpResponse = sendCallReq(BeanUtil.beanToMap(rollCallSystemDTO), reqUrl, authorization);
log.info("返回值为 {}", httpResponse);
RollCallResponse doubleCallResponse = JSONUtil
.toBean(httpResponse, RollCallResponse.class);
if (String.valueOf
(DefaultNumberConstants.ZERO_NUMBER)
.equals(doubleCallResponse.getResult())) {
return doubleCallResponse.getReqid();
}
throw new BadRequestException(ResponseCode.CALL_ERROR.getDesc());
throw new BadRequestException
(StringUtils.isNotBlank(doubleCallResponse.getReason()) ?
doubleCallResponse.getReason()
: ResponseCode.CALL_ERROR.getDesc());
}
private HttpResponse sendCallReq(String json, String url, String authorization) {
return HttpRequest.post(url).header("Authorization", authorization).body(json).execute();
private String sendCallReq(Map<String, Object> json, String url, String authorization) {
return HttpRequest.post(url).
header(Header.AUTHORIZATION, authorization).
header(Header.CONTENT_TYPE, "application/x-www-form-urlencoded").
form(json).
execute().
body();
}
}

@ -1,6 +1,8 @@
package com.baiye.modules.telemarkting.service;
import com.baiye.http.CommonResponse;
/**
* @author wujingtao
* @date 2022/02/14
@ -8,5 +10,5 @@ package com.baiye.modules.telemarkting.service;
public interface ExtensionNumberService {
void addNumbers(Integer minNumber, Integer maxNumber);
void assignExtensionNum(Long organizeId, Long memberId);
CommonResponse<Object> assignExtensionNum(Long organizeId, Long memberId);
}

@ -1,6 +1,7 @@
package com.baiye.modules.telemarkting.service.impl;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.http.CommonResponse;
import com.baiye.modules.system.domain.Organize;
import com.baiye.modules.system.repository.OrganizeRepository;
import com.baiye.modules.system.service.OrganizeService;
@ -41,15 +42,15 @@ public class ExtensionNumberServiceImpl implements ExtensionNumberService {
@Override
@Transactional(rollbackFor = Exception.class)
public void assignExtensionNum(Long organizeId, Long memberId) {
public CommonResponse<Object> assignExtensionNum(Long organizeId, Long memberId) {
//查询组
Organize organize = organizeRepository.findById(organizeId).orElseGet(Organize::new);
if (organize != null && organize.getCallMode() == DefaultNumberConstants.ONE_NUMBER) {
if (organize.getCallMode() == DefaultNumberConstants.ONE_NUMBER) {
Integer numberByMemberId = extensionUserRepository.findNumberByMemberId(memberId);
if (numberByMemberId != null) {
log.info("用户 {},已经分配分机号", memberId);
return;
return CommonResponse.createByErrorMessage("用户已经分配分机号,用户id" + memberId);
}
//查一个分机号
Integer idByStatus = extensionNumberRepository.findIdByStatus(DefaultNumberConstants.ZERO_NUMBER);
@ -62,8 +63,10 @@ public class ExtensionNumberServiceImpl implements ExtensionNumberService {
extensionNumberRepository.updateStatusById(DefaultNumberConstants.ONE_NUMBER, idByStatus);
} catch (Exception e) {
log.error("分机号分配失败 memberId{}", memberId);
return CommonResponse.createByErrorMessage("分机号分配失败,用户id为" + memberId);
}
}
return CommonResponse.createBySuccess();
}
private List<ExtensionNumber> getNumbers(Integer minNumber, Integer maxNumber) {

@ -45,8 +45,7 @@ public class RollCallServiceImpl implements RollCallService {
String requestId = RandomUtil.randomString(10);
telephoneCallReqDTO.setRequestId(requestId);
//获取分机号
// Integer numberByMemberId = extensionUserRepository.findNumberByMemberId(telephoneCallReqDTO.getMemberId());
String numberByMemberId = "458000-458100";
Integer numberByMemberId = extensionUserRepository.findNumberByMemberId(telephoneCallReqDTO.getMemberId());
if (numberByMemberId == null) {
return CommonResponse.createByErrorMessage("未配置分机号");
}
@ -66,7 +65,7 @@ public class RollCallServiceImpl implements RollCallService {
allCallInfo.setClueId(Long.parseLong(telephoneCallReqDTO.getUserData()));
allCallInfo.setMemberId(telephoneCallReqDTO.getMemberId());
allCallInfo.setStatus(DefaultNumberConstants.ONE_NUMBER);
allCallInfo.setType(DefaultNumberConstants.ONE_NUMBER);
allCallInfo.setType(DefaultNumberConstants.TWO_NUMBER);
allCallInfo.setRecordFlag(DefaultNumberConstants.ZERO_NUMBER);
CallClueInfo clueInfo = new CallClueInfo();
@ -88,7 +87,6 @@ public class RollCallServiceImpl implements RollCallService {
@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())) {

@ -130,14 +130,12 @@ axb:
roll:
call:
reqUrl: http://api.hzdaba.cn/callback/Accounts/dbby_hangzhoubaiyehl/Calls/ClickCall
reqUrl: http://api.hzdaba.cn/v3/Accounts/dbby_hangzhoubaiyehl/Calls/ClickCall
accountSid: dbby_hangzhoubaiyehl
appId: app1
cdrUrl: http://118.178.137.129:8866/api/roll/cdrUrl
#cdrUrl: https://baiyee.vip/api/roll/cdrUrl
#cdrUrl: http://localhost:8866/api/roll/cdrUrl
token: 44574ded6fdb6584dbc6963033988b5
#ribbon:
# #建立连接超时时间

@ -138,8 +138,7 @@ axb:
roll:
call:
reqUrl: http://api.hzdaba.cn/callback/Accounts/dbby_hangzhoubaiyehl/Calls/ClickCall
reqUrl: http://api.hzdaba.cn/v3/Accounts/dbby_hangzhoubaiyehl/Calls/ClickCall
accountSid: dbby_hangzhoubaiyehl
appId: app1
cdrUrl: https://baiyee.vip/api/roll/cdrUrl
token: 44574ded6fdb6584dbc6963033988b5

Loading…
Cancel
Save