预测试呼叫数据
parent
c7bf8af970
commit
7f01f82a8b
@ -0,0 +1,23 @@
|
||||
package com.baiye.http;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/14
|
||||
*/
|
||||
@Data
|
||||
public class PreTestResponse {
|
||||
|
||||
private Object data;
|
||||
|
||||
@JsonProperty("code")
|
||||
private int code;
|
||||
|
||||
@JsonProperty("msg")
|
||||
private String msg;
|
||||
|
||||
@JsonProperty("result")
|
||||
private Boolean result;
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
package com.baiye.modules.telemarkting.api;
|
||||
|
||||
import com.baiye.annotation.Log;
|
||||
import com.baiye.http.CommonResponse;
|
||||
import com.baiye.modules.telemarkting.entity.dto.PreTestActDTO;
|
||||
import com.baiye.modules.telemarkting.entity.dto.PreTestActQueryCriteria;
|
||||
import com.baiye.modules.telemarkting.service.PreTestService;
|
||||
import com.baiye.valid.AddGroup;
|
||||
import com.baiye.valid.UpdateGroup;
|
||||
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.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/13
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api")
|
||||
@Api(tags = " 预测试外呼 对接大坝")
|
||||
@RequiredArgsConstructor
|
||||
public class PreTestController {
|
||||
|
||||
private final PreTestService preTestService;
|
||||
|
||||
@PostMapping("/act/add")
|
||||
@ApiOperation("创建活动任务")
|
||||
@Log("创建活动任务")
|
||||
public CommonResponse<Object> actAdd(@Validated({AddGroup.class}) @RequestBody PreTestActDTO preTestActDTO) {
|
||||
preTestService.actAdd(preTestActDTO);
|
||||
return CommonResponse.createBySuccess();
|
||||
}
|
||||
|
||||
@GetMapping("/act/query")
|
||||
@ApiOperation("预测试活动查询")
|
||||
@Log("预测试活动查询")
|
||||
public ResponseEntity<Object> actQuery(PreTestActQueryCriteria preTestActQueryCriteria, Pageable pageable) {
|
||||
return new ResponseEntity<>(preTestService.actQuery(preTestActQueryCriteria, pageable), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/act/update")
|
||||
@ApiOperation("修改活动任务")
|
||||
@Log("修改活动任务")
|
||||
public CommonResponse<Object> actUpdate(@Validated({UpdateGroup.class}) @RequestBody PreTestActDTO preTestActDTO) {
|
||||
preTestService.actUpdate(preTestActDTO);
|
||||
return CommonResponse.createBySuccess();
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/account/conf")
|
||||
@ApiOperation("预测试账号配置")
|
||||
@Log("预测试账号配置")
|
||||
public CommonResponse<Object> accountConf(@RequestParam("userName") String userName,
|
||||
@RequestParam("passWord") String passWord) {
|
||||
preTestService.accountConf(userName, passWord);
|
||||
return CommonResponse.createBySuccess();
|
||||
}
|
||||
|
||||
@GetMapping("/account/query")
|
||||
@ApiOperation("预测试账号查询")
|
||||
@Log("预测试账号查询")
|
||||
public CommonResponse<Object> accountQuery() {
|
||||
return CommonResponse.createBySuccess(preTestService.accountQuery());
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.baiye.modules.telemarkting.dao;
|
||||
|
||||
import com.baiye.modules.telemarkting.entity.PreTestAccount;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/14
|
||||
*/
|
||||
@Repository
|
||||
public interface PreTestAccountRepository extends JpaRepository<PreTestAccount, Long>, JpaSpecificationExecutor<PreTestAccount> {
|
||||
|
||||
/**
|
||||
* 根据状态查询
|
||||
* @param status
|
||||
* @return
|
||||
*/
|
||||
List<PreTestAccount> findAllByStatus(Boolean status);
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.baiye.modules.telemarkting.dao;
|
||||
|
||||
import com.baiye.modules.telemarkting.entity.PreTestAct;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/14
|
||||
*/
|
||||
@Repository
|
||||
public interface PreTestActRepository extends JpaRepository<PreTestAct, Long>, JpaSpecificationExecutor<PreTestAct> {
|
||||
|
||||
/**
|
||||
* 根据状态查询活动
|
||||
*
|
||||
* @param status 状态
|
||||
* @return
|
||||
*/
|
||||
List<PreTestAct> findAllByStatus(Integer status);
|
||||
|
||||
/**
|
||||
* 查询活动
|
||||
*
|
||||
* @param taskId 用户id
|
||||
* @param userId 活动id
|
||||
* @return
|
||||
*/
|
||||
PreTestAct findByTaskIdAndUserId(Long taskId, Long userId );
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.baiye.modules.telemarkting.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.annotation.LastModifiedDate;
|
||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/14
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@Table(name = "tb_pre_test_account")
|
||||
@EntityListeners(AuditingEntityListener.class)
|
||||
public class PreTestAccount implements Serializable {
|
||||
|
||||
@Id
|
||||
@ApiModelProperty(value = "user_id")
|
||||
@Column(name = "user_id")
|
||||
private Long userId;
|
||||
|
||||
@Column(name = "db_user_name")
|
||||
@ApiModelProperty(value = "对应大坝用户名")
|
||||
private String dbUserName;
|
||||
|
||||
@Column(name = "db_user_password")
|
||||
@ApiModelProperty(value = "对应大坝用户密码")
|
||||
private String dbUserPassword;
|
||||
|
||||
@Column(name = "token")
|
||||
@ApiModelProperty(value = "token")
|
||||
private String token;
|
||||
|
||||
@ApiModelProperty(value = "是否激活")
|
||||
@Column(name = "status")
|
||||
private Boolean status = Boolean.TRUE;
|
||||
|
||||
@LastModifiedDate
|
||||
@Column(name = "create_time")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package com.baiye.modules.telemarkting.entity.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/13
|
||||
*/
|
||||
@Data
|
||||
public class CallImportDTO {
|
||||
|
||||
/**
|
||||
* 身份认证 token
|
||||
*/
|
||||
private String authKey;
|
||||
|
||||
/**
|
||||
* 活动名称
|
||||
*/
|
||||
private String actName;
|
||||
|
||||
/**
|
||||
* 活动名称
|
||||
*/
|
||||
private String actId;
|
||||
|
||||
/**
|
||||
* 数据批次 ID
|
||||
*/
|
||||
private String batchId;
|
||||
|
||||
/**
|
||||
* nid 最大支持1000条
|
||||
*/
|
||||
private List<Source> clientList;
|
||||
|
||||
@Data
|
||||
public static class Source {
|
||||
/**
|
||||
* nid
|
||||
*/
|
||||
private String cellphone;
|
||||
|
||||
/**
|
||||
* 线索标识码 (例如:活动名+用户民+随机码)
|
||||
*/
|
||||
private String variable;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.baiye.modules.telemarkting.entity.dto;
|
||||
|
||||
import com.baiye.valid.AddGroup;
|
||||
import com.baiye.valid.UpdateGroup;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/17
|
||||
* 活动编辑
|
||||
*/
|
||||
@Data
|
||||
public class PreTestActDTO {
|
||||
|
||||
@NotNull(groups = {AddGroup.class})
|
||||
private String actId;
|
||||
@NotNull(groups = {AddGroup.class})
|
||||
private String actName;
|
||||
@NotNull(groups = {UpdateGroup.class})
|
||||
private Long taskId;
|
||||
@NotNull(groups = {UpdateGroup.class})
|
||||
private List<String> tagStr;
|
||||
private Boolean isDmpDelivery;
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.baiye.modules.telemarkting.entity.dto;
|
||||
|
||||
import com.baiye.annotation.Query;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/15
|
||||
*/
|
||||
@Data
|
||||
public class PreTestActQueryCriteria {
|
||||
@Query
|
||||
private String actId;
|
||||
|
||||
@Query(type = Query.Type.INNER_LIKE)
|
||||
private String actName;
|
||||
|
||||
@Query
|
||||
private Long userId;
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package com.baiye.modules.telemarkting.service;
|
||||
|
||||
import com.baiye.modules.telemarkting.entity.PreTestAccount;
|
||||
import com.baiye.modules.telemarkting.entity.dto.PreTestActDTO;
|
||||
import com.baiye.modules.telemarkting.entity.dto.PreTestActQueryCriteria;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/13
|
||||
*/
|
||||
public interface PreTestService {
|
||||
/**
|
||||
* 新增活动
|
||||
*/
|
||||
void actAdd(PreTestActDTO preTestActDTO);
|
||||
|
||||
/**
|
||||
* 活动查询
|
||||
*/
|
||||
Object actQuery(PreTestActQueryCriteria preTestActQueryCriteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 修改活动任务
|
||||
*/
|
||||
void actUpdate(PreTestActDTO preTestActDTO);
|
||||
|
||||
/**
|
||||
* 配置账号
|
||||
*
|
||||
* @param userName 用户名
|
||||
* @param passWord 密码
|
||||
*/
|
||||
void accountConf(String userName, String passWord);
|
||||
|
||||
/**
|
||||
* 查询配置账号
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
PreTestAccount accountQuery();
|
||||
}
|
@ -0,0 +1,164 @@
|
||||
package com.baiye.modules.telemarkting.service.impl;
|
||||
|
||||
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.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baiye.exception.BadRequestException;
|
||||
import com.baiye.modules.platform.domain.Task;
|
||||
import com.baiye.modules.platform.domain.TaskTag;
|
||||
import com.baiye.modules.platform.httpRequest.AdBackRequestApi;
|
||||
import com.baiye.modules.platform.repository.TaskRepository;
|
||||
import com.baiye.modules.platform.repository.TaskTagRepository;
|
||||
import com.baiye.modules.telemarkting.dao.PreTestAccountRepository;
|
||||
import com.baiye.modules.telemarkting.dao.PreTestActRepository;
|
||||
import com.baiye.modules.telemarkting.entity.PreTestAccount;
|
||||
import com.baiye.modules.telemarkting.entity.PreTestAct;
|
||||
import com.baiye.modules.telemarkting.entity.dto.CallImportDTO;
|
||||
import com.baiye.modules.telemarkting.entity.dto.PreTestActDTO;
|
||||
import com.baiye.modules.telemarkting.entity.dto.PreTestActQueryCriteria;
|
||||
import com.baiye.modules.telemarkting.httpRequest.PreTestReq;
|
||||
import com.baiye.modules.telemarkting.service.PreTestService;
|
||||
import com.baiye.util.PageUtil;
|
||||
import com.baiye.util.QueryHelp;
|
||||
import com.baiye.util.SecurityUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/13
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class PreTestServiceImpl implements PreTestService {
|
||||
private final PreTestReq preTestReq;
|
||||
private final PreTestActRepository preTestActRepository;
|
||||
private final PreTestAccountRepository preTestAccountRepository;
|
||||
private final TaskTagRepository taskTagRepository;
|
||||
private final TaskRepository taskRepository;
|
||||
private final AdBackRequestApi adBackRequestApi;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void actAdd(PreTestActDTO preTestActDTO) {
|
||||
//新建任务
|
||||
long taskId = IdUtil.getSnowflake(9, 9).nextId();
|
||||
long userId = SecurityUtils.getCurrentUserId();
|
||||
Task task = new Task().createActTask(taskId, userId, preTestActDTO.getActName(), 8, true);
|
||||
//检查tag值
|
||||
if (CollUtil.isNotEmpty(preTestActDTO.getTagStr())) {
|
||||
createTag(taskId, userId, preTestActDTO.getTagStr());
|
||||
}
|
||||
//发送任务
|
||||
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);
|
||||
preTestActRepository.save(preTestAct);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object actQuery(PreTestActQueryCriteria preTestActQueryCriteria, Pageable pageable) {
|
||||
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);
|
||||
return PageUtil.toPage(all);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actUpdate(PreTestActDTO preTestActDTO) {
|
||||
long userId = SecurityUtils.getCurrentUserId();
|
||||
//检查tag
|
||||
createTag(preTestActDTO.getTaskId(), userId, preTestActDTO.getTagStr());
|
||||
if (preTestActDTO.getIsDmpDelivery() != null) {
|
||||
Task task = new Task();
|
||||
task.setId(preTestActDTO.getTaskId());
|
||||
task.setIsDmpDelivery(preTestActDTO.getIsDmpDelivery());
|
||||
taskRepository.save(task);
|
||||
}
|
||||
List<String> collect = preTestActDTO.getTagStr().stream().map(String::trim).collect(Collectors.toList());
|
||||
adBackRequestApi.sendTag(preTestActDTO.getTaskId(), userId, collect);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查tag
|
||||
*/
|
||||
private void createTag(Long taskId, Long userId, List<String> tags) {
|
||||
List<TaskTag> taskTags = taskTagRepository.findTaskTagByUserId(userId);
|
||||
tags = tags.stream().distinct().collect(Collectors.toList());
|
||||
List<String> tagAll = new ArrayList<>();
|
||||
for (TaskTag taskTag : taskTags) {
|
||||
if (taskId.equals(taskTag.getTaskId())) {
|
||||
//已经有这个任务,说明是修改,所以排除掉当前的
|
||||
continue;
|
||||
}
|
||||
tagAll.addAll(taskTag.getTag());
|
||||
}
|
||||
List<String> differenceList = tagAll.stream().filter(tags::contains).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(differenceList)) {
|
||||
throw new BadRequestException("tag 存在重复 请检查:" + JSONUtil.toJsonStr(differenceList));
|
||||
}
|
||||
TaskTag taskTag = taskTagRepository.findTaskTagByTaskId(taskId);
|
||||
if (ObjectUtil.isNull(taskTag)) {
|
||||
taskTag = new TaskTag();
|
||||
taskTag.setUserId(userId);
|
||||
taskTag.setTaskId(taskId);
|
||||
}
|
||||
taskTag.setTag(tags);
|
||||
taskTagRepository.save(taskTag);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void accountConf(String userName, String passWord) {
|
||||
PreTestAccount preTestAccount = new PreTestAccount();
|
||||
preTestAccount.setUserId(SecurityUtils.getCurrentUserId());
|
||||
String name = Base64.encode(userName);
|
||||
String pass = Base64.encode(passWord);
|
||||
preTestAccount.setDbUserName(name);
|
||||
preTestAccount.setDbUserPassword(pass);
|
||||
//获取token
|
||||
String token = preTestReq.getToken(name, pass);
|
||||
if (StrUtil.isEmpty(token)) {
|
||||
throw new BadRequestException("账号密码不正确,请检查");
|
||||
}
|
||||
preTestAccount.setToken(token);
|
||||
preTestAccountRepository.save(preTestAccount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PreTestAccount accountQuery() {
|
||||
PreTestAccount preTestAccount = preTestAccountRepository.findById(SecurityUtils.getCurrentUserId()).orElseGet(PreTestAccount::new);
|
||||
preTestAccount.setDbUserName(Base64.decodeStr(preTestAccount.getDbUserName()));
|
||||
preTestAccount.setDbUserPassword(Base64.decodeStr(preTestAccount.getDbUserPassword()));
|
||||
return preTestAccount;
|
||||
}
|
||||
|
||||
public void sendDBData(Long taskId, Long userId, List<CallImportDTO.Source> sources) {
|
||||
PreTestAccount preTestAccount = preTestAccountRepository.findById(userId).orElseGet(PreTestAccount::new);
|
||||
PreTestAct preTestAct = preTestActRepository.findByTaskIdAndUserId(taskId, userId);
|
||||
CallImportDTO callImportDTO = new CallImportDTO();
|
||||
callImportDTO.setAuthKey(preTestAccount.getToken());
|
||||
callImportDTO.setActName(preTestAct.getActName());
|
||||
callImportDTO.setActId(preTestAct.getActId());
|
||||
callImportDTO.setClientList(sources);
|
||||
preTestReq.sendDaBa(callImportDTO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
package com.baiye.timed;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.baiye.modules.telemarkting.dao.PreTestAccountRepository;
|
||||
import com.baiye.modules.telemarkting.dao.PreTestActRepository;
|
||||
import com.baiye.modules.telemarkting.entity.PreTestAccount;
|
||||
import com.baiye.modules.telemarkting.entity.PreTestAct;
|
||||
import com.baiye.modules.telemarkting.httpRequest.PreTestReq;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/14
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class PreTestTask {
|
||||
|
||||
private final PreTestAccountRepository preTestAccountRepository;
|
||||
private final PreTestActRepository preTestActRepository;
|
||||
private final PreTestReq preTestReq;
|
||||
|
||||
@Scheduled(cron = "0 0 1 * * ?")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void countPreTestData() {
|
||||
List<PreTestAct> preTestActs = preTestActRepository.findAllByStatus(0);
|
||||
if (CollUtil.isEmpty(preTestActs)) {
|
||||
return;
|
||||
}
|
||||
Map<Long, List<PreTestAct>> listMap =
|
||||
preTestActs.stream().collect(Collectors.groupingBy(PreTestAct::getUserId));
|
||||
List<PreTestAct> list = new ArrayList<>();
|
||||
for (Map.Entry<Long, List<PreTestAct>> map : listMap.entrySet()) {
|
||||
Long userId = map.getKey();
|
||||
List<PreTestAct> value = map.getValue();
|
||||
//获取账号
|
||||
PreTestAccount one = preTestAccountRepository.findById(userId).orElseGet(PreTestAccount::new);
|
||||
if (BeanUtil.isEmpty(one) || StrUtil.isEmpty(one.getToken())) {
|
||||
continue;
|
||||
}
|
||||
//获取token
|
||||
String token = one.getToken();
|
||||
|
||||
for (PreTestAct preTestAct : value) {
|
||||
JSONArray daBaData = preTestReq.getDaBa(token, preTestAct.getActName());
|
||||
if (CollUtil.isNotEmpty(daBaData)) {
|
||||
JSONObject jsonObject = daBaData.getJSONObject(0);
|
||||
//预执行总数
|
||||
int executeTotalNum = jsonObject.getInt("listCallTotleNum");
|
||||
//已执行总数
|
||||
int executeNum = jsonObject.getInt("listTotleNumber");
|
||||
//接通数
|
||||
int rateNum = jsonObject.getInt("connCallSum");
|
||||
int status = 0;
|
||||
if (executeTotalNum > 0 && executeTotalNum == executeNum) {
|
||||
status = 1;
|
||||
}
|
||||
preTestAct.setStatus(status);
|
||||
preTestAct.setExecuteTotalNum(executeTotalNum);
|
||||
preTestAct.setExecuteNum(executeNum);
|
||||
preTestAct.setRateNum(rateNum);
|
||||
list.add(preTestAct);
|
||||
}
|
||||
}
|
||||
}
|
||||
preTestActRepository.saveAll(list);
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.baiye.timed;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baiye.modules.telemarkting.dao.PreTestAccountRepository;
|
||||
import com.baiye.modules.telemarkting.entity.PreTestAccount;
|
||||
import com.baiye.modules.telemarkting.httpRequest.PreTestReq;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author wjt
|
||||
* @date 2023/11/17
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class PreTestTokenTask {
|
||||
|
||||
private final PreTestAccountRepository preTestAccountRepository;
|
||||
private final PreTestReq preTestReq;
|
||||
|
||||
@Scheduled(cron = "0 0 0 * * ?")
|
||||
public void getToken() {
|
||||
List<PreTestAccount> all = preTestAccountRepository.findAllByStatus(true);
|
||||
List<PreTestAccount> list = new ArrayList<>();
|
||||
for (PreTestAccount preTestAccount : all) {
|
||||
String token = preTestReq.getToken(preTestAccount.getDbUserName(), preTestAccount.getDbUserPassword());
|
||||
if (StrUtil.isEmpty(token)) {
|
||||
preTestAccount.setStatus(false);
|
||||
}
|
||||
preTestAccount.setToken(token);
|
||||
list.add(preTestAccount);
|
||||
}
|
||||
preTestAccountRepository.saveAll(list);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue