预测试呼叫

master
wjt 10 months ago
parent ac4e79b47c
commit 62603b6783

@ -18,9 +18,6 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/** /**
* @author wjt * @author wjt
@ -29,7 +26,7 @@ import java.util.List;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/api") @RequestMapping("/api")
@Api(tags = " 预测试外呼 对接大坝") @Api(tags = " 预测试外呼")
@RequiredArgsConstructor @RequiredArgsConstructor
public class PreTestController { public class PreTestController {
@ -75,14 +72,10 @@ public class PreTestController {
return CommonResponse.createBySuccess(preTestService.accountQuery()); return CommonResponse.createBySuccess(preTestService.accountQuery());
} }
@Inner @Inner
@PostMapping("/add/source") @PostMapping("/add/source")
@ApiOperation("预测试添加资源") @ApiOperation("预测试添加资源")
public CommonResponse<Object> addSource(@RequestBody AddSourceDTO source) { public CommonResponse<Object> addSource(@RequestBody AddSourceDTO source) {
return CommonResponse.createBySuccess(preTestService.sendDBData(source)); return CommonResponse.createBySuccess(preTestService.sendDBData(source));
} }
} }

@ -1,5 +1,7 @@
package com.baiye.modules.telemarkting.entity; package com.baiye.modules.telemarkting.entity;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -9,6 +11,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*; import javax.persistence.*;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author wjt * @author wjt
@ -41,6 +44,7 @@ public class PreTestAct implements Serializable {
@Column(name = "task_id") @Column(name = "task_id")
@ApiModelProperty(value = "任务id") @ApiModelProperty(value = "任务id")
@JsonSerialize(using = ToStringSerializer.class)
private Long taskId; private Long taskId;
@Column(name = "execute_total_num") @Column(name = "execute_total_num")
@ -64,6 +68,10 @@ public class PreTestAct implements Serializable {
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private Date createTime; private Date createTime;
@Transient
private List<String> tagStr;
@Transient
private Boolean isDmpDelivery;
public PreTestAct addDefaultPreTestAct(Long userId, String actName, String actId, Long taskId) { public PreTestAct addDefaultPreTestAct(Long userId, String actName, String actId, Long taskId) {
this.setUserId(userId); this.setUserId(userId);

@ -46,19 +46,6 @@ public class CallImportDTO {
/** /**
* 线 (:++) * 线 (:++)
*/ */
private List<Variable> variableList; private String variable;
}
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public static class Variable {
private String field;
private String value;
} }
} }

@ -24,5 +24,6 @@ public class PreTestActDTO {
private Long taskId; private Long taskId;
@NotNull(groups = {UpdateGroup.class}) @NotNull(groups = {UpdateGroup.class})
private List<String> tagStr; private List<String> tagStr;
private Boolean isDmpDelivery;
private Boolean isDmpDelivery = Boolean.TRUE;
} }

