diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/AESUtils.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/AESUtils.java index 87cd4847..4fc244ff 100644 --- a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/AESUtils.java +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/AESUtils.java @@ -1,5 +1,6 @@ package com.baiye.util; +import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.crypto.symmetric.SymmetricAlgorithm; import cn.hutool.crypto.symmetric.SymmetricCrypto; import lombok.extern.slf4j.Slf4j; @@ -7,6 +8,7 @@ import lombok.extern.slf4j.Slf4j; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; +import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.security.SecureRandom; import java.util.Base64; @@ -27,6 +29,11 @@ public class AESUtils { */ private static final String ALGORITHM = "AES"; + /** + * Key + */ + private static final String HEX = "0123456789ABCDEF"; + /** * 随机数生成器(RNG)算法名称 */ @@ -134,9 +141,113 @@ public class AESUtils { } + /** + * AES加密 + */ + public static String dbEncrypt(String seed, String cleartext) { + byte[] rawKey = getRawKey(seed.getBytes()); + byte[] result = encrypt(rawKey, cleartext.getBytes()); + return toHex(result); + } + + /** + * AES解密 + */ + public static String dbDecrypt(String seed, String encrypted) { + try { + byte[] rawKey = getRawKey(seed.getBytes()); + byte[] enc = toByte(encrypted); + byte[] result = decrypt(rawKey, enc); + return new String(result); + } catch (Exception e) { + return CharSequenceUtil.EMPTY; + } + } + + private static byte[] getRawKey(byte[] seed) { + try { + KeyGenerator kgen = KeyGenerator.getInstance(ALGORITHM); + SecureRandom sr = SecureRandom.getInstance(RNG_ALGORITHM); + sr.setSeed(seed); + // 192 and 256 bits may not be available + kgen.init(256, sr); + SecretKey skey = kgen.generateKey(); + return skey.getEncoded(); + } catch (Exception e) { + return new byte[0]; + } + } + + + private static byte[] encrypt(byte[] raw, byte[] clear) { + try { + SecretKeySpec skeySpec = new SecretKeySpec(raw, ALGORITHM); + Cipher cipher = Cipher.getInstance(ALGORITHM); + cipher.init(Cipher.ENCRYPT_MODE, skeySpec); + return cipher.doFinal(clear); + } catch (Exception e) { + return new byte[0]; + } + } + + private static byte[] decrypt(byte[] raw, byte[] encrypted) { + SecretKeySpec skeSpec = new SecretKeySpec(raw, ALGORITHM); + try { + Cipher cipher = Cipher.getInstance(ALGORITHM); + cipher.init(Cipher.DECRYPT_MODE, skeSpec); + return cipher.doFinal(encrypted); + } catch (Exception e) { + return new byte[0]; + } + } + + public static String toHex(String txt) { + return toHex(txt.getBytes()); + } + + public static String fromHex(String hex) { + return new String(toByte(hex)); + } + + public static byte[] toByte(String hexString) { + int len = hexString.length() >> 1; + + byte[] result = new byte[len]; + for (int i = 0; i < len; i++) { + result[i] = Integer.valueOf(hexString.substring(2 * i, 2 * i + 2), 16).byteValue(); + } + return result; + } + + public static String toHex(byte[] buf) { + if (buf.length == 0) { + return CharSequenceUtil.EMPTY; + } + StringBuilder result = new StringBuilder(buf.length >> 1); + for (byte b : buf) { + appendHex(result, b); + } + return result.toString(); + } + + + private static void appendHex(StringBuilder sb, byte b) { + sb.append(HEX.charAt((b >> 4) & 0x0f)).append(HEX.charAt(b & 0x0f)); + } + public static void main(String[] args) { + // 密钥 + String key = "park_%33229*711&"; + + + // 要加密的字符串 + String txt = "18876533241"; + // 加密 + String txt_1 = dbEncrypt(key, txt); + + System.out.println(txt + "加密的内容为:" + txt_1); + System.out.println(txt_1 + "解密的内容为:" + dbDecrypt(key, txt_1)); + - System.out.println(AESUtils.encrypt("18876533241", "park_%33229*711&")); - System.out.println(AESUtils.encryptHex("18876533241", "park_%33229*711&")); } } diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CompressUtil.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CompressUtil.java index 7ef01cb5..ddaa1fce 100644 --- a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CompressUtil.java +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CompressUtil.java @@ -11,7 +11,6 @@ import org.apache.commons.lang3.StringUtils; import java.io.File; import java.util.ArrayList; -import java.util.List; /** * @author Enzo diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/RedisUtils.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/RedisUtils.java index 62543a5c..3961951f 100644 --- a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/RedisUtils.java +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/RedisUtils.java @@ -734,8 +734,8 @@ public class RedisUtils { // 保存批次号 set(cacheType.concat(format), batch, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS); String parameter = MailRequestEnum.find(cacheType).getType(); - return parameter.concat(StrPool.UNDERLINE). - concat(format).concat(StrPool.UNDERLINE).concat(String.valueOf(batch)); + return parameter.concat(StrPool.DASHED). + concat(format).concat(StrPool.DASHED).concat(String.valueOf(batch)); } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/Clue.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/Clue.java index a267d55c..0ea22b67 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/Clue.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/domain/Clue.java @@ -1,5 +1,6 @@ package com.baiye.modules.platform.domain; +import com.baiye.constant.DefaultNumberConstants; import com.baiye.model.entity.BaseClue; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -28,6 +29,11 @@ public class Clue extends BaseClue { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + + @ApiModelProperty(value = "性别") + @Column(name = "gender") + private Integer gender = DefaultNumberConstants.ZERO_NUMBER; + @ApiModelProperty(value = "线索分配人") @Transient private Long memberId; diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DeliveryRecordServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DeliveryRecordServiceImpl.java index 8f8a1577..869ca43a 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DeliveryRecordServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/DeliveryRecordServiceImpl.java @@ -27,7 +27,8 @@ public class DeliveryRecordServiceImpl implements DeliveryRecordService { private final DeliveryRecordRepository deliveryRecordRepository; @Override - public Long saveDeliveryRecord(String filePath, String taskName, Integer num, Long taskId, Long userId, Integer type, Integer exchangeType, Long downId) { + public Long saveDeliveryRecord(String filePath, String taskName, + Integer num, Long taskId, Long userId, Integer type, Integer exchangeType, Long downId) { DeliveryRecord deliveryRecord = new DeliveryRecord(); deliveryRecord.setNum(num); deliveryRecord.setType(type); 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 1af7e478..6ff990be 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 @@ -111,7 +111,7 @@ public class DownRecordServiceImpl implements DownRecordService { if (CollUtil.isNotEmpty(dtoList)) { // 去除重复数据 List dtoArrayList = Lists.newArrayList(Sets.newHashSet(dtoList)); - if (dtoArrayList.size() < DefaultNumberConstants.ONE_HUNDRED) { + if (dtoArrayList.size() < DefaultNumberConstants.FIFTY) { throw new BadRequestException(ResponseCode.SEND_MAIL_NUM_FRIEND.getDesc()); } // 传输方式 @@ -123,6 +123,7 @@ public class DownRecordServiceImpl implements DownRecordService { String uuid = IdUtil.fastSimpleUUID(); String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(uuid); String filePath = deliveryProperties.getDmpDownPath().concat(uuid).concat(FileConstant.ZIP_FILE_SUB_NAME); + // 只保存文件地址 String zipPath = FileAndMailUtil.zipFileAndSendDMPMail(dtoArrayList, file, null, deliveryProperties, DefaultNumberConstants.THREE_NUMBER); Long downId = this.createRecord(dtoArrayList.size(), "超级管理员", taskName, zipPath, filePath, DefaultNumberConstants.TWO_NUMBER); for (List list : partition) { 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 4567db7e..97b40d81 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 @@ -161,7 +161,7 @@ public class TaskImeiServiceImpl implements TaskImeiService { String zipPath = FileAndMailUtil.zipFileAndSendDMPMail (filterList, file, taskImeiDTO.getBatchNo(), deliveryProperties, DefaultNumberConstants.TWO_NUMBER); Long recordId = deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiDTO.getBatchNo(), dtoList.size(), - null, (long) DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.THREE_NUMBER, DefaultNumberConstants.TWO_NUMBER, null); + 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 df01d6e7..e0b82c63 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 @@ -189,7 +189,7 @@ public class DeliveryBalanceTask { String zipPath = FileAndMailUtil.zipFileAndSendDMPMail(toList, file, taskImeiName, deliveryProperties, DefaultNumberConstants.ONE_NUMBER); // 保存发送记录 deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiName, - taskImeiList.size(), taskId, userId, DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.TWO_NUMBER, null); + 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-pojo/src/main/java/com/baiye/model/entity/BaseClue.java b/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseClue.java index 5a20428e..5f5ffbb8 100644 --- a/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseClue.java +++ b/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseClue.java @@ -81,7 +81,5 @@ public class BaseClue implements Serializable { private Integer isEncryption = 0; - @ApiModelProperty(value = "性别") - @Column(name = "gender") - private Integer gender = DefaultNumberConstants.ZERO_NUMBER; + } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/config/properties/DeliveryProperties.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/config/properties/DeliveryProperties.java index 026f9a03..113034a6 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/config/properties/DeliveryProperties.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/config/properties/DeliveryProperties.java @@ -21,7 +21,6 @@ public class DeliveryProperties { private String fileUrl; - @ApiModelProperty("公钥") private String publicKey; diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/TaskImeiClientFallback.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/TaskImeiClientFallback.java index 12725892..212b878f 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/TaskImeiClientFallback.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/TaskImeiClientFallback.java @@ -1,11 +1,8 @@ package com.baiye.feign.fallback; import com.baiye.feign.TaskImeiClient; -import com.baiye.module.entity.OceanEngineToken; import org.springframework.http.ResponseEntity; -import java.util.List; - /** * @author jt */ diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/UserClientFallback.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/UserClientFallback.java index 0a6f60a0..afd0f423 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/UserClientFallback.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/UserClientFallback.java @@ -2,7 +2,6 @@ package com.baiye.feign.fallback; import com.baiye.feign.UserClient; import com.baiye.model.dto.UserDto; -import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import java.util.Map; diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueRepository.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueRepository.java index ba960205..21ae2bfb 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueRepository.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/dao/ClueRepository.java @@ -49,6 +49,6 @@ public interface ClueRepository extends JpaRepository, JpaSpecificat * @return */ @Modifying - @Query(value = "UPDATE Clue set gender = ?1 where nid = ?2") + @Query(value = "update tb_clue set gender = ?2 where nid = ?1",nativeQuery = true) Integer updateGenderByNid(String nid, Integer gender); } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/Clue.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/Clue.java index 7f72e9f6..ec186e7c 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/Clue.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/Clue.java @@ -1,5 +1,6 @@ package com.baiye.module.entity; +import com.baiye.constant.DefaultNumberConstants; import com.baiye.model.entity.BaseClue; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -23,6 +24,7 @@ import lombok.Data; @ApiModel(value = "Clue") public class Clue extends BaseClue { + @Id @ApiModelProperty(value = "线索表,主键id(自动递增)") @Column(name = "id") @@ -71,4 +73,9 @@ public class Clue extends BaseClue { @ApiModelProperty(value = "投流信息") private String castInfo; + + + @ApiModelProperty(value = "性别") + @Column(name = "gender") + private Integer gender = DefaultNumberConstants.ZERO_NUMBER; } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/DeliveryGender.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/DeliveryGender.java index f7111de5..2e6d5092 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/DeliveryGender.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/entity/DeliveryGender.java @@ -1,5 +1,6 @@ package com.baiye.module.entity; +import com.baiye.util.JpaConverterListJson; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -10,6 +11,7 @@ import org.hibernate.annotations.UpdateTimestamp; import javax.persistence.*; import java.io.Serializable; import java.sql.Timestamp; +import java.util.List; /** * @author Enzo @@ -44,6 +46,7 @@ public class DeliveryGender implements Serializable { @Column(name = "type") private Integer type; + @CreationTimestamp @Column(name = "create_time", updatable = false) private Timestamp createTime; @@ -52,5 +55,10 @@ public class DeliveryGender implements Serializable { @Column(name = "update_time") private Timestamp updateTime; + @Column(name = "task_num_str") + @ApiModelProperty(value = "tag") + @Convert(converter = JpaConverterListJson.class) + private List taskNumStr; + } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/GenderRecordService.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/GenderRecordService.java index 3a38a7d3..ff6219b4 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/GenderRecordService.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/GenderRecordService.java @@ -32,4 +32,11 @@ public interface GenderRecordService { * @return */ Boolean saveDeliveryRecord(String taskImeiName, Integer num, Integer type); + + /** + * 修改状态 + * @param taskName + * @return + */ + Boolean updateStatusByTaskName(DeliveryGender taskName); } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java index 84cb703c..9dc241da 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/ClueServiceImpl.java @@ -1124,7 +1124,8 @@ 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); + Integer integer = this.saveClueTalk + (phoneList, tagList, taskId, userId, num, data.getDeptId(), DefaultNumberConstants.ONE_NUMBER); saveNumber += integer; } } @@ -1224,6 +1225,7 @@ public class ClueServiceImpl implements ClueService { } @Override + @Transactional(rollbackFor = Exception.class) public Boolean updateGenderByZid(String nid, Integer gender) { return clueRepository.updateGenderByNid(nid, gender) > DefaultNumberConstants.ZERO_NUMBER; } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/GenderRecordServiceImpl.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/GenderRecordServiceImpl.java index af65e77b..def08e76 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/GenderRecordServiceImpl.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/GenderRecordServiceImpl.java @@ -50,4 +50,8 @@ public class GenderRecordServiceImpl implements GenderRecordService { return deliveryGenderRepository.save(deliveryRecord).getId() != null; } + @Override + public Boolean updateStatusByTaskName(DeliveryGender taskName) { + return deliveryGenderRepository.save(taskName).getId() != null; + } } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/UploadFileServiceImpl.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/UploadFileServiceImpl.java index 01339b34..29509679 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/UploadFileServiceImpl.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/UploadFileServiceImpl.java @@ -72,7 +72,7 @@ public class UploadFileServiceImpl implements UploadFileService { int lastIndexOf = name.lastIndexOf("."); String nameStr = name.substring(lastIndexOf); // 校验文件后缀名 - if (!((nameStr.equals(".xlsx") || nameStr.equals(".xls")))) { + if (!(nameStr.equals(".xlsx") || nameStr.equals(".xls"))) { throw new BadRequestException("文件格式错误! 请上传xlsx、xls格式"); } // 检测文件的内容格式 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 ec5771f5..6a9ee3a5 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 @@ -69,16 +69,16 @@ public class GenderConversionTask { Long lastId = list.get(list.size() - DefaultNumberConstants.ONE_NUMBER).getId(); // 去除重复并转换相应的格式 List stringList = list.stream().map - (source -> AESUtils.encryptHex(AESUtils.decrypt(source.getNid(), - AdPlatFormConstants.AD_PLATFORM), AdPlatFormConstants.AES_PASSWORD)) + (source -> AESUtils.dbEncrypt(AdPlatFormConstants.AES_PASSWORD, Objects.requireNonNull(AESUtils.decrypt(source.getNid(), + AdPlatFormConstants.AD_PLATFORM)))) .distinct().collect(Collectors.toList()); String taskImeiName = redisUtils.acquisitionBatch(MailRequestEnum.GG.getCacheName()); String file = fileUrl.concat(StrPool.SLASH).concat(taskImeiName); // 压缩文件并发送 FileAndGenderUtil.zipFileAndSendGenderMail(stringList, file, taskImeiName, deliveryProperties); - clueService.updateGenderById(DefaultNumberConstants.THREE_NUMBER, firstId, lastId); + clueService.updateGenderById(DefaultNumberConstants.FOUR_NUMBER, firstId, lastId); genderRecordService.saveDeliveryRecord(taskImeiName, list.size(), DefaultNumberConstants.ONE_NUMBER); - log.info("============== the save num as {} first id {} last id {} ================", list.size(), firstId, lastId); + log.info("============== the save num as {} first id {} last id {} ================", stringList.size(), firstId, lastId); } } @@ -89,8 +89,7 @@ public class GenderConversionTask { public void receiveMail() { // 获取邮件内容 List list = MailUtil.readMailByIMAP - (deliveryProperties.getEmailAddress(), deliveryProperties.getEmailPassword()); - + (deliveryProperties.getGenderEmailAddress(), deliveryProperties.getEmailPassword()); if (CollUtil.isNotEmpty(list)) { for (Message message : list) { // 获取未读的邮件内容 且与之对应 @@ -103,9 +102,12 @@ public class GenderConversionTask { } // 设置十分钟缓存 redisUtils.set(taskName, taskName, DefaultNumberConstants.TEN_NUMBER, TimeUnit.MINUTES); - DeliveryGender byTaskName = genderRecordService.findByTaskName(taskName); + String substring = taskName.substring(DefaultNumberConstants.ZERO_NUMBER, taskName.indexOf(StrPool.DASHED)); + DeliveryGender byTaskName = genderRecordService.findByTaskName(substring); if (ObjectUtil.isNotNull(byTaskName) - && byTaskName.getStatus() == DefaultNumberConstants.ZERO_NUMBER) { + && !byTaskName.getTaskNumStr().contains(taskName)) { + List taskNumStr = byTaskName.getTaskNumStr(); + taskNumStr.add(taskName); log.info("================ the gender mail taskName as {} ==============", taskName); List zidList = Lists.newArrayList(); List genderList = Lists.newArrayList(); @@ -125,22 +127,23 @@ public class GenderConversionTask { CsvData data = reader.read(parseFile); // csv通配 data.getRows().forEach(clue -> { - zidList.add(AESUtils.decryptStr - (clue.get(DefaultNumberConstants.ZERO_NUMBER), AdPlatFormConstants.AES_PASSWORD)); + zidList.add(AESUtils.dbDecrypt + (AdPlatFormConstants.AES_PASSWORD, clue.get(DefaultNumberConstants.ZERO_NUMBER))); genderList.add(clue.get(DefaultNumberConstants.ONE_NUMBER)); }); for (int i = 0; i < zidList.size(); i++) { String genderType = genderList.get(i); - String letterToNum = ConversionUtil.letterToNum(zidList.get(i)); + String letterToNum = zidList.get(i); if (MobileUtil.checkPhone(letterToNum)) { // 修改gender - clueService.updateGenderByZid(AESUtils.decrypt + clueService.updateGenderByZid(AESUtils.encrypt (letterToNum, AdPlatFormConstants.AD_PLATFORM), ValidationUtil.isInteger(genderType) - ? Integer.parseInt(genderType) + DefaultNumberConstants.ONE_NUMBER : DefaultNumberConstants.FIVE_NUMBER); + ? Integer.parseInt(genderType) + DefaultNumberConstants.ONE_NUMBER : DefaultNumberConstants.FOUR_NUMBER); } } - genderRecordService.updateStatusByTaskName(DefaultNumberConstants.ONE_NUMBER, taskName); + byTaskName.setStatus(DefaultNumberConstants.ONE_NUMBER); + genderRecordService.updateStatusByTaskName(byTaskName); } } } diff --git a/ad-platform-services/ad-platform-source/src/main/resources/application-test.yml b/ad-platform-services/ad-platform-source/src/main/resources/application-test.yml index e36bf95e..af9c5283 100644 --- a/ad-platform-services/ad-platform-source/src/main/resources/application-test.yml +++ b/ad-platform-services/ad-platform-source/src/main/resources/application-test.yml @@ -83,8 +83,13 @@ platform: zipPassword: DB2022hjk213v1... exchangePassword: DA2023xlb213v1. fileUrl: /home/eladmin/mail - emailAddress: lambda0821@outlook.com - emailPassword: baiye123456789 + emailAddress: ensoze@outlook.com + genderEmailAddress: ensoze2023@outlook.com + emailPassword: baiye2022 customerId: QISX0xz4l6fR3YL2sUNSpzM2 - toEmailAddress: ensoze@outlook.com + toEmailAddress: lambda0821@outlook.com + toGenderEmailAddress: ggggod_2022@outlook.com dmpDownPath: http://8.130.96.163:8001/dmp/down/ + privateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJi+nz0zudS+4Sh+SmTnRfzgJOBIEwlLlJhcRgUbInvFx03zUgdzOUrGsvD2OTPPssnY8dv+Zgz2kUSEDYaWWKUs+VAklVOo0sOxzRMaUfwHRBN3Eq9OkqibDerYf6WUdv1k1BJsXSIdTlz8m6rtVbPF2hz8x/kYyJFzhM2IKTITAgMBAAECgYAgTZAXvWy7lXLAwZSyKkce57hkxllgSd+vKTSVt9tfGcDAt4jNkoy3R7ZoR2ppjq9dCMh9ohuq+ipWtya1I+6zC5sflk9HI/rf+5bq3JRJvxq3EJYe5DlSjQitLUMRP6PQorHnZZj/bdqKgRvrulI8XtK5Fv9Cd4jhkbSZtzgpYQJBAOJu0nu4qJCqIYLCmFWDpRzi9cu8/TFCBLVDH0xhNi28JL6G8xOfdzxsQa8ZlLOxPwn56VbS3+Korq34WCOAG5cCQQCssI4I7dshlA7kXeurVSFvui1YV/7ofFOxRs019+V88tfwNby5TAS9YjX7AuvGkobjpBBNEkE0JExf69m6VBzlAkB5te4HuLNKx1gp7CVr2c43n7tVHynNf1n+gKzjJmGz5ayuiOVBx/aUkPAhiZOHnx9uYlnNZJ4ZPGhgdNwTgPnTAkB61pQSMe/AMOtu8ogjNck1CoAa6W0/vsBhx/VNQGsTuEJ2ciMuw65TcLrpNKi2daBR6XBXAnczOebCDKix7AcpAkEArrU+bx6GwR+UbgoNAl1KwFLrV50pasK7Mlp0BkHM0cz4BGB53O5ng+TJHzen03OgC9I1W1WFAYHj03lb84qM/w== + publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYvp89M7nUvuEofkpk50X84CTgSBMJS5SYXEYFGyJ7xcdN81IHczlKxrLw9jkzz7LJ2PHb/mYM9pFEhA2GllilLPlQJJVTqNLDsc0TGlH8B0QTdxKvTpKomw3q2H+llHb9ZNQSbF0iHU5c/Juq7VWzxdoc/Mf5GMiRc4TNiCkyEwIDAQAB +