修改内容

master
bynt 2 years ago
parent eb5c20f9fe
commit 048df55f4c

@ -21,6 +21,8 @@ import java.io.Serializable;
@NoArgsConstructor @NoArgsConstructor
public class CommonResponse<T> implements Serializable { public class CommonResponse<T> implements Serializable {
private static final long serialVersionUID = -1315844701090296837L;
/** /**
* 0, 1, * 0, 1,
*/ */

@ -14,6 +14,8 @@ public class PlatformTransmitDTO {
private Long taskId; private Long taskId;
private Long userId;
private String authToken; private String authToken;
private List<PlateFormDTO> list; private List<PlateFormDTO> list;

@ -23,6 +23,6 @@ public interface TbPlatformDeliveryEntityRepository extends JpaRepository<TbPla
* @param num * @param num
* @return * @return
*/ */
@Query(value = "select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei, tag)from TbDeliveryStatisticEntity where tag = ?1 and dayNum > ?2") @Query(value = "select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei, tag)from TbPlatformDeliveryEntity where tag = ?1 and dayNum > ?2")
List<PlateFormDTO> findByTag(String tagStr, int num); List<PlateFormDTO> findByTag(String tagStr, int num);
} }

@ -1,7 +1,6 @@
package com.baiyee.adcallback.service.impl; package com.baiyee.adcallback.service.impl;
import com.baiyee.adcallback.api.dto.PlateFormDTO; 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.TbPlatformDeliveryEntityRepository;
import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity; import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity;
import com.baiyee.adcallback.service.AdPlatformDeliveryService; import com.baiyee.adcallback.service.AdPlatformDeliveryService;
@ -29,7 +28,6 @@ public class AdPlatformDeliveryServiceImpl implements AdPlatformDeliveryService
@Override @Override
public Boolean saveAll(List<TbPlatformDeliveryEntity> deliveryStatisticEntityList) { public Boolean saveAll(List<TbPlatformDeliveryEntity> deliveryStatisticEntityList) {
return tbPlatformDeliveryEntityRepository.saveAll return tbPlatformDeliveryEntityRepository.saveAll
(deliveryStatisticEntityList).size() == deliveryStatisticEntityList.size(); (deliveryStatisticEntityList).size() == deliveryStatisticEntityList.size();
} }

@ -1,13 +1,19 @@
package com.baiyee.adcallback.task; package com.baiyee.adcallback.task;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil; 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.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baiyee.adcallback.api.common.CommonResponse;
import com.baiyee.adcallback.api.dto.PlateFormDTO; 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.config.pojo.PlatformTransmitDTO;
import com.baiyee.adcallback.repository.entity.TbPlatformCompanyEntity; import com.baiyee.adcallback.repository.entity.TbPlatformCompanyEntity;
import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity; 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.baiyee.adcallback.service.JlBackDataEntityService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import lombok.Data;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; 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.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -45,6 +53,8 @@ public class PlatFormRecordTask {
@Value("${platform.url}") @Value("${platform.url}")
private String url; private String url;
private DateTime beginTime;
private final AdPlatformService adPlatformService; private final AdPlatformService adPlatformService;
private final JlBackDataEntityService jlBackDataEntityService; private final JlBackDataEntityService jlBackDataEntityService;
@ -63,11 +73,13 @@ public class PlatFormRecordTask {
for (TbPlatformCompanyEntity platform : platforms) { for (TbPlatformCompanyEntity platform : platforms) {
DateTime date = DateUtil.date(); 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<PlateFormDTO> dtoList = jlBackDataEntityService.queryPlateFormDTO List<PlateFormDTO> dtoList = jlBackDataEntityService.queryPlateFormDTO
(CharSequenceUtil.EMPTY, "__IMEI__", offsetMinute, date, platform.getTagStr()); (CharSequenceUtil.EMPTY, "__IMEI__", offsetMinute, date, platform.getTagStr());
log.error("================ the dto list as {} ================", dtoList.size());
if (CollUtil.isNotEmpty(dtoList)) { if (CollUtil.isNotEmpty(dtoList)) {
Map<String, List<PlateFormDTO>> listMap = dtoList.stream() Map<String, List<PlateFormDTO>> listMap = dtoList.stream()
.collect(Collectors.groupingBy(PlateFormDTO::getTag)); .collect(Collectors.groupingBy(PlateFormDTO::getTag));
List<PlateFormDTO> saveDataList = Lists.newArrayList(); List<PlateFormDTO> saveDataList = Lists.newArrayList();
@ -86,7 +98,23 @@ public class PlatFormRecordTask {
// 保存将要插入数据 // 保存将要插入数据
saveDataList.addAll(differentData); saveDataList.addAll(differentData);
} }
if (CollUtil.isNotEmpty(saveDataList)) { // 分批发送
List<List<PlateFormDTO>> partition = Lists.partition(saveDataList, 100);
int num = 0;
for (List<PlateFormDTO> 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(() -> { CompletableFuture.runAsync(() -> {
List<TbPlatformDeliveryEntity> deliveryStatisticEntityList = List<TbPlatformDeliveryEntity> deliveryStatisticEntityList =
@ -94,18 +122,13 @@ public class PlatFormRecordTask {
// 批量保存 // 批量保存
adPlatformDeliveryService.saveAll(deliveryStatisticEntityList); adPlatformDeliveryService.saveAll(deliveryStatisticEntityList);
}); });
} beginTime = date;
// 分批发送
List<List<PlateFormDTO>> partition = Lists.partition(saveDataList, 200);
for (List<PlateFormDTO> formDTOList : partition) {
PlatformTransmitDTO dto = new PlatformTransmitDTO();
dto.setList(formDTOList);
dto.setAuthToken(authToken);
dto.setTaskId(platform.getTaskId());
HttpUtil.post(url, JSONUtil.toJsonStr(dto));
} }
log.error("================ the new datalist size as {} ================", saveDataList.size()); log.error("================ the new datalist size as {} ================", saveDataList.size());
} }
if (CollUtil.isEmpty(dtoList)) {
beginTime = date;
}
} }
} }
} }

@ -49,5 +49,5 @@ spring:
platform: platform:
authToken: JI8AeA7POKsdGcBC authToken: JI8AeA7POKsdGcBC
url: http://8.130.96.163:7325/open/v1/callback/add url: http://8.130.96.163:8866/api/taskImei/callback/add

@ -46,4 +46,4 @@ spring:
connect-properties: druid.stat.mergeSql=false connect-properties: druid.stat.mergeSql=false
platform: platform:
authToken: nqJpVSf3UcrEcVIH authToken: nqJpVSf3UcrEcVIH
url: https://baiyee.vip/open/v1/callback/add url: http://8.130.96.163/api/taskImei/callback/add

Loading…
Cancel
Save