@ -25,13 +25,14 @@ public class PreTestReq {
/** /**
* *
*/ */
public void sendDaBa(CallImportDTO callImportDTO) { public Boolean sendDaBa(CallImportDTO callImportDTO) {
String body = sendCallReq(sendUrl, JSONUtil.toJsonStr(callImportDTO)); String body = sendCallReq(sendUrl, JSONUtil.toJsonStr(callImportDTO));
PreTestResponse response = JSONUtil.toBean(body, PreTestResponse.class); PreTestResponse response = JSONUtil.toBean(body, PreTestResponse.class);
if (!response.getResult()) { if (!response.getResult()) {
log.info("导入失败 参数{}, 返回结果{}", JSONUtil.toJsonStr(callImportDTO), JSONUtil.toJsonStr(response)); log.info("导入失败 参数{}, 返回结果{}", JSONUtil.toJsonStr(callImportDTO), JSONUtil.toJsonStr(response));
throw new BadRequestException("导入失败 " + response.getMsg()); return Boolean.FALSE;
} }
return Boolean.TRUE;
} }
/** /**

@ -44,6 +44,7 @@ public interface PreTestService {
/** /**
* *
*
* @param source * @param source
* @return * @return
*/ */

@ -4,6 +4,7 @@ import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baiye.exception.BadRequestException; import com.baiye.exception.BadRequestException;
@ -26,7 +27,6 @@ import com.baiye.util.PageUtil;
import com.baiye.util.QueryHelp; import com.baiye.util.QueryHelp;
import com.baiye.util.SecurityUtils; import com.baiye.util.SecurityUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@ -37,7 +37,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -63,7 +62,7 @@ public class PreTestServiceImpl implements PreTestService {
//新建任务 //新建任务
long taskId = IdUtil.getSnowflake(9, 9).nextId(); long taskId = IdUtil.getSnowflake(9, 9).nextId();
long userId = SecurityUtils.getCurrentUserId(); long userId = SecurityUtils.getCurrentUserId();
Task task = new Task().createActTask(taskId, userId, preTestActDTO.getActName(), 8, true); Task task = new Task().createActTask(taskId, userId, preTestActDTO.getActName(), 8, preTestActDTO.getIsDmpDelivery());
//检查tag值 //检查tag值
if (CollUtil.isNotEmpty(preTestActDTO.getTagStr())) { if (CollUtil.isNotEmpty(preTestActDTO.getTagStr())) {
createTag(taskId, userId, preTestActDTO.getTagStr()); createTag(taskId, userId, preTestActDTO.getTagStr());
@ -71,6 +70,7 @@ public class PreTestServiceImpl implements PreTestService {
//发送任务 //发送任务
List<String> collect = preTestActDTO.getTagStr().stream().map(String::trim).collect(Collectors.toList()); List<String> collect = preTestActDTO.getTagStr().stream().map(String::trim).collect(Collectors.toList());
adBackRequestApi.sendTag(taskId, userId, collect); adBackRequestApi.sendTag(taskId, userId, collect);
//新建活动 //新建活动
PreTestAct preTestAct = new PreTestAct().addDefaultPreTestAct(userId, preTestActDTO.getActName(), preTestActDTO.getActId(), taskId); PreTestAct preTestAct = new PreTestAct().addDefaultPreTestAct(userId, preTestActDTO.getActName(), preTestActDTO.getActId(), taskId);
taskRepository.save(task); taskRepository.save(task);
@ -82,6 +82,16 @@ public class PreTestServiceImpl implements PreTestService {
preTestActQueryCriteria.setUserId(SecurityUtils.getCurrentUserId()); preTestActQueryCriteria.setUserId(SecurityUtils.getCurrentUserId());
PageRequest pageRequest = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by(Sort.Direction.DESC, "createTime")); PageRequest pageRequest = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by(Sort.Direction.DESC, "createTime"));
Page<PreTestAct> all = preTestActRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, preTestActQueryCriteria, criteriaBuilder), pageRequest); Page<PreTestAct> all = preTestActRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, preTestActQueryCriteria, criteriaBuilder), pageRequest);
if (CollUtil.isNotEmpty(all)) {
for (PreTestAct preTestAct : all) {
TaskTag taskTag = taskTagRepository.findTaskTagByTaskId(preTestAct.getTaskId());
if (ObjectUtil.isNotEmpty(taskTag)) {
preTestAct.setTagStr(taskTag.getTag());
}
Task task = taskRepository.findById(preTestAct.getTaskId()).orElseGet(Task::new);
preTestAct.setIsDmpDelivery(task.getIsDmpDelivery());
}
}
return PageUtil.toPage(all); return PageUtil.toPage(all);
} }
@ -161,35 +171,37 @@ public class PreTestServiceImpl implements PreTestService {
Long taskId = source.getTaskId(); Long taskId = source.getTaskId();
Map<Long, String> clueMap = source.getClueMap(); Map<Long, String> clueMap = source.getClueMap();
PreTestAccount preTestAccount = preTestAccountRepository.findById(userId).orElseGet(PreTestAccount::new); PreTestAccount preTestAccount = preTestAccountRepository.findById(userId).orElseGet(PreTestAccount::new);
String token = preTestReq.getToken(preTestAccount.getDbUserName(), preTestAccount.getDbUserPassword());
PreTestAct preTestAct = preTestActRepository.findByTaskIdAndUserId(taskId, userId); PreTestAct preTestAct = preTestActRepository.findByTaskIdAndUserId(taskId, userId);
if (ObjectUtil.isNotNull(preTestAct)) { if (ObjectUtil.isNotNull(preTestAct)) {
CallImportDTO callImportDTO = new CallImportDTO(); CallImportDTO callImportDTO = new CallImportDTO();
callImportDTO.setAuthKey(preTestAccount.getToken()); callImportDTO.setAuthKey(preTestAccount.getToken());
callImportDTO.setAuthKey(token);
callImportDTO.setActName(preTestAct.getActName()); callImportDTO.setActName(preTestAct.getActName());
callImportDTO.setActId(preTestAct.getActId()); callImportDTO.setActId(preTestAct.getActId());
callImportDTO.setBatchId(RandomUtil.randomString(8));
for (Map.Entry<Long, String> entry : clueMap.entrySet()) { for (Map.Entry<Long, String> entry : clueMap.entrySet()) {
List<CallImportDTO.Source> sourceList = getSources(entry); List<CallImportDTO.Source> sourceList = getSources(entry);
callImportDTO.setClientList(sourceList); callImportDTO.setClientList(sourceList);
} }
preTestReq.sendDaBa(callImportDTO); Boolean status = preTestReq.sendDaBa(callImportDTO);
log.info("===================== send pre-test request size {} . ===================== ",callImportDTO.getClientList().size()); log.info("请求值 =={}", JSONUtil.toJsonStr(callImportDTO));
return Boolean.TRUE; log.info("===================== send pre-test request size {} . ===================== ", callImportDTO.getClientList().size());
if (status) {
preTestAct.setStatus(0);
preTestActRepository.save(preTestAct);
}
return status;
} }
return Boolean.FALSE; return Boolean.FALSE;
} }
private static List<CallImportDTO.Source> getSources(Map.Entry<Long, String> entry) { private static List<CallImportDTO.Source> getSources(Map.Entry<Long, String> entry) {
List<CallImportDTO.Variable> list = Lists.newArrayList();
List<CallImportDTO.Source> sourceList = Lists.newArrayList(); List<CallImportDTO.Source> sourceList = Lists.newArrayList();
CallImportDTO.Source sources = new CallImportDTO.Source(); CallImportDTO.Source sources = new CallImportDTO.Source();
CallImportDTO.Variable variable = new CallImportDTO.Variable();
variable.setField(entry.getKey().toString());
variable.setValue(entry.getKey().toString());
list.add(variable);
// 是否加密 // 是否加密
sources.setCellphone(entry.getValue()); sources.setCellphone(entry.getValue());
sources.setVariableList(list); sources.setVariable(entry.getKey().toString());
sourceList.add(sources); sourceList.add(sources);
return sourceList; return sourceList;
} }

Loading…
Cancel
Save