diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DownRecordServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DownRecordServiceImpl.java index 9f16201f..4626b100 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DownRecordServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DownRecordServiceImpl.java @@ -16,6 +16,7 @@ import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.FileConstant; import com.baiye.enums.MailRequestEnum; import com.baiye.exception.BadRequestException; +import com.baiye.model.dto.wechat.SendMailDTO; import com.baiye.model.enums.ResponseCode; import com.baiye.modules.platform.domain.DownRecord; import com.baiye.modules.platform.repository.DownRecordRepository; @@ -145,10 +146,10 @@ public class DownRecordServiceImpl implements DownRecordService { String uuid = IdUtil.fastSimpleUUID(); String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(uuid); String taskImeiName = redisUtils.acquisitionBatch(MailRequestEnum.MM.getCacheName()); - String zipPath = FileAndMailUtil.zipFileAndSendDMPMail(list, file, taskImeiName, deliveryProperties, DefaultNumberConstants.TWO_NUMBER); + SendMailDTO sendMailDTO = FileAndMailUtil.zipFileAndSendDMPMail(list, file, taskImeiName, deliveryProperties, DefaultNumberConstants.TWO_NUMBER); String filePath = deliveryProperties.getDmpDownPath().concat(uuid).concat(FileConstant.ZIP_FILE_SUB_NAME); - Long downId = this.createRecord(list.size(), "超级管理员", taskName, zipPath, filePath, DefaultNumberConstants.TWO_NUMBER); - deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiName, list.size(), null, + Long downId = this.createRecord(list.size(), "超级管理员", taskName, sendMailDTO.getZipPath(), filePath, DefaultNumberConstants.TWO_NUMBER); + deliveryRecordService.saveDeliveryRecord(sendMailDTO.getZipPath(), taskImeiName, list.size(), null, SecurityUtils.getCurrentUserId(), DefaultNumberConstants.TWO_NUMBER, DefaultNumberConstants.ONE_NUMBER, downId); } return Boolean.TRUE; diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/TaskImeiServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/TaskImeiServiceImpl.java index b76b9615..0be01b91 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/TaskImeiServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/TaskImeiServiceImpl.java @@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil; import com.baiye.config.properties.DeliveryProperties; import com.baiye.constant.DefaultNumberConstants; import com.baiye.http.CommonResponse; +import com.baiye.model.dto.wechat.SendMailDTO; import com.baiye.model.enums.ResponseCode; import com.baiye.modules.platform.domain.DeliveryRecord; @@ -156,9 +157,9 @@ public class TaskImeiServiceImpl implements TaskImeiService { return CommonResponse.createBySuccess(DefaultNumberConstants.TWO_HUNDRED); } String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(taskImeiDTO.getBatchNo()); - String zipPath = FileAndMailUtil.zipFileAndSendDMPMail + SendMailDTO sendMailDTO = FileAndMailUtil.zipFileAndSendDMPMail (filterList, file, taskImeiDTO.getBatchNo(), deliveryProperties, DefaultNumberConstants.TWO_NUMBER); - Long recordId = deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiDTO.getBatchNo(), dtoList.size(), + Long recordId = deliveryRecordService.saveDeliveryRecord(sendMailDTO.getZipPath(), taskImeiDTO.getBatchNo(), dtoList.size(), null, (long) DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.THREE_NUMBER, DefaultNumberConstants.ONE_NUMBER, null); // 缓存三天 redisUtils.set(CacheKey.UPLOAD_BATCH.concat(taskImeiDTO.getBatchNo()), recordId, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS); diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java index 221c0fcb..326bb05b 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java @@ -14,6 +14,7 @@ import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.FileConstant; import com.baiye.model.dto.UserDto; import com.baiye.enums.MailRequestEnum; +import com.baiye.model.dto.wechat.SendMailDTO; import com.baiye.modules.agent.entity.ChannelCustom; import com.baiye.modules.agent.service.CustomManageService; import com.baiye.modules.platform.domain.TaskImei; @@ -71,8 +72,9 @@ public class DeliveryBalanceTask { /** * 修改时间 为8点至21点 * date: 2023-5-9 change to mail or interface + * */ - @Scheduled(cron = "0 0/15 8-21 * * ? ") + @Scheduled(cron = "0 0/15 * * * ? ") @Transactional(rollbackFor = Exception.class) public void cashResources() { // 查询所有未兑换的 @@ -191,12 +193,14 @@ public class DeliveryBalanceTask { } String file = fileUrl.concat(StrPool.SLASH).concat(taskImeiName); CommonLog.info("发送邮件,当前tag值为".concat(toList.get(DefaultNumberConstants.ZERO_NUMBER).getTag())); - String zipPath = FileAndMailUtil.zipFileAndSendDMPMail(toList, file, taskImeiName, deliveryProperties, DefaultNumberConstants.ONE_NUMBER); - // 保存发送记录 - deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiName, - taskImeiList.size(), taskId, userId, DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.ONE_NUMBER, null); - // 批次修改状态 - taskImeiService.updateBath(taskId, CharSequenceUtil.EMPTY, DefaultNumberConstants.ONE_NUMBER, minId, maxId); + SendMailDTO sendMailDTO = FileAndMailUtil.zipFileAndSendDMPMail(toList, file, taskImeiName, deliveryProperties, DefaultNumberConstants.ONE_NUMBER); + if (sendMailDTO.getSendResult().equals(Boolean.TRUE)) { + // 保存发送记录 + deliveryRecordService.saveDeliveryRecord(sendMailDTO.getZipPath(), taskImeiName, + taskImeiList.size(), taskId, userId, DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.ONE_NUMBER, null); + // 批次修改状态 + taskImeiService.updateBath(taskId, CharSequenceUtil.EMPTY, DefaultNumberConstants.ONE_NUMBER, minId, maxId); + } } } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/FileAndMailUtil.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/FileAndMailUtil.java index 7a8996d1..74c5530e 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/FileAndMailUtil.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/FileAndMailUtil.java @@ -7,6 +7,7 @@ import com.baiye.config.properties.DeliveryProperties; import com.baiye.constant.AdPlatFormConstants; import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.FileConstant; +import com.baiye.model.dto.wechat.SendMailDTO; import com.baiye.modules.platform.service.dto.ImeiDTO; import lombok.extern.slf4j.Slf4j; @@ -23,7 +24,8 @@ public class FileAndMailUtil { } - public static String zipFileAndSendDMPMail(List list, String file, String taskImeiName, DeliveryProperties deliveryProperties, Integer type) { + public static SendMailDTO zipFileAndSendDMPMail(List list, String file, String taskImeiName, DeliveryProperties deliveryProperties, Integer type) { + SendMailDTO sendMailDTO = SendMailDTO.builder().build(); // 保存文件 String csvPath = file.concat(StrPool.DOT).concat(FileConstant.CSV_FILE_SUB_NAME); CSVFileUtil.createCsvFile(list, csvPath); @@ -34,8 +36,9 @@ public class FileAndMailUtil { if (ObjectUtil.isNotNull(type) && type < DefaultNumberConstants.THREE_NUMBER) { // 发送邮件 - MailUtil.sendMail(deliveryProperties.getEmailAddress(), + Boolean aBoolean = MailUtil.sendMail(deliveryProperties.getEmailAddress(), deliveryProperties.getEmailPassword(), deliveryProperties.getToEmailAddress(), zipPath, taskImeiName); + sendMailDTO.setSendResult(aBoolean); // 删除文件 if (type < DefaultNumberConstants.TWO_NUMBER) { boolean zipResult = FileUtil.del(zipPath); @@ -43,7 +46,8 @@ public class FileAndMailUtil { log.info("=========================== the csv path as {}, zip path as {} csvResult as {} zipResult as {} ========================", csvPath, zipPath, csvResult, zipResult); } } - return zipPath; + sendMailDTO.setZipPath(zipPath); + return sendMailDTO; } public static String zipFile(List list, String file, DeliveryProperties deliveryProperties) { diff --git a/ad-platform-pojo/src/main/java/com/baiye/model/dto/wechat/SendMailDTO.java b/ad-platform-pojo/src/main/java/com/baiye/model/dto/wechat/SendMailDTO.java new file mode 100644 index 00000000..f54e6077 --- /dev/null +++ b/ad-platform-pojo/src/main/java/com/baiye/model/dto/wechat/SendMailDTO.java @@ -0,0 +1,16 @@ +package com.baiye.model.dto.wechat; + +import lombok.Builder; +import lombok.Data; + +/** + * @author Enzo + * @date : 2023/5/29 + */ +@Data +@Builder +public class SendMailDTO { + private String zipPath; + + private Boolean sendResult; +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/GenderConversionTask.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/GenderConversionTask.java index 6a9ee3a5..d9f9131e 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/GenderConversionTask.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/GenderConversionTask.java @@ -20,6 +20,7 @@ import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -68,7 +69,7 @@ public class GenderConversionTask { // 最后一个id Long lastId = list.get(list.size() - DefaultNumberConstants.ONE_NUMBER).getId(); // 去除重复并转换相应的格式 - List stringList = list.stream().map + List stringList = list.stream().filter(source -> StringUtils.isNotBlank(source.getNid())).map (source -> AESUtils.dbEncrypt(AdPlatFormConstants.AES_PASSWORD, Objects.requireNonNull(AESUtils.decrypt(source.getNid(), AdPlatFormConstants.AD_PLATFORM)))) .distinct().collect(Collectors.toList()); @@ -102,7 +103,7 @@ public class GenderConversionTask { } // 设置十分钟缓存 redisUtils.set(taskName, taskName, DefaultNumberConstants.TEN_NUMBER, TimeUnit.MINUTES); - String substring = taskName.substring(DefaultNumberConstants.ZERO_NUMBER, taskName.indexOf(StrPool.DASHED)); + String substring = taskName.substring(DefaultNumberConstants.ZERO_NUMBER, taskName.lastIndexOf(StrPool.DASHED)); DeliveryGender byTaskName = genderRecordService.findByTaskName(substring); if (ObjectUtil.isNotNull(byTaskName) && !byTaskName.getTaskNumStr().contains(taskName)) {