添加推送预测试代码

master
bynt 10 months ago
parent 7f01f82a8b
commit ac4e79b47c

@ -1,7 +1,9 @@
package com.baiye.modules.telemarkting.api;
import com.baiye.annotation.Inner;
import com.baiye.annotation.Log;
import com.baiye.http.CommonResponse;
import com.baiye.model.dto.AddSourceDTO;
import com.baiye.modules.telemarkting.entity.dto.PreTestActDTO;
import com.baiye.modules.telemarkting.entity.dto.PreTestActQueryCriteria;
import com.baiye.modules.telemarkting.service.PreTestService;
@ -18,6 +20,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @author wjt
* @date 2023/11/13
@ -70,4 +74,15 @@ public class PreTestController {
public CommonResponse<Object> accountQuery() {
return CommonResponse.createBySuccess(preTestService.accountQuery());
}
@Inner
@PostMapping("/add/source")
@ApiOperation("预测试添加资源")
public CommonResponse<Object> addSource(@RequestBody AddSourceDTO source) {
return CommonResponse.createBySuccess(preTestService.sendDBData(source));
}
}

@ -1,6 +1,6 @@
package com.baiye.modules.telemarkting.entity.dto;
import lombok.Data;
import lombok.*;
import java.util.List;
@ -46,7 +46,19 @@ public class CallImportDTO {
/**
* 线 (:++)
*/
private String variable;
private List<Variable> variableList;
}
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public static class Variable {
private String field;
private String value;
}
}

@ -1,10 +1,10 @@
package com.baiye.modules.telemarkting.service;
import com.baiye.model.dto.AddSourceDTO;
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
@ -40,4 +40,12 @@ public interface PreTestService {
* @return
*/
PreTestAccount accountQuery();
/**
*
* @param source
* @return
*/
Boolean sendDBData(AddSourceDTO source);
}

@ -7,6 +7,7 @@ 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.model.dto.AddSourceDTO;
import com.baiye.modules.platform.domain.Task;
import com.baiye.modules.platform.domain.TaskTag;
import com.baiye.modules.platform.httpRequest.AdBackRequestApi;
@ -24,6 +25,8 @@ import com.baiye.modules.telemarkting.service.PreTestService;
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;
@ -34,7 +37,9 @@ 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;
/**
@ -150,15 +155,42 @@ public class PreTestServiceImpl implements PreTestService {
return preTestAccount;
}
public void sendDBData(Long taskId, Long userId, List<CallImportDTO.Source> sources) {
@Override
public Boolean sendDBData(AddSourceDTO source) {
Long userId = source.getUserId();
Long taskId = source.getTaskId();
Map<Long, String> clueMap = source.getClueMap();
PreTestAccount preTestAccount = preTestAccountRepository.findById(userId).orElseGet(PreTestAccount::new);
PreTestAct preTestAct = preTestActRepository.findByTaskIdAndUserId(taskId, userId);
if (ObjectUtil.isNotNull(preTestAct)) {
CallImportDTO callImportDTO = new CallImportDTO();
callImportDTO.setAuthKey(preTestAccount.getToken());
callImportDTO.setActName(preTestAct.getActName());
callImportDTO.setActId(preTestAct.getActId());
callImportDTO.setClientList(sources);
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;
}
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);
sourceList.add(sources);
return sourceList;
}
}

@ -0,0 +1,24 @@
package com.baiye.model.dto;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* @author Enzo
* @date : 2023/5/9
*/
@Data
@Builder
public class AddSourceDTO implements Serializable {
private Long taskId;
private Long userId;
private Map<Long,String> clueMap;
}

@ -0,0 +1,32 @@
package com.baiye.feign;
import com.baiye.constant.SecurityConstants;
import com.baiye.feign.fallback.PreTestClientFallback;
import com.baiye.model.dto.AddSourceDTO;
import com.baiye.model.dto.AddWeChatFriendRecordDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
/**
* @author Enzo
* @date 2022-7-1
*
*/
@FeignClient(value = "ad-platform-management",fallback = PreTestClientFallback.class)
public interface PreTestClient {
/**
*
* @param source
* @param from
* @return
*/
@GetMapping( "/api/add/source")
ResponseEntity<AddWeChatFriendRecordDTO> addSource(@RequestBody AddSourceDTO source, @RequestHeader(SecurityConstants.FROM) String from);
}

