预测试呼叫

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

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

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

@ -24,5 +24,6 @@ public class PreTestActDTO {
private Long taskId;
@NotNull(groups = {UpdateGroup.class})
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));
PreTestResponse response = JSONUtil.toBean(body, PreTestResponse.class);
if (!response.getResult()) {
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
* @return
*/

@ -4,6 +4,7 @@ import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baiye.exception.BadRequestException;
@ -26,7 +27,6 @@ import com.baiye.util.PageUtil;
import com.baiye.util.QueryHelp;
import com.baiye.util.SecurityUtils;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
@ -37,7 +37,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -63,7 +62,7 @@ public class PreTestServiceImpl implements PreTestService {
//新建任务
long taskId = IdUtil.getSnowflake(9, 9).nextId();
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值
if (CollUtil.isNotEmpty(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());
adBackRequestApi.sendTag(taskId, userId, collect);
//新建活动
PreTestAct preTestAct = new PreTestAct().addDefaultPreTestAct(userId, preTestActDTO.getActName(), preTestActDTO.getActId(), taskId);
taskRepository.save(task);
@ -82,6 +82,16 @@ public class PreTestServiceImpl implements PreTestService {
preTestActQueryCriteria.setUserId(SecurityUtils.getCurrentUserId());
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);
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);
}
@ -161,35 +171,37 @@ public class PreTestServiceImpl implements PreTestService {
Long taskId = source.getTaskId();
Map<Long, String> clueMap = source.getClueMap();
PreTestAccount preTestAccount = preTestAccountRepository.findById(userId).orElseGet(PreTestAccount::new);
String token = preTestReq.getToken(preTestAccount.getDbUserName(), preTestAccount.getDbUserPassword());
PreTestAct preTestAct = preTestActRepository.findByTaskIdAndUserId(taskId, userId);
if (ObjectUtil.isNotNull(preTestAct)) {
CallImportDTO callImportDTO = new CallImportDTO();
callImportDTO.setAuthKey(preTestAccount.getToken());
callImportDTO.setAuthKey(token);
callImportDTO.setActName(preTestAct.getActName());
callImportDTO.setActId(preTestAct.getActId());
callImportDTO.setBatchId(RandomUtil.randomString(8));
for (Map.Entry<Long, String> entry : clueMap.entrySet()) {
List<CallImportDTO.Source> sourceList = getSources(entry);
callImportDTO.setClientList(sourceList);
}
preTestReq.sendDaBa(callImportDTO);
log.info("===================== send pre-test request size {} . ===================== ",callImportDTO.getClientList().size());
return Boolean.TRUE;
Boolean status = preTestReq.sendDaBa(callImportDTO);
log.info("请求值 =={}", JSONUtil.toJsonStr(callImportDTO));
log.info("===================== send pre-test request size {} . ===================== ", callImportDTO.getClientList().size());
if (status) {
preTestAct.setStatus(0);
preTestActRepository.save(preTestAct);
}
return status;
}
return Boolean.FALSE;
}
private static List<CallImportDTO.Source> getSources(Map.Entry<Long, String> entry) {
List<CallImportDTO.Variable> list = Lists.newArrayList();
List<CallImportDTO.Source> sourceList = Lists.newArrayList();
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.setVariableList(list);
sources.setVariable(entry.getKey().toString());
sourceList.add(sources);
return sourceList;
}

Loading…
Cancel
Save