diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/dto/BuildDTO.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/dto/BuildDTO.java new file mode 100644 index 00000000..3af5430d --- /dev/null +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/dto/BuildDTO.java @@ -0,0 +1,20 @@ +package com.baiye.modules.platform.service.dto; + +import lombok.Builder; +import lombok.Data; + +/** + * @author Enzo + * @date : 2024/1/25 + */ +@Data +@Builder +public class BuildDTO { + + private String tag; + + + private String nid; + + +} diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/ModelRecordServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/ModelRecordServiceImpl.java index 5f7ff198..c8e09387 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/ModelRecordServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/ModelRecordServiceImpl.java @@ -18,6 +18,7 @@ import com.baiye.modules.platform.domain.ModeRecord; import com.baiye.modules.platform.repository.ModeRecordRepository; import com.baiye.modules.platform.service.DeliveryRecordService; import com.baiye.modules.platform.service.ModeRecordService; +import com.baiye.modules.platform.service.dto.BuildDTO; import com.baiye.modules.platform.service.dto.ImeiDTO; import com.baiye.modules.platform.service.dto.ModeRecordQueryCriteria; import com.baiye.modules.platform.service.dto.ModelRecordDto; @@ -167,13 +168,14 @@ public class ModelRecordServiceImpl implements ModeRecordService { @SneakyThrows @Transactional(rollbackFor = Exception.class) public Boolean sendDataByActNameAndActId(List ids, String actName, String actId) { - List stringList = Lists.newArrayList(); + List buildList = Lists.newArrayList(); for (Long id : ids) { ModeRecord downRecord = modeRecordRepository.findById(id).orElseGet(ModeRecord::new); if (ObjectUtil.isNull(downRecord) || downRecord.getRecordStatus() != DefaultNumberConstants.ONE_NUMBER) { throw new BadRequestException("该批次暂不能建模!"); } + String tagStr = downRecord.getTagStr(); // 解压文件 String unzipPath = CompressUtil.unzipFiles (deliveryProperties.getFileUrl(), downRecord.getUploadPath(), deliveryProperties.getZipPassword()); @@ -183,16 +185,19 @@ public class ModelRecordServiceImpl implements ModeRecordService { CsvReader reader = CsvUtil.getReader(); CsvData data = reader.read(parseFile); // csv通配 - data.getRows().forEach(str -> stringList.add(str.size() > - DefaultNumberConstants.THREE_NUMBER ? str.get(DefaultNumberConstants.TWO_NUMBER) - : str.get(DefaultNumberConstants.ZERO_NUMBER))); + data.getRows().forEach(str -> { + BuildDTO build = BuildDTO.builder().nid(str.size() > + DefaultNumberConstants.THREE_NUMBER ? str.get(DefaultNumberConstants.TWO_NUMBER) + : str.get(DefaultNumberConstants.ZERO_NUMBER)).tag(tagStr).build(); + buildList.add(build); + }); cn.hutool.core.io.FileUtil.del(unzipPath); // 修改状态 modeRecordRepository.updateStatusById(DefaultNumberConstants.TWO_NUMBER, id); } - decryptTask.doRunSendTask(stringList, ids, actId, actName); + decryptTask.doRunSendTask(buildList, ids, actId, actName); // 调用异步任务 - log.info("============= the request str list {} =============", stringList.size()); + log.info("============= the request str list {} =============", buildList.size()); return Boolean.TRUE; } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/CallImportDTO.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/CallImportDTO.java index bd692d46..8881f3a4 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/CallImportDTO.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/telemarkting/entity/dto/CallImportDTO.java @@ -47,5 +47,29 @@ public class CallImportDTO { * 线索标识码 (例如:活动名+用户民+随机码) */ private String variable; + + + private List variableList; + } + + + @Getter + @Setter + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Variable { + /** + * 字段名称 + */ + private String field; + + /** + * 值 + */ + private String value; + + + } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DecryptTask.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DecryptTask.java index 4098c08c..35cfdefe 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DecryptTask.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DecryptTask.java @@ -15,6 +15,7 @@ import com.baiye.constant.FileConstant; import com.baiye.constant.SecurityConstants; import com.baiye.modules.platform.httpRequest.DecryptionJsonRequest; import com.baiye.modules.platform.repository.ModeRecordRepository; +import com.baiye.modules.platform.service.dto.BuildDTO; import com.baiye.modules.platform.service.dto.DecryptionDTO; import com.baiye.modules.platform.service.dto.ImeiDTO; import com.baiye.modules.telemarkting.entity.dto.CallImportDTO; @@ -35,6 +36,7 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StopWatch; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; @@ -147,20 +149,26 @@ public class DecryptTask { @Async(value = "WorkExecutor") @Transactional(rollbackFor = Exception.class) - public void doRunSendTask(List stringList, List ids, String actId, String actName) { + public void doRunSendTask(List stringList, List ids, String actId, String actName) { log.info("================== run task begin time {} ==================", DateUtil.now()); int count = DefaultNumberConstants.ZERO_NUMBER; - List> partition = Lists.partition(stringList, DefaultNumberConstants.ONE_THOUSAND); + List> partition = Lists.partition(stringList, DefaultNumberConstants.ONE_THOUSAND); // 调用推送地址进行推送 CallImportDTO dto = new CallImportDTO(); dto.setActId(actId); dto.setActName(actName); - for (List list : partition) { + for (List list : partition) { try { List sendClientList = Lists.newArrayList(); list.forEach(str -> { + List variableList = Lists.newArrayList(); CallImportDTO.Source client = new CallImportDTO.Source(); - client.setCellphone(str); + CallImportDTO.Variable variable = + CallImportDTO.Variable.builder().field + (str.getTag()).value(str.getTag()).build(); + variableList.add(variable); + client.setCellphone(str.getNid()); + client.setVariableList(variableList); sendClientList.add(client); }); dto.setClientList(sendClientList);