添加推送预测试代码

master
bynt 10 months ago
parent 7f01f82a8b
commit ac4e79b47c

@ -1,7 +1,9 @@
package com.baiye.modules.telemarkting.api; package com.baiye.modules.telemarkting.api;
import com.baiye.annotation.Inner;
import com.baiye.annotation.Log; import com.baiye.annotation.Log;
import com.baiye.http.CommonResponse; 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.PreTestActDTO;
import com.baiye.modules.telemarkting.entity.dto.PreTestActQueryCriteria; import com.baiye.modules.telemarkting.entity.dto.PreTestActQueryCriteria;
import com.baiye.modules.telemarkting.service.PreTestService; 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.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/** /**
* @author wjt * @author wjt
* @date 2023/11/13 * @date 2023/11/13
@ -70,4 +74,15 @@ public class PreTestController {
public CommonResponse<Object> accountQuery() { public CommonResponse<Object> accountQuery() {
return CommonResponse.createBySuccess(preTestService.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; package com.baiye.modules.telemarkting.entity.dto;
import lombok.Data; import lombok.*;
import java.util.List; 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; 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.PreTestAccount;
import com.baiye.modules.telemarkting.entity.dto.PreTestActDTO; import com.baiye.modules.telemarkting.entity.dto.PreTestActDTO;
import com.baiye.modules.telemarkting.entity.dto.PreTestActQueryCriteria; import com.baiye.modules.telemarkting.entity.dto.PreTestActQueryCriteria;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;
/** /**
* @author wjt * @author wjt
@ -40,4 +40,12 @@ public interface PreTestService {
* @return * @return
*/ */
PreTestAccount accountQuery(); 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.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baiye.exception.BadRequestException; import com.baiye.exception.BadRequestException;
import com.baiye.model.dto.AddSourceDTO;
import com.baiye.modules.platform.domain.Task; import com.baiye.modules.platform.domain.Task;
import com.baiye.modules.platform.domain.TaskTag; import com.baiye.modules.platform.domain.TaskTag;
import com.baiye.modules.platform.httpRequest.AdBackRequestApi; 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.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.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;
@ -34,7 +37,9 @@ 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.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -150,15 +155,42 @@ public class PreTestServiceImpl implements PreTestService {
return preTestAccount; 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); PreTestAccount preTestAccount = preTestAccountRepository.findById(userId).orElseGet(PreTestAccount::new);
PreTestAct preTestAct = preTestActRepository.findByTaskIdAndUserId(taskId, userId); PreTestAct preTestAct = preTestActRepository.findByTaskIdAndUserId(taskId, userId);
if (ObjectUtil.isNotNull(preTestAct)) {
CallImportDTO callImportDTO = new CallImportDTO(); CallImportDTO callImportDTO = new CallImportDTO();
callImportDTO.setAuthKey(preTestAccount.getToken()); callImportDTO.setAuthKey(preTestAccount.getToken());
callImportDTO.setActName(preTestAct.getActName()); callImportDTO.setActName(preTestAct.getActName());
callImportDTO.setActId(preTestAct.getActId()); 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); 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; package com.baiye.feign;
import com.baiye.annotation.Inner;
import com.baiye.constant.SecurityConstants; import com.baiye.constant.SecurityConstants;
import com.baiye.feign.fallback.TaskClientFallback; import com.baiye.feign.fallback.TaskClientFallback;
import com.baiye.http.CommonResponse; import com.baiye.http.CommonResponse;
@ -9,6 +8,7 @@ import com.baiye.model.dto.TaskQueryCriteria;
import com.baiye.model.dto.TaskUserDTO; import com.baiye.model.dto.TaskUserDTO;
import com.baiye.module.entity.Task; import com.baiye.module.entity.Task;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -40,6 +40,7 @@ public interface TaskClient {
@ApiOperation("查询任务详情") @ApiOperation("查询任务详情")
@GetMapping(PAY_PREFIX + "/queryDetails") @GetMapping(PAY_PREFIX + "/queryDetails")
@Cacheable(value = "taskName", key = "'task:name:' + #p0")
ResponseEntity<Task> queryDetails(@RequestParam("taskId") Long taskId); ResponseEntity<Task> queryDetails(@RequestParam("taskId") Long taskId);
@ApiOperation("修改任务信息") @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.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -229,4 +230,17 @@ public interface ClueService {
* @return * @return
*/ */
Boolean updateGenderByZid(String nid, Integer gender); 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.task.ClueBackupsTask;
import com.baiye.util.*; import com.baiye.util.*;
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 org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -1095,7 +1096,7 @@ public class ClueServiceImpl implements ClueService {
if (CollUtil.isNotEmpty(data.getResponseList())) { if (CollUtil.isNotEmpty(data.getResponseList())) {
phoneList = data.getResponseList().stream().map(String::valueOf).collect(Collectors.toList()); phoneList = data.getResponseList().stream().map(String::valueOf).collect(Collectors.toList());
Integer integer = this.saveClueTalk 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; 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; return DefaultNumberConstants.ZERO_NUMBER;
} }
private Integer saveClueTalk(List<String> responseList, List<String> tagList, Long taskId, Long userId, Integer num, Long memberId, Integer memberStatus) { @Override
public Map<Long, String> saveClueTalk(List<String> responseList, List<String> tagList, Long taskId, Long userId, Integer num, Long memberId, Integer memberStatus) {
int clueNumber = DefaultNumberConstants.ZERO_NUMBER; Map<Long, String> map = Maps.newHashMap();
for (int i = 0; i < responseList.size(); i++) { for (int i = 0; i < responseList.size(); i++) {
String phone = responseList.get(i); String phone = responseList.get(i);
if (StringUtils.isNotBlank(phone)) { if (StringUtils.isNotBlank(phone)) {
@ -1132,11 +1133,11 @@ public class ClueServiceImpl implements ClueService {
Clue save = clueRepository.save(clue); Clue save = clueRepository.save(clue);
ClueTalk clueTalk = new ClueTalk(save.getId(), taskId, memberStatus, 0, 0, 0, num, new Date(), memberId); ClueTalk clueTalk = new ClueTalk(save.getId(), taskId, memberStatus, 0, 0, 0, num, new Date(), memberId);
clueTalkRepository.save(clueTalk); clueTalkRepository.save(clueTalk);
clueNumber++; map.put(save.getId(), phone);
} }
} }
CommonLog.info("==============save clue size as: " + responseList.size()); 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; 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.date.DateUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.StrPool; 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.CsvUtil;
import cn.hutool.core.text.csv.CsvWriter; import cn.hutool.core.text.csv.CsvWriter;
import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.CharsetUtil;
@ -19,9 +17,11 @@ import com.baiye.constant.DefaultNumberConstants;
import com.baiye.constant.FileConstant; import com.baiye.constant.FileConstant;
import com.baiye.constant.SecurityConstants; import com.baiye.constant.SecurityConstants;
import com.baiye.feign.DeliveryRecordClient; import com.baiye.feign.DeliveryRecordClient;
import com.baiye.feign.PreTestClient;
import com.baiye.feign.TaskClient; import com.baiye.feign.TaskClient;
import com.baiye.http.CommonResponse; import com.baiye.http.CommonResponse;
import com.baiye.http.ResponseCode; import com.baiye.http.ResponseCode;
import com.baiye.model.dto.AddSourceDTO;
import com.baiye.module.dao.ClueTalkRepository; import com.baiye.module.dao.ClueTalkRepository;
import com.baiye.module.entity.DeliveryRecord; import com.baiye.module.entity.DeliveryRecord;
import com.baiye.module.entity.Task; import com.baiye.module.entity.Task;
@ -45,6 +45,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@ -70,6 +71,8 @@ public class DmpCallbackServiceImpl implements DmpCallbackService {
private final ClueService clueService; private final ClueService clueService;
private final PreTestClient preTestClient;
private final ClueTalkRepository clueTalkRepository; private final ClueTalkRepository clueTalkRepository;
private final DeliveryProperties deliveryProperties; private final DeliveryProperties deliveryProperties;
@ -148,16 +151,29 @@ public class DmpCallbackServiceImpl implements DmpCallbackService {
// 请求黑名单 // 请求黑名单
List<String> isNotblackList = IsBlackUtil.getNotblackList(decryptList); List<String> isNotblackList = IsBlackUtil.getNotblackList(decryptList);
List<String> onLineNotblackList = IsBlackUtil.getOnLineNotblackList(isNotblackList); 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转为线索 // 将imei转为线索
Integer saveNumer = clueService.saveClue(tagList, onLineNotblackList, Integer saveNumer = clueService.saveClue(tagList, onLineNotblackList,
byTaskName.getTaskId(), byTaskName.getUserId(), DefaultNumberConstants.FOUR_NUMBER); byTaskName.getTaskId(), byTaskName.getUserId(), DefaultNumberConstants.FOUR_NUMBER);
// 修改任务总条数 // 修改任务总条数
Integer taskNum = clueTalkRepository.findTaskNum(taskId); Integer taskNum = clueTalkRepository.findTaskNum(taskId);
Task task = new Task(); Task updateTask = new Task();
task.setId(taskId); updateTask.setId(taskId);
task.setTotalNumber(taskNum); updateTask.setTotalNumber(taskNum);
task.setIsDistribution(DefaultNumberConstants.ONE_NUMBER); updateTask.setIsDistribution(DefaultNumberConstants.ONE_NUMBER);
taskClient.updateTask(task); taskClient.updateTask(updateTask);
deliveryRecordClient.updateQuantity(byTaskName.getUserId(), saveNumer, SecurityConstants.FROM_IN); deliveryRecordClient.updateQuantity(byTaskName.getUserId(), saveNumer, SecurityConstants.FROM_IN);
deliveryRecordService.updateStatusByTaskName(DefaultNumberConstants.ONE_NUMBER, saveNumer, taskName); deliveryRecordService.updateStatusByTaskName(DefaultNumberConstants.ONE_NUMBER, saveNumer, taskName);
} }

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

Loading…
Cancel
Save