修改逻辑

master
bynt 2 years ago
parent cf129786a5
commit cc1afb7c97

@ -70,71 +70,73 @@ public class PlatFormRecordTask {
for (TbPlatformCompanyEntity platform : platforms) { for (TbPlatformCompanyEntity platform : platforms) {
DateTime date = DateUtil.date(); DateTime date = DateUtil.date();
String tagStr = platform.getTagStr().get(0); String tagStr = platform.getTagStr().get(0);
Integer value = DeliveryPlatformEnum.getValue if (tagStr.contains(StrPool.DASHED)) {
(tagStr.substring(0, tagStr.indexOf(StrPool.DASHED))); Integer value = DeliveryPlatformEnum.getValue
// 偏移十分钟 (tagStr.substring(0, tagStr.indexOf(StrPool.DASHED)));
DateTime offsetMinute = ObjectUtil.isNull(beginTime) ? // 偏移十分钟
DateUtil.offsetMinute(date, -10) : DateTime offsetMinute = ObjectUtil.isNull(beginTime) ?
DateUtil.offsetMinute(beginTime, -10); DateUtil.offsetMinute(date, -10) :
beginTime = offsetMinute; DateUtil.offsetMinute(beginTime, -10);
log.info("================ the begin time as {} end time as {} ================", offsetMinute, date); beginTime = offsetMinute;
List<PlateFormDTO> dtoList = backDataEntityService.queryPlateFormDTO log.info("================ the begin time as {} end time as {} ================", offsetMinute, date);
(CharSequenceUtil.EMPTY, "__IMEI__", offsetMinute, date, platform.getTagStr(), value); List<PlateFormDTO> dtoList = backDataEntityService.queryPlateFormDTO
log.info("================ the dto list as {} ================", dtoList.size()); (CharSequenceUtil.EMPTY, "__IMEI__", offsetMinute, date, platform.getTagStr(), value);
if (CollUtil.isNotEmpty(dtoList)) { log.info("================ the dto list as {} ================", dtoList.size());
// tag进行分组 if (CollUtil.isNotEmpty(dtoList)) {
Map<String, List<PlateFormDTO>> listMap = dtoList.stream() // tag进行分组
.collect(Collectors.groupingBy(PlateFormDTO::getTag)); 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<RepeatFormDTO> saveDataList = Lists.newArrayList();
List<PlateFormDTO> list = listMap.get(stringListEntry.getKey()); for (Map.Entry<String, List<PlateFormDTO>> stringListEntry : listMap.entrySet()) {
List<RepeatFormDTO> repeatFormDTOList = Convert.toList(RepeatFormDTO.class, list); List<PlateFormDTO> list = listMap.get(stringListEntry.getKey());
repeatFormDTOList.forEach(dto -> dto.setUserId(platform.getUserId())); List<RepeatFormDTO> repeatFormDTOList = Convert.toList(RepeatFormDTO.class, list);
// 去除重复数据 repeatFormDTOList.forEach(dto -> dto.setUserId(platform.getUserId()));
Set<RepeatFormDTO> originSet = // 去除重复数据
Sets.newHashSet(repeatFormDTOList); Set<RepeatFormDTO> originSet =
// 查询数据 Sets.newHashSet(repeatFormDTOList);
List<RepeatFormDTO> tagLists = // 查询数据
adPlatformDeliveryService.findByTag(platform.getUserId(), stringListEntry.getKey(), 0); List<RepeatFormDTO> tagLists =
adPlatformDeliveryService.findByTag(platform.getUserId(), stringListEntry.getKey(), 0);
Set<RepeatFormDTO> querySet = Sets.newHashSet(tagLists);
// 差集去除数据 Set<RepeatFormDTO> querySet = Sets.newHashSet(tagLists);
List<RepeatFormDTO> differentData // 差集去除数据
= Lists.newArrayList(Sets.difference(originSet, querySet)); List<RepeatFormDTO> differentData
// 保存将要插入数据 = Lists.newArrayList(Sets.difference(originSet, querySet));
saveDataList.addAll(differentData); // 保存将要插入数据
} saveDataList.addAll(differentData);
// 分批发送 }
List<List<RepeatFormDTO>> partition = Lists.partition(saveDataList, 500); // 分批发送
int num = 0; List<List<RepeatFormDTO>> partition = Lists.partition(saveDataList, 500);
for (List<RepeatFormDTO> formDTOList : partition) { int num = 0;
PlatformTransmitDTO dto = new PlatformTransmitDTO(); for (List<RepeatFormDTO> formDTOList : partition) {
dto.setList(formDTOList); PlatformTransmitDTO dto = new PlatformTransmitDTO();
dto.setAuthToken(authToken); dto.setList(formDTOList);
dto.setUserId(platform.getUserId()); dto.setAuthToken(authToken);
dto.setTaskId(platform.getTaskId()); dto.setUserId(platform.getUserId());
String post = HttpUtil.post(url, JSONUtil.toJsonStr(dto)); dto.setTaskId(platform.getTaskId());
Object status = new JSONObject(post).get("status"); String post = HttpUtil.post(url, JSONUtil.toJsonStr(dto));
if (ObjectUtil.isNotNull(status) && Object status = new JSONObject(post).get("status");
Integer.parseInt(status.toString()) != 0) { if (ObjectUtil.isNotNull(status) &&
num++; 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)) { if (CollUtil.isEmpty(dtoList)) {
// 异步插入数据
CompletableFuture.runAsync(() -> {
List<TbPlatformDeliveryEntity> deliveryStatisticEntityList =
Convert.toList(TbPlatformDeliveryEntity.class, saveDataList);
// 批量保存
adPlatformDeliveryService.saveAll(deliveryStatisticEntityList);
});
beginTime = date; beginTime = date;
} }
log.error("================ the new datalist size as {} ================", saveDataList.size());
}
if (CollUtil.isEmpty(dtoList)) {
beginTime = date;
} }
} }
} }

Loading…
Cancel
Save