From cf129786a523af16237492360d173c9e88b3ccd0 Mon Sep 17 00:00:00 2001 From: bynt Date: Thu, 10 Nov 2022 16:08:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=9B=B8=E5=85=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TbBdBackdataEntityRepository.java | 24 ++++++- .../TbGdtBackdataEntityRepository.java | 24 ++++++- .../TbKsBackdataEntityRepository.java | 23 +++++- .../TbUcBackdataEntityRepository.java | 23 +++++- .../TbVivoBackdataEntityRepository.java | 23 +++++- ...ervice.java => BackDataEntityService.java} | 10 ++- .../impl/BackDataEntityServiceImpl.java | 71 +++++++++++++++++++ .../impl/JlBackDataEntityServiceImpl.java | 28 -------- .../adcallback/task/PlatFormRecordTask.java | 17 +++-- .../AdCallbackApplicationTests.java | 13 +--- 10 files changed, 202 insertions(+), 54 deletions(-) rename src/main/java/com/baiyee/adcallback/service/{JlBackDataEntityService.java => BackDataEntityService.java} (75%) create mode 100644 src/main/java/com/baiyee/adcallback/service/impl/BackDataEntityServiceImpl.java delete mode 100644 src/main/java/com/baiyee/adcallback/service/impl/JlBackDataEntityServiceImpl.java diff --git a/src/main/java/com/baiyee/adcallback/repository/TbBdBackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbBdBackdataEntityRepository.java index 06dc05f..b63ad1d 100644 --- a/src/main/java/com/baiyee/adcallback/repository/TbBdBackdataEntityRepository.java +++ b/src/main/java/com/baiyee/adcallback/repository/TbBdBackdataEntityRepository.java @@ -1,7 +1,29 @@ package com.baiyee.adcallback.repository; +import cn.hutool.core.date.DateTime; +import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.repository.entity.TbBdBackdataEntity; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; public interface TbBdBackdataEntityRepository extends JpaRepository { -} \ No newline at end of file + + + + /** + * 查询数据 + * @param imeiStrFirst + * @param imeiSecond + * @param startDate + * @param endDate + * @param tag + * @return + */ + @Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei as imei,tag as tag) from " + + " TbBdBackdataEntity where imei != :imeiStrFirst and imei != :imeiSecond " + + "and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag") + List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag); +} diff --git a/src/main/java/com/baiyee/adcallback/repository/TbGdtBackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbGdtBackdataEntityRepository.java index 8b4d091..73a6bb6 100644 --- a/src/main/java/com/baiyee/adcallback/repository/TbGdtBackdataEntityRepository.java +++ b/src/main/java/com/baiyee/adcallback/repository/TbGdtBackdataEntityRepository.java @@ -1,7 +1,29 @@ package com.baiyee.adcallback.repository; +import cn.hutool.core.date.DateTime; +import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.repository.entity.TbGdtBackdataEntity; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; public interface TbGdtBackdataEntityRepository extends JpaRepository { -} \ No newline at end of file + + + /** + * 查询数据 + * @param imeiStrFirst + * @param imeiSecond + * @param startDate + * @param endDate + * @param models + * @param tag + * @return + */ + @Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(muid as imei,tag as tag) from " + + " TbGdtBackdataEntity where muid != :imeiStrFirst and muid != :imeiSecond " + + "and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag and deviceOsType = :models group by muid,tag") + List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag,@Param("models") String models); +} diff --git a/src/main/java/com/baiyee/adcallback/repository/TbKsBackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbKsBackdataEntityRepository.java index 290f715..17457db 100644 --- a/src/main/java/com/baiyee/adcallback/repository/TbKsBackdataEntityRepository.java +++ b/src/main/java/com/baiyee/adcallback/repository/TbKsBackdataEntityRepository.java @@ -1,7 +1,28 @@ package com.baiyee.adcallback.repository; +import cn.hutool.core.date.DateTime; +import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.repository.entity.TbKsBackdataEntity; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; public interface TbKsBackdataEntityRepository extends JpaRepository { -} \ No newline at end of file + + + /** + * 查询数据 + * @param imeiStrFirst + * @param imeiSecond + * @param startDate + * @param endDate + * @param tag + * @return + */ + @Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei as imei,tag as tag) from " + + " TbKsBackdataEntity where imei != :imeiStrFirst and imei != :imeiSecond " + + "and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag") + List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag); +} diff --git a/src/main/java/com/baiyee/adcallback/repository/TbUcBackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbUcBackdataEntityRepository.java index 476011d..088c79f 100644 --- a/src/main/java/com/baiyee/adcallback/repository/TbUcBackdataEntityRepository.java +++ b/src/main/java/com/baiyee/adcallback/repository/TbUcBackdataEntityRepository.java @@ -1,7 +1,28 @@ package com.baiyee.adcallback.repository; +import cn.hutool.core.date.DateTime; +import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.repository.entity.TbUcBackdataEntity; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; public interface TbUcBackdataEntityRepository extends JpaRepository { -} \ No newline at end of file + + + /** + * 查询数据 + * @param imeiStrFirst + * @param imeiSecond + * @param startDate + * @param endDate + * @param tag + * @return + */ + @Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei as imei,tag as tag) from " + + " TbUcBackdataEntity where imei != :imeiStrFirst and imei != :imeiSecond " + + "and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag") + List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag); +} diff --git a/src/main/java/com/baiyee/adcallback/repository/TbVivoBackdataEntityRepository.java b/src/main/java/com/baiyee/adcallback/repository/TbVivoBackdataEntityRepository.java index 0fa31b5..ac19a1a 100644 --- a/src/main/java/com/baiyee/adcallback/repository/TbVivoBackdataEntityRepository.java +++ b/src/main/java/com/baiyee/adcallback/repository/TbVivoBackdataEntityRepository.java @@ -1,7 +1,28 @@ package com.baiyee.adcallback.repository; +import cn.hutool.core.date.DateTime; +import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.repository.entity.TbVivoBackdataEntity; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.util.List; public interface TbVivoBackdataEntityRepository extends JpaRepository { -} \ No newline at end of file + + + /** + * 查询数据 + * @param imeiStrFirst + * @param imeiSecond + * @param startDate + * @param endDate + * @param tag + * @return + */ + @Query("select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei as imei,tag as tag) from " + + " TbVivoBackdataEntity where imei != :imeiStrFirst and imei != :imeiSecond " + + "and gmtCreate >= :startDate and gmtCreate < :endDate and tag in :tag group by imei,tag") + List queryPlateFormDTO(@Param("imeiStrFirst") String imeiStrFirst, @Param("imeiSecond") String imeiSecond, @Param("startDate") DateTime startDate, @Param("endDate") DateTime endDate, @Param("tag") List tag); +} diff --git a/src/main/java/com/baiyee/adcallback/service/JlBackDataEntityService.java b/src/main/java/com/baiyee/adcallback/service/BackDataEntityService.java similarity index 75% rename from src/main/java/com/baiyee/adcallback/service/JlBackDataEntityService.java rename to src/main/java/com/baiyee/adcallback/service/BackDataEntityService.java index 58d5bf7..e2b2229 100644 --- a/src/main/java/com/baiyee/adcallback/service/JlBackDataEntityService.java +++ b/src/main/java/com/baiyee/adcallback/service/BackDataEntityService.java @@ -9,14 +9,18 @@ import java.util.List; * @author Enzo * @date : 2022/10/14 */ -public interface JlBackDataEntityService { +public interface BackDataEntityService { + /** - * 查询指定时间内的imei号 + * 查询指定时间内的imei号 + * * @param imeiFirst * @param imeiSecond * @param date * @param offsetMinute * @param tagStr + * @param value + * @return */ - List queryPlateFormDTO(String imeiFirst, String imeiSecond, DateTime date, DateTime offsetMinute, List tagStr); + List queryPlateFormDTO(String imeiFirst, String imeiSecond, DateTime date, DateTime offsetMinute, List tagStr, Integer value); } diff --git a/src/main/java/com/baiyee/adcallback/service/impl/BackDataEntityServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/BackDataEntityServiceImpl.java new file mode 100644 index 0000000..2a208bf --- /dev/null +++ b/src/main/java/com/baiyee/adcallback/service/impl/BackDataEntityServiceImpl.java @@ -0,0 +1,71 @@ +package com.baiyee.adcallback.service.impl; + +import cn.hutool.core.date.DateTime; +import com.baiyee.adcallback.api.dto.PlateFormDTO; +import com.baiyee.adcallback.repository.*; +import com.baiyee.adcallback.service.BackDataEntityService; +import com.google.common.collect.Lists; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author Enzo + * @date : 2022/10/14 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class BackDataEntityServiceImpl implements BackDataEntityService { + + private final TbJlBackdataEntityRepository tbJlBackdataEntityRepository; + + private final TbKsBackdataEntityRepository tbKsBackdataEntityRepository; + + private final TbUcBackdataEntityRepository tbUcBackdataEntityRepository; + + private final TbBdBackdataEntityRepository tbBdBackdataEntityRepository; + + private final TbGdtBackdataEntityRepository tbGdtBackdataEntityRepository; + + private final TbVivoBackdataEntityRepository tbVivoBackdataEntityRepository; + + + @Override + public List queryPlateFormDTO + (String imeiFirst, String imeiSecond, DateTime date, DateTime offsetMinute, List tagStr, Integer value) { + + List formDTOList = Lists.newArrayList(); + switch (value) { + case 1: + // 巨量 + formDTOList = tbJlBackdataEntityRepository.queryPlateFormDTO(imeiFirst, imeiSecond, date, offsetMinute, tagStr); + break; + case 2: + // 快手 + formDTOList = tbKsBackdataEntityRepository.queryPlateFormDTO(imeiFirst, imeiSecond, date, offsetMinute, tagStr); + break; + case 3: + // UC + formDTOList = tbUcBackdataEntityRepository.queryPlateFormDTO(imeiFirst, imeiSecond, date, offsetMinute, tagStr); + break; + case 4: + // VIVO + formDTOList = tbVivoBackdataEntityRepository.queryPlateFormDTO(imeiFirst, imeiSecond, date, offsetMinute, tagStr); + break; + case 5: + // 百度 + formDTOList = tbBdBackdataEntityRepository.queryPlateFormDTO(imeiFirst, imeiSecond, date, offsetMinute, tagStr); + break; + case 6: + // 广点通 + formDTOList = tbGdtBackdataEntityRepository.queryPlateFormDTO(imeiFirst, imeiSecond, date, offsetMinute, tagStr,"android"); + break; + default: + } + return formDTOList; + } + +} diff --git a/src/main/java/com/baiyee/adcallback/service/impl/JlBackDataEntityServiceImpl.java b/src/main/java/com/baiyee/adcallback/service/impl/JlBackDataEntityServiceImpl.java deleted file mode 100644 index 8608fc3..0000000 --- a/src/main/java/com/baiyee/adcallback/service/impl/JlBackDataEntityServiceImpl.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.baiyee.adcallback.service.impl; - -import cn.hutool.core.date.DateTime; -import com.baiyee.adcallback.api.dto.PlateFormDTO; -import com.baiyee.adcallback.repository.TbJlBackdataEntityRepository; -import com.baiyee.adcallback.service.JlBackDataEntityService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @author Enzo - * @date : 2022/10/14 - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class JlBackDataEntityServiceImpl implements JlBackDataEntityService { - - private final TbJlBackdataEntityRepository tbJlBackdataEntityRepository; - @Override - public List queryPlateFormDTO(String imeiFirst, String imeiSecond, DateTime date, DateTime offsetMinute, List tagStr) { - return tbJlBackdataEntityRepository.queryPlateFormDTO(imeiFirst, imeiSecond, date, offsetMinute, tagStr); - } - -} diff --git a/src/main/java/com/baiyee/adcallback/task/PlatFormRecordTask.java b/src/main/java/com/baiyee/adcallback/task/PlatFormRecordTask.java index d499c1f..889781b 100644 --- a/src/main/java/com/baiyee/adcallback/task/PlatFormRecordTask.java +++ b/src/main/java/com/baiyee/adcallback/task/PlatFormRecordTask.java @@ -5,18 +5,20 @@ 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.text.StrPool; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.api.dto.RepeatFormDTO; +import com.baiyee.adcallback.common.enums.DeliveryPlatformEnum; import com.baiyee.adcallback.config.pojo.PlatformTransmitDTO; import com.baiyee.adcallback.repository.entity.TbPlatformCompanyEntity; import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity; import com.baiyee.adcallback.service.AdPlatformDeliveryService; import com.baiyee.adcallback.service.AdPlatformService; -import com.baiyee.adcallback.service.JlBackDataEntityService; +import com.baiyee.adcallback.service.BackDataEntityService; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import lombok.RequiredArgsConstructor; @@ -52,7 +54,7 @@ public class PlatFormRecordTask { private final AdPlatformService adPlatformService; - private final JlBackDataEntityService jlBackDataEntityService; + private final BackDataEntityService backDataEntityService; private final AdPlatformDeliveryService adPlatformDeliveryService; @@ -67,14 +69,17 @@ public class PlatFormRecordTask { if (CollUtil.isNotEmpty(platforms)) { for (TbPlatformCompanyEntity platform : platforms) { DateTime date = DateUtil.date(); + String tagStr = platform.getTagStr().get(0); + Integer value = DeliveryPlatformEnum.getValue + (tagStr.substring(0, tagStr.indexOf(StrPool.DASHED))); // 偏移十分钟 DateTime offsetMinute = ObjectUtil.isNull(beginTime) ? DateUtil.offsetMinute(date, -10) : DateUtil.offsetMinute(beginTime, -10); beginTime = offsetMinute; log.info("================ the begin time as {} end time as {} ================", offsetMinute, date); - List dtoList = jlBackDataEntityService.queryPlateFormDTO - (CharSequenceUtil.EMPTY, "__IMEI__", offsetMinute, date, platform.getTagStr()); + List dtoList = backDataEntityService.queryPlateFormDTO + (CharSequenceUtil.EMPTY, "__IMEI__", offsetMinute, date, platform.getTagStr(), value); log.info("================ the dto list as {} ================", dtoList.size()); if (CollUtil.isNotEmpty(dtoList)) { // tag进行分组 @@ -142,7 +147,7 @@ public class PlatFormRecordTask { @Scheduled(cron = "0 30 23 * * ? ") @Transactional(rollbackFor = Exception.class) public void autoDeal() { - log.info("++++++++++++++++++++++change plate form sync start time {} ++++++++++++++++", DateUtil.now()); + log.info("++++++++++++++++++++++ change plate form sync start time {} ++++++++++++++++", DateUtil.now()); //删除剩余天数为0的数据 adPlatformDeliveryService.deleteAllByDayNum(0); @@ -150,7 +155,7 @@ public class PlatFormRecordTask { //所有的数据剩余天数-1 adPlatformDeliveryService.updateAllByDayNum(); - log.info("++++++++++++++++++++++change plate form Sync end time {} ++++++++++++++++", DateUtil.now()); + log.info("++++++++++++++++++++++ change plate form Sync end time {} ++++++++++++++++", DateUtil.now()); } } diff --git a/src/test/java/com/baiyee/adcallback/AdCallbackApplicationTests.java b/src/test/java/com/baiyee/adcallback/AdCallbackApplicationTests.java index a27246c..d7fc372 100644 --- a/src/test/java/com/baiyee/adcallback/AdCallbackApplicationTests.java +++ b/src/test/java/com/baiyee/adcallback/AdCallbackApplicationTests.java @@ -130,18 +130,7 @@ public class AdCallbackApplicationTests { @Test public void sendMessage(){ - List list = Lists.newArrayList(); - PlateFormDTO formDTO = new PlateFormDTO(); - formDTO.setImei("imei"); - formDTO.setTag("tag"); - list.add(formDTO); - PlatformTransmitDTO dto = new PlatformTransmitDTO(); - dto.setList(list); - dto.setAuthToken("nqJpVSf3UcrEcVIH"); - dto.setUserId(20L); - dto.setTaskId(31L); - String post = HttpUtil.post("https://baiyee.vip/api/taskImei/callback/add", JSONUtil.toJsonStr(dto)); - log.info(""); + } }