From e54eb5e0700859da485a19fb0d86a7d0464d0616 Mon Sep 17 00:00:00 2001 From: wujingtao Date: Tue, 15 Feb 2022 16:16:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=82=B9=E5=91=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/config/SpringSecurityConfig.java | 2 +- .../telemarkting/api/RollCallController.java | 2 +- .../telemarkting/httpRequest/RollCallReq.java | 49 ++++++++++--------- .../service/ExtensionNumberService.java | 4 +- .../impl/ExtensionNumberServiceImpl.java | 9 ++-- .../service/impl/RollCallServiceImpl.java | 6 +-- .../main/resources/config/application-dev.yml | 4 +- .../resources/config/application-prod.yml | 3 +- 8 files changed, 41 insertions(+), 38 deletions(-) diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/security/config/SpringSecurityConfig.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/security/config/SpringSecurityConfig.java index c2dbac0d..289ba500 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/security/config/SpringSecurityConfig.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/security/config/SpringSecurityConfig.java @@ -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() diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/RollCallController.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/RollCallController.java index 3a462d23..09da45f4 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/RollCallController.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/RollCallController.java @@ -44,12 +44,12 @@ public class RollCallController { @PostMapping("/roll/cdrUrl") @ApiOperation("点呼系统回调话单") public CommonResponse 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); diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/httpRequest/RollCallReq.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/httpRequest/RollCallReq.java index 0f1f874d..c08ed0af 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/httpRequest/RollCallReq.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/httpRequest/RollCallReq.java @@ -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 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(); } } diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/ExtensionNumberService.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/ExtensionNumberService.java index e3b9103a..d63c30ee 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/ExtensionNumberService.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/ExtensionNumberService.java @@ -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 assignExtensionNum(Long organizeId, Long memberId); } diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ExtensionNumberServiceImpl.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ExtensionNumberServiceImpl.java index c596b556..d5c9ed49 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ExtensionNumberServiceImpl.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ExtensionNumberServiceImpl.java @@ -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 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 getNumbers(Integer minNumber, Integer maxNumber) { diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/RollCallServiceImpl.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/RollCallServiceImpl.java index b7baf540..c8a24f3e 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/RollCallServiceImpl.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/RollCallServiceImpl.java @@ -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())) { diff --git a/manage/ad-platform-management/src/main/resources/config/application-dev.yml b/manage/ad-platform-management/src/main/resources/config/application-dev.yml index 4144fdab..12839ae3 100644 --- a/manage/ad-platform-management/src/main/resources/config/application-dev.yml +++ b/manage/ad-platform-management/src/main/resources/config/application-dev.yml @@ -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: # #建立连接超时时间 diff --git a/manage/ad-platform-management/src/main/resources/config/application-prod.yml b/manage/ad-platform-management/src/main/resources/config/application-prod.yml index 4d4037fa..63deedf6 100644 --- a/manage/ad-platform-management/src/main/resources/config/application-prod.yml +++ b/manage/ad-platform-management/src/main/resources/config/application-prod.yml @@ -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