diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/OrganizeServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/OrganizeServiceImpl.java index b8b378b2..e811e46c 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/OrganizeServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/OrganizeServiceImpl.java @@ -121,7 +121,7 @@ public class OrganizeServiceImpl implements OrganizeService { // 替换组长-资源替换 ResponseEntity response = sourceClueClient.updateMember(organizeUser.getUserId(), organize.getUserId()); if (response.getStatusCode().value() != 200) throw new BadRequestException("组长修改失败"); - extensionUserRepository.updateByNumber(organizeUser.getUserId(), organize.getUserId()); + extensionUserRepository.updateByMember(organizeUser.getUserId(), organize.getUserId()); } //添加(删除)分机号 if (organize.getCallMode() != null && !organize.getCallMode().equals(updateOrganize.getCallMode())) { diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/report/api/ReportController.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/report/api/ReportController.java index 89006cf2..0d6c1364 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/report/api/ReportController.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/report/api/ReportController.java @@ -27,13 +27,13 @@ public class ReportController { private QueryReportService queryReportService; @GetMapping("/report/all") - @ApiOperation("所有任务的统计信息(暂时放弃)") + @ApiOperation("所有任务的统计信息(放弃)") public CommonResponse getReportByAll() { return queryReportService.getReportByAll(); } @PostMapping("/report/task") - @ApiOperation("按任务的统计信息") + @ApiOperation("按任务的统计信息(放弃)") public CommonResponse getReportByTask(@RequestBody StatisticalReportDTO s) { s.setCompanyId(SecurityUtils.getCompanyId()); return queryReportService.getReportByTask(s); @@ -41,7 +41,7 @@ public class ReportController { @PostMapping("/download/task") - @ApiOperation("导出任务统计信息") + @ApiOperation("导出任务统计信息(放弃)") public void downloadTaskReport(HttpServletResponse response, @RequestBody StatisticalReportDTO s) { s.setCompanyId(SecurityUtils.getCompanyId()); queryReportService.downloadTaskReport(response, s); diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/ExtensionNumberController.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/ExtensionNumberController.java index 57c5239a..f300a5da 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/ExtensionNumberController.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/api/ExtensionNumberController.java @@ -2,14 +2,21 @@ package com.baiye.modules.telemarkting.api; import com.baiye.annotation.Inner; import com.baiye.http.CommonResponse; +import com.baiye.modules.telemarkting.entity.ExtensionNumber; +import com.baiye.modules.telemarkting.entity.dto.ExtensionNumberCriteria; import com.baiye.modules.telemarkting.service.ExtensionNumberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.Map; + /** * @author wujingtao * @date 2022/02/14 @@ -55,9 +62,20 @@ public class ExtensionNumberController { @GetMapping("/sip") @Inner(value = false) public CommonResponse sip(@RequestParam("number") String number, - @RequestParam("name") String name) - - { + @RequestParam("name") String name) { return CommonResponse.createBySuccess(extensionNumberService.sip(number, name)); } + + @GetMapping("/query/number") + @Inner(value = false) + public ResponseEntity queryNumber(ExtensionNumberCriteria extensionNumberCriteria, Pageable pageable) { + return new ResponseEntity<>(extensionNumberService.queryNumber(extensionNumberCriteria, pageable), HttpStatus.OK); + } + + @GetMapping("/update/number") + @Inner(value = false) + public CommonResponse updateNumber(@RequestParam("oldNumber") Integer oldNumber, @RequestParam("newNumber") Integer newNumber) { + extensionNumberService.updateNumber(oldNumber, newNumber); + return CommonResponse.createBySuccess(); + } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ExtensionNumberRepository.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ExtensionNumberRepository.java index 83bc5236..b017fca6 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ExtensionNumberRepository.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ExtensionNumberRepository.java @@ -16,6 +16,7 @@ import java.util.List; @Repository public interface ExtensionNumberRepository extends JpaRepository, JpaSpecificationExecutor { + ExtensionNumber findByNumber(Integer number); /** * 根据状态和公司id查询分机号 * diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ExtensionUserRepository.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ExtensionUserRepository.java index bb67ad4a..e956cf1b 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ExtensionUserRepository.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/dao/ExtensionUserRepository.java @@ -32,6 +32,7 @@ public interface ExtensionUserRepository extends JpaRepository userIds); + /** * 用户分机号删除用户和分机号关联 * @@ -41,6 +42,7 @@ public interface ExtensionUserRepository extends JpaRepository numbers); + /** * 用户id删除用户和分机号关联 * @@ -53,7 +55,7 @@ public interface ExtensionUserRepository extends JpaRepository queryNumber(ExtensionNumberCriteria extensionNumberCriteria, Pageable pageable); + + void updateNumber(Integer oldNumber, Integer newNumber); + /** * 分配分机号 * diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ExtensionNumberServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ExtensionNumberServiceImpl.java index e758393a..fb1b8daf 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ExtensionNumberServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/ExtensionNumberServiceImpl.java @@ -1,9 +1,10 @@ package com.baiye.modules.telemarkting.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.SerializeUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import com.baiye.constant.DefaultNumberConstants; @@ -21,10 +22,14 @@ import com.baiye.modules.telemarkting.dao.ExtensionUserRepository; import com.baiye.modules.telemarkting.entity.ExtensionDisplay; import com.baiye.modules.telemarkting.entity.ExtensionNumber; import com.baiye.modules.telemarkting.entity.ExtensionUser; +import com.baiye.modules.telemarkting.entity.dto.ExtensionNumberCriteria; import com.baiye.modules.telemarkting.httpRequest.NumberSipReq; import com.baiye.modules.telemarkting.service.ExtensionNumberService; +import com.baiye.util.QueryHelp; import com.baiye.util.SecurityUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -58,9 +63,33 @@ public class ExtensionNumberServiceImpl implements ExtensionNumberService { private CompanyService companyService; @Override - public String sip(String number,String name) { - String sip = numberSipReq.req(number,name); - return sip; + public String sip(String number, String name) { + return numberSipReq.req(number, name); + } + + @Override + public Page queryNumber(ExtensionNumberCriteria extensionNumberCriteria, Pageable pageable) { + return extensionNumberRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, extensionNumberCriteria, criteriaBuilder), pageable); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateNumber(Integer oldNumber, Integer newNumber) { + ExtensionNumber extensionNumber = extensionNumberRepository.findByNumber(oldNumber); + if (extensionNumber.getStatus() != 0) { + //修改绑定关系 + extensionUserRepository.updateByNumber(newNumber, oldNumber); + } + //获取密码 + Company company = companyService.findById(extensionNumber.getCompanyId()); + String sip = numberSipReq.req(String.valueOf(newNumber), company.getCompanyName()); + ExtensionNumber extensionNumberNew = new ExtensionNumber(); + BeanUtil.copyProperties(extensionNumber, extensionNumberNew); + extensionNumberNew.setNumber(newNumber); + extensionNumberNew.setCreateTime(DateUtil.date()); + extensionNumberNew.setSip(sip); + extensionNumberRepository.delete(extensionNumber); + extensionNumberRepository.save(extensionNumberNew); } @Override @@ -105,11 +134,18 @@ public class ExtensionNumberServiceImpl implements ExtensionNumberService { for (List objects : read) { String number = String.valueOf(objects.get(0)); - ExtensionNumber extensionNumber = new ExtensionNumber(); + //去重 + ExtensionNumber extensionNumber = extensionNumberRepository.findByNumber(Integer.valueOf(number)); + + if (ObjectUtil.isNotEmpty(extensionNumber) && extensionNumber.getNumber() != null) { + continue; + } else { + extensionNumber = new ExtensionNumber(); + } extensionNumber.setNumber(Integer.valueOf(number)); extensionNumber.setCompanyId(companyId); - String sip = numberSipReq.req(number,company.getCompanyName()); + String sip = numberSipReq.req(number, company.getCompanyName()); extensionNumber.setSip(sip); list.add(extensionNumber); numbers.add(Integer.valueOf(number)); @@ -208,7 +244,7 @@ public class ExtensionNumberServiceImpl implements ExtensionNumberService { if (i > 0) { extensionNumberRepository.updateExtensionNumber(0, replaceUserId); } - extensionUserRepository.updateByNumber(userId, replaceUserId); + extensionUserRepository.updateByMember(userId, replaceUserId); } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/TelephoneCallServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/TelephoneCallServiceImpl.java index 730e7a70..fabb2052 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/TelephoneCallServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/service/impl/TelephoneCallServiceImpl.java @@ -81,26 +81,10 @@ public class TelephoneCallServiceImpl implements TelephoneCallService { } doubleCallReq.setTelB(body.getNid()); String sessionId = this.doubleCallReq.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.setClueType(doubleCallReq.getClueType()); - allCallInfo.setMemberId(doubleCallReq.getMemberId()); - allCallInfo.setStatus(DefaultNumberConstants.ONE_NUMBER); - allCallInfo.setType(DefaultNumberConstants.ONE_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()); - clueInfo.setCompanyId(companyId); + AllCallInfo allCallInfo = new AllCallInfo().init(sessionId, requestId, Long.parseLong(doubleCallReq.getUserData()), doubleCallReq.getClueType(), doubleCallReq.getMemberId(), DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.ONE_NUMBER); allCallInfoRepository.save(allCallInfo); + CallClueInfo clueInfo = new CallClueInfo().init(Long.parseLong(doubleCallReq.getUserData()), doubleCallReq.getTeamId(), doubleCallReq.getMemberId(), doubleCallReq.getTaskId(), companyId, DefaultNumberConstants.ONE_NUMBER); callClueRepository.save(clueInfo); } else { return CommonResponse.createByError(); @@ -172,23 +156,9 @@ public class TelephoneCallServiceImpl implements TelephoneCallService { doubleCallReq.setTelB(nid); String sessionId = axbRequest.call(doubleCallReq); if (CharSequenceUtil.isNotBlank(sessionId)) { - AllCallInfo allCallInfo = new AllCallInfo(); - allCallInfo.setSessionId(sessionId); - allCallInfo.setRequestId(randomString); - allCallInfo.setClueId(originalNumber); - allCallInfo.setClueType(doubleCallReq.getClueType()); - allCallInfo.setMemberId(doubleCallReq.getMemberId()); - allCallInfo.setStatus(DefaultNumberConstants.ONE_NUMBER); - allCallInfo.setType(DefaultNumberConstants.THREE_NUMBER); - - CallClueInfo clueInfo = new CallClueInfo(); - clueInfo.setClueId(originalNumber); - clueInfo.setTeamId(doubleCallReq.getTeamId()); - clueInfo.setMemberId(doubleCallReq.getMemberId()); - clueInfo.setStatus(DefaultNumberConstants.ONE_NUMBER); - clueInfo.setTaskId(doubleCallReq.getTaskId()); - clueInfo.setCompanyId(companyId); + AllCallInfo allCallInfo = new AllCallInfo().init(sessionId, randomString, originalNumber, doubleCallReq.getClueType(), doubleCallReq.getMemberId(), DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.THREE_NUMBER); allCallInfoRepository.save(allCallInfo); + CallClueInfo clueInfo = new CallClueInfo().init(originalNumber, doubleCallReq.getTeamId(), doubleCallReq.getMemberId(), doubleCallReq.getTaskId(), companyId, DefaultNumberConstants.ONE_NUMBER); callClueRepository.save(clueInfo); TelephoneCallStopDTO telephoneCallStopDTO = new TelephoneCallStopDTO(); telephoneCallStopDTO.setSessionid(sessionId); @@ -260,27 +230,12 @@ public class TelephoneCallServiceImpl implements TelephoneCallService { //请求呼叫 String reqId = rollCallReq.startReq(telephoneCallReqDTO); - //保存呼叫记录 - 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()); - clueInfo.setCompanyId(companyId); - callClueRepository.save(clueInfo); - //保存呼叫详情 - AllCallInfo allCallInfo = new AllCallInfo(); - allCallInfo.setSessionId(requestId); - allCallInfo.setRequestId(requestId); - allCallInfo.setClueId(Long.parseLong(telephoneCallReqDTO.getUserData())); - allCallInfo.setClueType(telephoneCallReqDTO.getClueType()); - allCallInfo.setMemberId(telephoneCallReqDTO.getMemberId()); - allCallInfo.setStatus(DefaultNumberConstants.ONE_NUMBER); - allCallInfo.setType(DefaultNumberConstants.TWO_NUMBER); - allCallInfo.setRecordFlag(DefaultNumberConstants.ZERO_NUMBER); + AllCallInfo allCallInfo = new AllCallInfo().init(requestId, requestId, Long.parseLong(telephoneCallReqDTO.getUserData()), telephoneCallReqDTO.getClueType(), telephoneCallReqDTO.getMemberId(), DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.TWO_NUMBER); allCallInfoRepository.save(allCallInfo); + CallClueInfo clueInfo = new CallClueInfo().init(Long.parseLong(telephoneCallReqDTO.getUserData()), telephoneCallReqDTO.getTeamId(), telephoneCallReqDTO.getMemberId(), telephoneCallReqDTO.getTaskId(), companyId, DefaultNumberConstants.ONE_NUMBER); + callClueRepository.save(clueInfo); + TelephoneCallStopDTO telephoneCallStopDTO = new TelephoneCallStopDTO(); telephoneCallStopDTO.setSessionid(reqId); telephoneCallStopDTO.setCallId(requestId);