|
|
|
@ -69,73 +69,75 @@ public class PlatFormRecordTask {
|
|
|
|
|
if (CollUtil.isNotEmpty(platforms)) {
|
|
|
|
|
for (TbPlatformCompanyEntity platform : platforms) {
|
|
|
|
|
DateTime date = DateUtil.date();
|
|
|
|
|
String tagStr = platform.getTagStr().get(0);
|
|
|
|
|
if (tagStr.contains(StrPool.DASHED)) {
|
|
|
|
|
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<PlateFormDTO> dtoList = backDataEntityService.queryPlateFormDTO
|
|
|
|
|
(CharSequenceUtil.EMPTY, "__IMEI__", offsetMinute, date, platform.getTagStr(), value);
|
|
|
|
|
log.info("================ the dto list as {} ================", dtoList.size());
|
|
|
|
|
if (CollUtil.isNotEmpty(dtoList)) {
|
|
|
|
|
// tag进行分组
|
|
|
|
|
Map<String, List<PlateFormDTO>> listMap = dtoList.stream()
|
|
|
|
|
.collect(Collectors.groupingBy(PlateFormDTO::getTag));
|
|
|
|
|
|
|
|
|
|
List<RepeatFormDTO> saveDataList = Lists.newArrayList();
|
|
|
|
|
for (Map.Entry<String, List<PlateFormDTO>> stringListEntry : listMap.entrySet()) {
|
|
|
|
|
List<PlateFormDTO> list = listMap.get(stringListEntry.getKey());
|
|
|
|
|
List<RepeatFormDTO> repeatFormDTOList = Convert.toList(RepeatFormDTO.class, list);
|
|
|
|
|
repeatFormDTOList.forEach(dto -> dto.setUserId(platform.getUserId()));
|
|
|
|
|
// 去除重复数据
|
|
|
|
|
Set<RepeatFormDTO> originSet =
|
|
|
|
|
Sets.newHashSet(repeatFormDTOList);
|
|
|
|
|
// 查询数据
|
|
|
|
|
List<RepeatFormDTO> tagLists =
|
|
|
|
|
adPlatformDeliveryService.findByTag(platform.getUserId(), stringListEntry.getKey(), 0);
|
|
|
|
|
|
|
|
|
|
Set<RepeatFormDTO> querySet = Sets.newHashSet(tagLists);
|
|
|
|
|
// 差集去除数据
|
|
|
|
|
List<RepeatFormDTO> differentData
|
|
|
|
|
= Lists.newArrayList(Sets.difference(originSet, querySet));
|
|
|
|
|
// 保存将要插入数据
|
|
|
|
|
saveDataList.addAll(differentData);
|
|
|
|
|
}
|
|
|
|
|
// 分批发送
|
|
|
|
|
List<List<RepeatFormDTO>> partition = Lists.partition(saveDataList, 500);
|
|
|
|
|
int num = 0;
|
|
|
|
|
for (List<RepeatFormDTO> 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 (CollUtil.isNotEmpty(platform.getTagStr())) {
|
|
|
|
|
String tagStr = platform.getTagStr().get(0);
|
|
|
|
|
if (tagStr.contains(StrPool.DASHED)) {
|
|
|
|
|
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<PlateFormDTO> dtoList = backDataEntityService.queryPlateFormDTO
|
|
|
|
|
(CharSequenceUtil.EMPTY, "__IMEI__", offsetMinute, date, platform.getTagStr(), value);
|
|
|
|
|
log.info("================ the dto list as {} ================", dtoList.size());
|
|
|
|
|
if (CollUtil.isNotEmpty(dtoList)) {
|
|
|
|
|
// tag进行分组
|
|
|
|
|
Map<String, List<PlateFormDTO>> listMap = dtoList.stream()
|
|
|
|
|
.collect(Collectors.groupingBy(PlateFormDTO::getTag));
|
|
|
|
|
|
|
|
|
|
List<RepeatFormDTO> saveDataList = Lists.newArrayList();
|
|
|
|
|
for (Map.Entry<String, List<PlateFormDTO>> stringListEntry : listMap.entrySet()) {
|
|
|
|
|
List<PlateFormDTO> list = listMap.get(stringListEntry.getKey());
|
|
|
|
|
List<RepeatFormDTO> repeatFormDTOList = Convert.toList(RepeatFormDTO.class, list);
|
|
|
|
|
repeatFormDTOList.forEach(dto -> dto.setUserId(platform.getUserId()));
|
|
|
|
|
// 去除重复数据
|
|
|
|
|
Set<RepeatFormDTO> originSet =
|
|
|
|
|
Sets.newHashSet(repeatFormDTOList);
|
|
|
|
|
// 查询数据
|
|
|
|
|
List<RepeatFormDTO> tagLists =
|
|
|
|
|
adPlatformDeliveryService.findByTag(platform.getUserId(), stringListEntry.getKey(), 0);
|
|
|
|
|
|
|
|
|
|
Set<RepeatFormDTO> querySet = Sets.newHashSet(tagLists);
|
|
|
|
|
// 差集去除数据
|
|
|
|
|
List<RepeatFormDTO> differentData
|
|
|
|
|
= Lists.newArrayList(Sets.difference(originSet, querySet));
|
|
|
|
|
// 保存将要插入数据
|
|
|
|
|
saveDataList.addAll(differentData);
|
|
|
|
|
}
|
|
|
|
|
// 分批发送
|
|
|
|
|
List<List<RepeatFormDTO>> partition = Lists.partition(saveDataList, 500);
|
|
|
|
|
int num = 0;
|
|
|
|
|
for (List<RepeatFormDTO> 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<TbPlatformDeliveryEntity> deliveryStatisticEntityList =
|
|
|
|
|
Convert.toList(TbPlatformDeliveryEntity.class, saveDataList);
|
|
|
|
|
// 批量保存
|
|
|
|
|
adPlatformDeliveryService.saveAll(deliveryStatisticEntityList);
|
|
|
|
|
});
|
|
|
|
|
beginTime = date;
|
|
|
|
|
}
|
|
|
|
|
log.error("================ the new datalist size as {} ================", saveDataList.size());
|
|
|
|
|
}
|
|
|
|
|
if (num == 0 && CollUtil.isNotEmpty(saveDataList)) {
|
|
|
|
|
// 异步插入数据
|
|
|
|
|
CompletableFuture.runAsync(() -> {
|
|
|
|
|
List<TbPlatformDeliveryEntity> deliveryStatisticEntityList =
|
|
|
|
|
Convert.toList(TbPlatformDeliveryEntity.class, saveDataList);
|
|
|
|
|
// 批量保存
|
|
|
|
|
adPlatformDeliveryService.saveAll(deliveryStatisticEntityList);
|
|
|
|
|
});
|
|
|
|
|
if (CollUtil.isEmpty(dtoList)) {
|
|
|
|
|
beginTime = date;
|
|
|
|
|
}
|
|
|
|
|
log.error("================ the new datalist size as {} ================", saveDataList.size());
|
|
|
|
|
}
|
|
|
|
|
if (CollUtil.isEmpty(dtoList)) {
|
|
|
|
|
beginTime = date;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|