diff --git a/ad-platform-common/ad-platform-common-core/pom.xml b/ad-platform-common/ad-platform-common-core/pom.xml index 4321618b..bdeb4006 100644 --- a/ad-platform-common/ad-platform-common-core/pom.xml +++ b/ad-platform-common/ad-platform-common-core/pom.xml @@ -119,10 +119,12 @@ - javax.mail - mail + com.sun.mail + javax.mail + ${mail.version} + net.lingala.zip4j zip4j diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CacheKey.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CacheKey.java index 6291b1df..55641062 100644 --- a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CacheKey.java +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CacheKey.java @@ -61,5 +61,5 @@ public interface CacheKey { /** * dmp请求批次 */ - String DMP_REQUEST_ID = "dmp::request::id"; + String DMP_REQUEST_ID = "dmp::request::"; } diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/EncryptUtil.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/EncryptUtil.java index 7a20a1f0..82e1ce22 100644 --- a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/EncryptUtil.java +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/EncryptUtil.java @@ -146,7 +146,7 @@ public class EncryptUtil { return new String(cipher.doFinal(Objects.requireNonNull(parseHexStr2Byte(res)))); } } catch (Exception e) { - log.error("++++++++++++++++++ the keyGeneratorES error +++++++++++++++"); + log.error("++++++++++++++++++ the keyGeneratorES error res as {} key as {} +++++++++++++++", res, key); } return null; } diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/MailUtil.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/MailUtil.java index a8575238..91551b39 100644 --- a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/MailUtil.java +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/MailUtil.java @@ -133,17 +133,29 @@ public class MailUtil { // 1. 创建参数配置, 用于连接邮件服务器的参数配置 // 参数配置 Properties props = new Properties(); - // 使用的协议(JavaMail规范要求) - props.setProperty("mail.transport.protocol", "smtp"); + + // 端口 + props.put("mail.smtp.port", "587"); + // 发件人的邮箱的 SMTP 服务器地址 - props.setProperty("mail.smtp.host", "smtp.office365.com"); + props.put("mail.smtp.host", "smtp.office365.com"); + + // 当前smtp host设为可信任 否则抛出javax.mail.MessagingException: Could not convert socket to TLS + props.put("mail.smtp.ssl.trust", "smtp.office365.com"); + + // 使用的协议(JavaMail规范要求) + props.put("mail.transport.protocol", "smtp"); + // 需要请求认证 - props.setProperty("mail.smtp.auth", "true"); + props.put("mail.smtp.auth", "true"); + // 开启STARTTLS - props.setProperty("mail.smtp.starttls.enable", "true"); + props.put("mail.smtp.starttls.enable", "true"); - // 开启 SSL 连接, 以及更详细的发送步骤请看上一篇: 基于 JavaMail 的 Java 邮件发送:简单邮件发送 + // ssl + props.put("mail.smtp.ssl", "true"); + // 开启 SSL 连接, 以及更详细的发送步骤请看上一篇: 基于 JavaMail 的 Java 邮件发送:简单邮件发送 // 2. 根据配置创建会话对象, 用于和邮件服务器交互 Session session = Session.getInstance(props); // 设置为debug模式, 可以查看详细的发送 log @@ -165,7 +177,7 @@ public class MailUtil { // 7. 关闭连接 transport.close(); } catch (Exception ex) { - ex.printStackTrace(); + log.error("===================== send message error {} ==========================", ex.getMessage()); } } diff --git a/manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java b/manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java index 8d97bbf5..48291ddb 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java @@ -93,10 +93,11 @@ public class DeliveryBalanceTask { continue; } String fileUrl = deliveryProperties.getFileUrl(); - Integer num = (Integer) redisUtils.get(CacheKey.DMP_REQUEST_ID); + String format = DateUtil.format(DateUtil.date(), DatePattern.PURE_DATE_PATTERN); + Integer num = (Integer) redisUtils.get(CacheKey.DMP_REQUEST_ID.concat(format)); // 转换DTO List toList = Convert.toList(ImeiDTO.class, taskImeiList); - String format = DateUtil.format(DateUtil.date(), DatePattern.PURE_DATE_PATTERN); + Integer batch = ObjectUtil.isNull(num) ? DefaultNumberConstants.ONE_NUMBER : num + DefaultNumberConstants.ONE_NUMBER; String taskImeiName = "BY".concat(StrPool.UNDERLINE).concat(format).concat(StrPool.UNDERLINE).concat(String.valueOf(batch)); @@ -113,16 +114,16 @@ public class DeliveryBalanceTask { deliveryProperties.getEmailPassword(), deliveryProperties.getToEmailAddress(), zipPath, taskImeiName); // 保存批次号 - redisUtils.set(CacheKey.DMP_REQUEST_ID, batch, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS); + redisUtils.set(CacheKey.DMP_REQUEST_ID.concat(format), batch, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS); // 修改状态 修改余额 taskImeiService.updateBath(taskId, taskImeiName, DefaultNumberConstants.ONE_NUMBER); deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiName, taskImeiList.size(), taskId, userId); companyService.updateUserBalanceByCompanyId(sub.doubleValue(), companyByUserId.getId()); // 删除文件 - FileUtil.del(csvPath); - FileUtil.del(zipPath); - log.info("=========================== the csv path as {}, zip path as {} ========================", csvPath, zipPath); + boolean csvResult = FileUtil.del(csvPath); + boolean zipResult = FileUtil.del(zipPath); + log.info("=========================== the csv path as {}, zip path as {} csvResult as {} zipResult as {} ========================", csvPath, zipPath, csvResult, zipResult); } } } diff --git a/pom.xml b/pom.xml index 75c22380..797b61f6 100644 --- a/pom.xml +++ b/pom.xml @@ -31,8 +31,8 @@ 3.9.0 - 1.4 4.0.0 + 1.6.2 5.7.1 23.0 5.23 @@ -244,8 +244,8 @@ - javax.mail - mail + com.sun.mail + javax.mail ${mail.version} diff --git a/services/ad-platform-source/src/main/java/com/baiye/module/service/ClueService.java b/services/ad-platform-source/src/main/java/com/baiye/module/service/ClueService.java index 0f560e56..0656f960 100644 --- a/services/ad-platform-source/src/main/java/com/baiye/module/service/ClueService.java +++ b/services/ad-platform-source/src/main/java/com/baiye/module/service/ClueService.java @@ -251,12 +251,13 @@ public interface ClueService { /** * 保存线索 * + * @param tagList * @param phoneList * @param taskId * @param userId * @param num */ - void saveClue(List phoneList, Long taskId, Long userId, Integer num); + void saveClue(List tagList, List phoneList, Long taskId, Long userId, Integer num); /** * 将拓客的线索回流到crm diff --git a/services/ad-platform-source/src/main/java/com/baiye/module/service/dto/MailDTO.java b/services/ad-platform-source/src/main/java/com/baiye/module/service/dto/MailDTO.java index 97d03bdc..849532c5 100644 --- a/services/ad-platform-source/src/main/java/com/baiye/module/service/dto/MailDTO.java +++ b/services/ad-platform-source/src/main/java/com/baiye/module/service/dto/MailDTO.java @@ -1,5 +1,6 @@ package com.baiye.module.service.dto; +import cn.hutool.core.annotation.Alias; import lombok.Data; /** @@ -8,6 +9,12 @@ import lombok.Data; */ @Data public class MailDTO { - private String imei; + @Alias("phone") + private String phone; + @Alias("tag") private String tag; + @Alias("corp") + private String corp; + @Alias("decryptInfo") + private String decryptInfo; } diff --git a/services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java b/services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java index dd79541a..8450ad2d 100644 --- a/services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java +++ b/services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java @@ -977,15 +977,16 @@ public class ClueServiceImpl implements ClueService { @Override - public void saveClue(List phoneList, Long taskId, Long userId, Integer num) { + public void saveClue(List tagList, List phoneList, Long taskId, Long userId, Integer num) { if (CollUtil.isNotEmpty(phoneList)) { - for (String phone : phoneList) { + for (int i = 0; i < phoneList.size(); i++) { + String phone = phoneList.get(i); if (StringUtils.isNotBlank(phone)) { - boolean bool = MobileUtil.checkPhone(phone); - if (bool) { + if (MobileUtil.checkPhone(phone)) { Clue clue = new Clue(); clue.setNid(phone); clue.setCreateBy(userId); + clue.setCastInfo(tagList.get(i)); clue.setOrigin(DefaultNumberConstants.FIVE_NUMBER); Clue save = clueRepository.save(clue); ClueMiddle clueMiddle = new ClueMiddle(); diff --git a/services/ad-platform-source/src/main/java/com/baiye/task/MailSourceTask.java b/services/ad-platform-source/src/main/java/com/baiye/task/MailSourceTask.java index d2cc8099..81da5d7b 100644 --- a/services/ad-platform-source/src/main/java/com/baiye/task/MailSourceTask.java +++ b/services/ad-platform-source/src/main/java/com/baiye/task/MailSourceTask.java @@ -1,11 +1,8 @@ package com.baiye.task; -import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.collection.ListUtil; 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; @@ -18,16 +15,11 @@ import com.baiye.module.entity.DeliveryRecord; import com.baiye.module.entity.Task; import com.baiye.module.service.ClueService; import com.baiye.module.service.DeliveryRecordService; -import com.baiye.module.service.dto.SecretResponseBean; import com.baiye.util.CompressUtil; -import com.baiye.util.DecryptPnoUtil; import com.baiye.util.MailUtil; -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; 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; @@ -67,11 +59,11 @@ public class MailSourceTask { try { for (Message message : list) { // 获取邮件的状态 - Flags flags = message.getFlags(); + /* Flags flags = message.getFlags(); + !flags.contains(Flags.Flag.SEEN) &&*/ // 获取未读的邮件内容 且与之对应 - if (!flags.contains(Flags.Flag.SEEN) && - deliveryProperties.getToEmailAddress().equalsIgnoreCase - (MailUtil.getFrom((MimeMessage) message))) { + if (deliveryProperties.getToEmailAddress().equalsIgnoreCase + (MailUtil.getFrom((MimeMessage) message))) { String taskName = message.getSubject(); // 内容获取发送请求 DeliveryRecord byTaskName = deliveryRecordService.findByTaskName(taskName); @@ -80,8 +72,8 @@ public class MailSourceTask { Task task = new Task(); Long taskId = byTaskName.getTaskId(); CsvReader reader = CsvUtil.getReader(); + List tagList = Lists.newArrayList(); List phoneList = Lists.newArrayList(); - List decryptionList = Lists.newArrayList(); // 解析附件内容并保存文件 String path = MailUtil.saveAttachMent (message, deliveryProperties.getFileUrl()); @@ -94,21 +86,13 @@ public class MailSourceTask { (file.listFiles())[DefaultNumberConstants.ZERO_NUMBER]; // 解析文件 CsvData data = reader.read(parseFile); + data.getRows().forEach(clue -> tagList.add + (clue.get(DefaultNumberConstants.ONE_NUMBER))); - data.getRows().forEach(clue -> decryptionList.add - (clue.get(DefaultNumberConstants.ZERO_NUMBER))); - List> partitions = ListUtil.partition - (decryptionList, DefaultNumberConstants.TWO_HUNDRED); - for (List partition : partitions) { - String join = Joiner.on(StrPool.COMMA).join(partition); - SecretResponseBean responseBean - = DecryptPnoUtil.batchDecryptPno(Base64.encode - (StringUtils.substringBeforeLast(join, StrPool.COMMA))); - String phoneStr = Base64.decodeStr(responseBean.getTels()); - phoneList.addAll(Splitter.on(StrPool.COMMA).splitToList(phoneStr)); - } + data.getRows().forEach(clue -> phoneList.add + (clue.get(DefaultNumberConstants.THREE_NUMBER))); // 将imei转为线索 - clueService.saveClue(phoneList, byTaskName.getTaskId(), + clueService.saveClue(tagList, phoneList, byTaskName.getTaskId(), byTaskName.getUserId(), DefaultNumberConstants.FOUR_NUMBER); // 修改任务总条数 Integer taskNum = clueService.findTaskNum(taskId);