From 3a2ab089ac5bc64aed18fc2cb8d52ede7d287a35 Mon Sep 17 00:00:00 2001 From: bynt Date: Wed, 14 Jun 2023 18:18:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=80=BB=E8=BE=91=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/DeliveryRecordService.java | 1 - .../com/baiye/timed/DeliveryBalanceTask.java | 10 +++---- .../service/impl/DmpCallbackServiceImpl.java | 28 +++++++++++++------ 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/DeliveryRecordService.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/DeliveryRecordService.java index 0dbf9c71..acac39ca 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/DeliveryRecordService.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/DeliveryRecordService.java @@ -1,7 +1,6 @@ package com.baiye.modules.platform.service; import cn.hutool.core.date.DateTime; -import com.baiye.http.CommonResponse; import com.baiye.modules.platform.domain.DeliveryRecord; import com.baiye.modules.platform.service.dto.ImeiDTO; 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 7e7d7d26..bc7f6669 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 @@ -92,11 +92,12 @@ public class DeliveryBalanceTask { UserDto userInfo = userService.findUserInfo(userId); if (ObjectUtil.isNotNull(userInfo) && Boolean.TRUE.equals(userInfo.getEnabled()) - && ObjectUtil.isNotNull(channelCustom)) { + && ObjectUtil.isNotNull(channelCustom)) { Integer dmpLimitNum = channelCustom.getDmpLimitNum(); // 找出两天之内未兑换的数量 Integer number = deliveryRecordService.queryNumberByDateAndUser - (DateUtil.offsetDay(DateUtil.date(), DefaultNumberConstants.MINUS_TWO_NUMBER), DefaultNumberConstants.ZERO_NUMBER, userId); + (DateUtil.offsetDay(DateUtil.date(), DefaultNumberConstants.MINUS_TWO_NUMBER), + DefaultNumberConstants.ZERO_NUMBER, userId); // 判断剩余数量 if (ObjectUtil.isNull(channelCustom.getSurplusNum()) || ObjectUtil.isNull(dmpLimitNum) || channelCustom.getSurplusNum() - (number != null ? number : DefaultNumberConstants.ZERO_NUMBER) >> @@ -169,7 +170,7 @@ public class DeliveryBalanceTask { Long maxId = (long) DefaultNumberConstants.ZERO_NUMBER; // 接口最小20 邮件最小50 if (taskImeiList.size() >= (Boolean.TRUE.equals(typeResult) - ? DefaultNumberConstants.TWENTY_NUMBER : DefaultNumberConstants.FIFTY)) { + ? DefaultNumberConstants.FIFTY : DefaultNumberConstants.TWENTY_NUMBER)) { String fileUrl = deliveryProperties.getFileUrl(); Comparator comparing = Comparator.comparing(TaskImei::getId); // 最小id @@ -181,10 +182,9 @@ public class DeliveryBalanceTask { // 转换DTO List toList = Convert.toList(ImeiDTO.class, taskImeiList); String taskImeiName = redisUtils.acquisitionBatch(MailRequestEnum.BY.getCacheName()); - + CommonLog.info("兑换,当前tag值为".concat(toList.get(DefaultNumberConstants.ZERO_NUMBER).getTag())); if (Boolean.TRUE.equals(typeResult)) { String file = fileUrl.concat(StrPool.SLASH).concat(taskImeiName); - CommonLog.info("发送邮件,当前tag值为".concat(toList.get(DefaultNumberConstants.ZERO_NUMBER).getTag())); SendMailDTO sendMailDTO = FileAndMailUtil.zipFileAndSendDMPMail(toList, file, taskImeiName, deliveryProperties, DefaultNumberConstants.ONE_NUMBER); if (sendMailDTO.getSendResult().equals(Boolean.TRUE)) { // 保存发送记录 diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/DmpCallbackServiceImpl.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/DmpCallbackServiceImpl.java index 6e7e7151..e2d5b3d7 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/DmpCallbackServiceImpl.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/DmpCallbackServiceImpl.java @@ -42,6 +42,8 @@ import java.io.File; import java.util.List; import java.util.Objects; import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; /** @@ -53,6 +55,7 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class DmpCallbackServiceImpl implements DmpCallbackService { + private final Lock lock = new ReentrantLock(); private final RedisUtils redisUtils; @@ -100,17 +103,24 @@ public class DmpCallbackServiceImpl implements DmpCallbackService { List responseList = DecryptPnoUtil.decryptPhoneList(phoneList); // 剔除空值 responseList = responseList.stream().filter(StringUtils::isNotBlank).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(responseList)) { - log.info("=================== the responseList size as {} =====================", responseList.size()); - if (byTaskName.getType() == DefaultNumberConstants.ONE_NUMBER) { - saveClue(bathNo, byTaskName, taskId, tagList, responseList); + lock.lock(); + try { + if (CollUtil.isNotEmpty(responseList)) { + log.info("=================== the responseList size as {} ===================", responseList.size()); + // 判断类型 + if (byTaskName.getType() == DefaultNumberConstants.ONE_NUMBER) { + saveClue(bathNo, byTaskName, taskId, tagList, responseList); + } + if (byTaskName.getType() == DefaultNumberConstants.TWO_NUMBER) { + downResource(bathNo, byTaskName, originalList, responseList); + } } - if (byTaskName.getType() == DefaultNumberConstants.TWO_NUMBER) { - downResource(bathNo, byTaskName, originalList, responseList); + // 兑换结果失败也将结果返回 + if (byTaskName.getType() == DefaultNumberConstants.THREE_NUMBER) { + sendRequest(bathNo, tagList, responseList); } - } - if (byTaskName.getType() == DefaultNumberConstants.THREE_NUMBER) { - sendRequest(bathNo, tagList, responseList); + } finally { + lock.unlock(); } } return CommonResponse.createBySuccess(HttpStatus.SC_OK);