From 048df55f4cadeb9aba7034b8d6361d4ec7a20d9b Mon Sep 17 00:00:00 2001 From: bynt Date: Sat, 22 Oct 2022 16:27:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adcallback/api/common/CommonResponse.java | 2 + .../config/pojo/PlatformTransmitDTO.java | 2 + .../TbPlatformDeliveryEntityRepository.java | 2 +- .../impl/AdPlatformDeliveryServiceImpl.java | 2 - .../adcallback/task/PlatFormRecordTask.java | 47 ++++++++++++++----- src/main/resources/application-dev.yml | 2 +- src/main/resources/application-prod.yml | 2 +- 7 files changed, 42 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/baiyee/adcallback/api/common/CommonResponse.java b/src/main/java/com/baiyee/adcallback/api/common/CommonResponse.java index 00c0a1a..5d3e4b3 100644 --- a/src/main/java/com/baiyee/adcallback/api/common/CommonResponse.java +++ b/src/main/java/com/baiyee/adcallback/api/common/CommonResponse.java @@ -21,6 +21,8 @@ import java.io.Serializable; @NoArgsConstructor public class CommonResponse implements Serializable { + private static final long serialVersionUID = -1315844701090296837L; + /** * 成功还是失败的状态标识 0,成功 1,失败 */ diff --git a/src/main/java/com/baiyee/adcallback/config/pojo/PlatformTransmitDTO.java b/src/main/java/com/baiyee/adcallback/config/pojo/PlatformTransmitDTO.java index 2a57a58..8098db9 100644 --- a/src/main/java/com/baiyee/adcallback/config/pojo/PlatformTransmitDTO.java +++ b/src/main/java/com/baiyee/adcallback/config/pojo/PlatformTransmitDTO.java @@ -14,6 +14,8 @@ public class PlatformTransmitDTO { private Long taskId; + private Long userId; + private String authToken; private List list; diff --git a/src/main/java/com/baiyee/adcallback/repository/TbPlatformDeliveryEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbPlatformDeliveryEntityRepository.java index eddeeb5..38dffe6 100644 --- a/src/main/java/com/baiyee/adcallback/repository/TbPlatformDeliveryEntityRepository.java +++ b/src/main/java/com/baiyee/adcallback/repository/TbPlatformDeliveryEntityRepository.java @@ -23,6 +23,6 @@ public interface TbPlatformDeliveryEntityRepository extends JpaRepository findByTag(String tagStr, int num); } diff --git a/src/main/java/com/baiyee/adcallback/service/impl/AdPlatformDeliveryServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/AdPlatformDeliveryServiceImpl.java index 2a85548..a21cab8 100644 --- a/src/main/java/com/baiyee/adcallback/service/impl/AdPlatformDeliveryServiceImpl.java +++ b/src/main/java/com/baiyee/adcallback/service/impl/AdPlatformDeliveryServiceImpl.java @@ -1,7 +1,6 @@ package com.baiyee.adcallback.service.impl; import com.baiyee.adcallback.api.dto.PlateFormDTO; -import com.baiyee.adcallback.config.pojo.DeliveryStatisticDTO; import com.baiyee.adcallback.repository.TbPlatformDeliveryEntityRepository; import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity; import com.baiyee.adcallback.service.AdPlatformDeliveryService; @@ -29,7 +28,6 @@ public class AdPlatformDeliveryServiceImpl implements AdPlatformDeliveryService @Override public Boolean saveAll(List deliveryStatisticEntityList) { - return tbPlatformDeliveryEntityRepository.saveAll (deliveryStatisticEntityList).size() == deliveryStatisticEntityList.size(); } diff --git a/src/main/java/com/baiyee/adcallback/task/PlatFormRecordTask.java b/src/main/java/com/baiyee/adcallback/task/PlatFormRecordTask.java index c29b52a..31b1ae0 100644 --- a/src/main/java/com/baiyee/adcallback/task/PlatFormRecordTask.java +++ b/src/main/java/com/baiyee/adcallback/task/PlatFormRecordTask.java @@ -1,13 +1,19 @@ package com.baiyee.adcallback.task; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.baiyee.adcallback.api.common.CommonResponse; import com.baiyee.adcallback.api.dto.PlateFormDTO; +import com.baiyee.adcallback.common.exception.BadRequestException; import com.baiyee.adcallback.config.pojo.PlatformTransmitDTO; import com.baiyee.adcallback.repository.entity.TbPlatformCompanyEntity; import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity; @@ -16,6 +22,7 @@ import com.baiyee.adcallback.service.AdPlatformService; import com.baiyee.adcallback.service.JlBackDataEntityService; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -23,6 +30,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; @@ -45,6 +53,8 @@ public class PlatFormRecordTask { @Value("${platform.url}") private String url; + private DateTime beginTime; + private final AdPlatformService adPlatformService; private final JlBackDataEntityService jlBackDataEntityService; @@ -63,11 +73,13 @@ public class PlatFormRecordTask { for (TbPlatformCompanyEntity platform : platforms) { DateTime date = DateUtil.date(); // 偏移十分钟 - DateTime offsetMinute = DateUtil.offsetMinute(date, -10); + DateTime offsetMinute = ObjectUtil.isNull(beginTime) ? DateUtil.offsetMinute(date, -10) : beginTime; + beginTime = offsetMinute; + log.error("================ the begin time as {} end time as {} ================", offsetMinute, date); List dtoList = jlBackDataEntityService.queryPlateFormDTO (CharSequenceUtil.EMPTY, "__IMEI__", offsetMinute, date, platform.getTagStr()); + log.error("================ the dto list as {} ================", dtoList.size()); if (CollUtil.isNotEmpty(dtoList)) { - Map> listMap = dtoList.stream() .collect(Collectors.groupingBy(PlateFormDTO::getTag)); List saveDataList = Lists.newArrayList(); @@ -86,7 +98,23 @@ public class PlatFormRecordTask { // 保存将要插入数据 saveDataList.addAll(differentData); } - if (CollUtil.isNotEmpty(saveDataList)) { + // 分批发送 + List> partition = Lists.partition(saveDataList, 100); + int num = 0; + for (List formDTOList : partition) { + PlatformTransmitDTO dto = new PlatformTransmitDTO(); + dto.setList(formDTOList); + dto.setAuthToken(authToken); + dto.setUserId(platform.getUserId()); + dto.setTaskId(platform.getTaskId()); + String post = HttpUtil.post(url, JSONUtil.toJsonStr(dto)); + Object status = new JSONObject(post).get("status"); + if (ObjectUtil.isNotNull(status) && + Integer.parseInt(status.toString()) != 0) { + num++; + } + } + if (num == 0 && CollUtil.isNotEmpty(saveDataList)) { // 异步插入数据 CompletableFuture.runAsync(() -> { List deliveryStatisticEntityList = @@ -94,18 +122,13 @@ public class PlatFormRecordTask { // 批量保存 adPlatformDeliveryService.saveAll(deliveryStatisticEntityList); }); - } - // 分批发送 - List> partition = Lists.partition(saveDataList, 200); - for (List formDTOList : partition) { - PlatformTransmitDTO dto = new PlatformTransmitDTO(); - dto.setList(formDTOList); - dto.setAuthToken(authToken); - dto.setTaskId(platform.getTaskId()); - HttpUtil.post(url, JSONUtil.toJsonStr(dto)); + beginTime = date; } log.error("================ the new datalist size as {} ================", saveDataList.size()); } + if (CollUtil.isEmpty(dtoList)) { + beginTime = date; + } } } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 5423e3c..6a41b6b 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -49,5 +49,5 @@ spring: platform: authToken: JI8AeA7POKsdGcBC - url: http://8.130.96.163:7325/open/v1/callback/add + url: http://8.130.96.163:8866/api/taskImei/callback/add diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 7c3738e..6b30041 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -46,4 +46,4 @@ spring: connect-properties: druid.stat.mergeSql=false platform: authToken: nqJpVSf3UcrEcVIH - url: https://baiyee.vip/open/v1/callback/add + url: http://8.130.96.163/api/taskImei/callback/add