@ -1,6 +1,5 @@
package com.baiye.feign;
import com.baiye.annotation.Inner;
import com.baiye.constant.SecurityConstants;
import com.baiye.feign.fallback.TaskClientFallback;
import com.baiye.http.CommonResponse;
@ -9,6 +8,7 @@ import com.baiye.model.dto.TaskQueryCriteria;
import com.baiye.model.dto.TaskUserDTO;
import com.baiye.module.entity.Task;
import io.swagger.annotations.ApiOperation;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@ -40,6 +40,7 @@ public interface TaskClient {
@ApiOperation("查询任务详情")
@GetMapping(PAY_PREFIX + "/queryDetails")
@Cacheable(value = "taskName", key = "'task:name:' + #p0")
ResponseEntity<Task> queryDetails(@RequestParam("taskId") Long taskId);
@ApiOperation("修改任务信息")

@ -0,0 +1,21 @@
package com.baiye.feign.fallback;
import com.baiye.feign.PreTestClient;
import com.baiye.model.dto.AddSourceDTO;
import com.baiye.model.dto.AddWeChatFriendRecordDTO;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
/**
*
* @author Enzo
*/
@Component
public class PreTestClientFallback implements PreTestClient {
@Override
public ResponseEntity<AddWeChatFriendRecordDTO> addSource(AddSourceDTO source, String from) {
return null;
}
}

@ -10,6 +10,7 @@ import com.baiye.module.service.dto.ClueRecordCriteria;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -229,4 +230,17 @@ public interface ClueService {
* @return
*/
Boolean updateGenderByZid(String nid, Integer gender);
/**
* 线
* @param onLineNotblackList
* @param tagList
* @param taskId
* @param userId
* @param number
* @param memberId
* @param status
* @return
*/
Map<Long, String> saveClueTalk(List<String> onLineNotblackList, List<String> tagList, Long taskId, Long userId, Integer number, Long memberId, Integer status);
}

@ -26,6 +26,7 @@ import com.baiye.module.service.dto.ClueRecordCriteria;
import com.baiye.task.ClueBackupsTask;
import com.baiye.util.*;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
@ -1095,7 +1096,7 @@ public class ClueServiceImpl implements ClueService {
if (CollUtil.isNotEmpty(data.getResponseList())) {
phoneList = data.getResponseList().stream().map(String::valueOf).collect(Collectors.toList());
Integer integer = this.saveClueTalk
(phoneList, tagList, taskId, userId, num, data.getDeptId(), DefaultNumberConstants.ONE_NUMBER);
(phoneList, tagList, taskId, userId, num, data.getDeptId(), DefaultNumberConstants.ONE_NUMBER).size();
saveNumber += integer;
}
}
@ -1104,14 +1105,14 @@ public class ClueServiceImpl implements ClueService {
}
}
}
return this.saveClueTalk(phoneList, tagList, taskId, userId, num, null, DefaultNumberConstants.ZERO_NUMBER);
return this.saveClueTalk(phoneList, tagList, taskId, userId, num, null, DefaultNumberConstants.ZERO_NUMBER).size();
}
return DefaultNumberConstants.ZERO_NUMBER;
}
private Integer saveClueTalk(List<String> responseList, List<String> tagList, Long taskId, Long userId, Integer num, Long memberId, Integer memberStatus) {
int clueNumber = DefaultNumberConstants.ZERO_NUMBER;
@Override
public Map<Long, String> saveClueTalk(List<String> responseList, List<String> tagList, Long taskId, Long userId, Integer num, Long memberId, Integer memberStatus) {
Map<Long, String> map = Maps.newHashMap();
for (int i = 0; i < responseList.size(); i++) {
String phone = responseList.get(i);
if (StringUtils.isNotBlank(phone)) {
@ -1132,11 +1133,11 @@ public class ClueServiceImpl implements ClueService {
Clue save = clueRepository.save(clue);
ClueTalk clueTalk = new ClueTalk(save.getId(), taskId, memberStatus, 0, 0, 0, num, new Date(), memberId);
clueTalkRepository.save(clueTalk);
clueNumber++;
map.put(save.getId(), phone);
}
}
CommonLog.info("==============save clue size as: " + responseList.size());
return clueNumber;
return map;
}
/**
@ -1202,4 +1203,6 @@ public class ClueServiceImpl implements ClueService {
return clueRepository.updateGenderByNid(nid, gender) > DefaultNumberConstants.ZERO_NUMBER;
}
}

@ -6,8 +6,6 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.text.csv.CsvData;
import cn.hutool.core.text.csv.CsvReader;
import cn.hutool.core.text.csv.CsvUtil;
import cn.hutool.core.text.csv.CsvWriter;
import cn.hutool.core.util.CharsetUtil;
@ -19,9 +17,11 @@ import com.baiye.constant.DefaultNumberConstants;
import com.baiye.constant.FileConstant;
import com.baiye.constant.SecurityConstants;
import com.baiye.feign.DeliveryRecordClient;
import com.baiye.feign.PreTestClient;
import com.baiye.feign.TaskClient;
import com.baiye.http.CommonResponse;
import com.baiye.http.ResponseCode;
import com.baiye.model.dto.AddSourceDTO;
import com.baiye.module.dao.ClueTalkRepository;
import com.baiye.module.entity.DeliveryRecord;
import com.baiye.module.entity.Task;
@ -45,6 +45,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
@ -70,6 +71,8 @@ public class DmpCallbackServiceImpl implements DmpCallbackService {
private final ClueService clueService;
private final PreTestClient preTestClient;
private final ClueTalkRepository clueTalkRepository;
private final DeliveryProperties deliveryProperties;
@ -148,16 +151,29 @@ public class DmpCallbackServiceImpl implements DmpCallbackService {
// 请求黑名单
List<String> isNotblackList = IsBlackUtil.getNotblackList(decryptList);
List<String> onLineNotblackList = IsBlackUtil.getOnLineNotblackList(isNotblackList);
Task task = taskClient.queryDetails(taskId).getBody();
if (ObjectUtil.isNotNull(task) &&
ObjectUtil.isNotNull(task.getIsForm()) &&
task.getIsForm() == DefaultNumberConstants.EIGHT_NUMBER) {
Map<Long, String> longStringMap = clueService.saveClueTalk
(onLineNotblackList, tagList, taskId, byTaskName.getUserId(), DefaultNumberConstants.FOUR_NUMBER,
null, DefaultNumberConstants.ZERO_NUMBER);
AddSourceDTO build = AddSourceDTO.builder().clueMap(longStringMap).userId(byTaskName.getUserId()).taskId(taskId).build();
preTestClient.addSource(build, SecurityConstants.FROM_IN);
return;
}
// 将imei转为线索
Integer saveNumer = clueService.saveClue(tagList, onLineNotblackList,
byTaskName.getTaskId(), byTaskName.getUserId(), DefaultNumberConstants.FOUR_NUMBER);
// 修改任务总条数
Integer taskNum = clueTalkRepository.findTaskNum(taskId);
Task task = new Task();
task.setId(taskId);
task.setTotalNumber(taskNum);
task.setIsDistribution(DefaultNumberConstants.ONE_NUMBER);
taskClient.updateTask(task);
Task updateTask = new Task();
updateTask.setId(taskId);
updateTask.setTotalNumber(taskNum);
updateTask.setIsDistribution(DefaultNumberConstants.ONE_NUMBER);
taskClient.updateTask(updateTask);
deliveryRecordClient.updateQuantity(byTaskName.getUserId(), saveNumer, SecurityConstants.FROM_IN);
deliveryRecordService.updateStatusByTaskName(DefaultNumberConstants.ONE_NUMBER, saveNumer, taskName);
}

@ -441,7 +441,7 @@ public class ReportCrmServiceImpl implements ReportCrmService {
return taskSet;
}
@Cacheable(value = "taskName", key = "'task:name:' + #p0")
public String findByTaskId(Long taskId) {
Task body = taskClient.queryDetails(taskId).getBody();
if (body != null) {

Loading…
Cancel
Save