Merge remote-tracking branch 'origin/master'

master
bynt 1 year ago
commit 73a26a2e41

@ -121,7 +121,7 @@ public class OrganizeServiceImpl implements OrganizeService {
// 替换组长-资源替换
ResponseEntity<Object> 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())) {

@ -27,13 +27,13 @@ public class ReportController {
private QueryReportService queryReportService;
@GetMapping("/report/all")
@ApiOperation("所有任务的统计信息(暂时放弃)")
@ApiOperation("所有任务的统计信息(放弃)")
public CommonResponse<Object> getReportByAll() {
return queryReportService.getReportByAll();
}
@PostMapping("/report/task")
@ApiOperation("按任务的统计信息")
@ApiOperation("按任务的统计信息(放弃)")
public CommonResponse<Object> 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);

@ -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<Object> 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<Object> queryNumber(ExtensionNumberCriteria extensionNumberCriteria, Pageable pageable) {
return new ResponseEntity<>(extensionNumberService.queryNumber(extensionNumberCriteria, pageable), HttpStatus.OK);
}
@GetMapping("/update/number")
@Inner(value = false)
public CommonResponse<Object> updateNumber(@RequestParam("oldNumber") Integer oldNumber, @RequestParam("newNumber") Integer newNumber) {
extensionNumberService.updateNumber(oldNumber, newNumber);
return CommonResponse.createBySuccess();
}
}

@ -16,6 +16,7 @@ import java.util.List;
@Repository
public interface ExtensionNumberRepository extends JpaRepository<ExtensionNumber, Long>, JpaSpecificationExecutor<ExtensionNumber> {
ExtensionNumber findByNumber(Integer number);
/**
* id
*

@ -32,6 +32,7 @@ public interface ExtensionUserRepository extends JpaRepository<ExtensionUser, Lo
@Modifying
@Query(value = "delete from tb_extension_user where member_id in ?1", nativeQuery = true)
int deleteByMemberId(List<Long> userIds);
/**
*
*
@ -41,6 +42,7 @@ public interface ExtensionUserRepository extends JpaRepository<ExtensionUser, Lo
@Modifying
@Query(value = "delete from tb_extension_user where number in ?1", nativeQuery = true)
int deleteByNumbers(List<Integer> numbers);
/**
* id
*
@ -53,7 +55,7 @@ public interface ExtensionUserRepository extends JpaRepository<ExtensionUser, Lo
@Modifying
@Query(value = "update ExtensionUser c set c.memberId =?2 where c.memberId = ?1")
void updateByNumber(Long userId, Long replaceUserId);
void updateByMember(Long userId, Long replaceUserId);
/**
*
@ -65,4 +67,9 @@ public interface ExtensionUserRepository extends JpaRepository<ExtensionUser, Lo
void deleteByCompanyId(Long companyId);
ExtensionUser findByMemberId(Long userId);
@Modifying
@Query(value = "update ExtensionUser c set c.number =?1 where c.number = ?2")
void updateByNumber(Integer newNumber, Integer oldNumber);
}

@ -1,5 +1,6 @@
package com.baiye.modules.telemarkting.entity;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.model.entity.BaseAllCallInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
@ -26,4 +27,16 @@ public class AllCallInfo extends BaseAllCallInfo {
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
public AllCallInfo init(String sessionId, String requestId, Long clueId, Integer clueType, Long memberId,Integer status,Integer type) {
this.setSessionId(sessionId);
this.setRequestId(requestId);
this.setClueId(clueId);
this.setClueType(clueType);
this.setMemberId(memberId);
this.setStatus(status);
this.setType(type);
return this;
}
}

@ -1,6 +1,7 @@
package com.baiye.modules.telemarkting.entity;
import cn.hutool.core.date.DatePattern;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.model.entity.BaseCallClueInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
@ -38,4 +39,14 @@ public class CallClueInfo extends BaseCallClueInfo implements Serializable {
@Transient
@ApiModelProperty(value = "通话总时长")
private Integer breatheTotalDuration;
public CallClueInfo init(Long clueId, Long teamId, Long memberId, Long taskId, Long companyId,Integer status) {
this.setClueId(clueId);
this.setTeamId(teamId);
this.setMemberId(memberId);
this.setStatus(status);
this.setTaskId(taskId);
this.setCompanyId(companyId);
return this;
}
}

@ -0,0 +1,20 @@
package com.baiye.modules.telemarkting.entity.dto;
import com.baiye.annotation.Query;
import lombok.Data;
/**
* @author wjt
* @date 2023/4/6
*/
@Data
public class ExtensionNumberCriteria {
@Query
private Long companyId;
@Query
private Integer number;
@Query
private Integer status;
}

@ -102,11 +102,11 @@ public class RollCallReq {
jsonObject.putOpt("bsname", "aibot");
jsonObject.putOpt("body", json);
HttpResponse httpResponse = HttpRequest.post(stopUrl).body(JSONUtil.toJsonPrettyStr(jsonObject)).execute();
log.info("请求挂断,session={},{}", telephoneCallStopDTO.getSessionid(), httpResponse.body());
if (httpResponse.isOk()) {
return Boolean.TRUE;
} else {
count++;
log.error("请求失败,response==={}", httpResponse.body());
}
}
return Boolean.FALSE;

@ -4,6 +4,10 @@ package com.baiye.modules.telemarkting.service;
import com.baiye.http.CommonResponse;
import com.baiye.modules.telemarkting.entity.ExtensionDisplay;
import com.baiye.modules.telemarkting.entity.ExtensionNumber;
import com.baiye.modules.telemarkting.entity.dto.ExtensionNumberCriteria;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
/**
@ -18,6 +22,10 @@ public interface ExtensionNumberService {
String sip(String number, String name);
Page<ExtensionNumber> queryNumber(ExtensionNumberCriteria extensionNumberCriteria, Pageable pageable);
void updateNumber(Integer oldNumber, Integer newNumber);
/**
*
*

@ -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<ExtensionNumber> 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<Object> 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);
}
}

@ -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);

Loading…
Cancel
Save