修改上传代码

master
bynt 2 years ago
parent c13fbe3a60
commit 099ea68ce5

@ -13,13 +13,12 @@ public class PlateFormDTO {
private String tag; private String tag;
public PlateFormDTO() { public PlateFormDTO() {
} }
public PlateFormDTO(String imei, String tag) { public PlateFormDTO(String imei, String tag) {
this.imei = imei; this.imei = imei;
this.tag = tag; this.tag = tag;
} }
} }

@ -0,0 +1,31 @@
package com.baiyee.adcallback.api.dto;
import lombok.Data;
/**
* @author Enzo
* @date : 2022/11/4
*/
@Data
public class RepeatFormDTO {
private String imei;
private String tag;
private Long userId;
public RepeatFormDTO() {
}
public RepeatFormDTO(String imei, String tag, Long userId) {
this.imei = imei;
this.tag = tag;
this.userId = userId;
}
}

@ -1,6 +1,7 @@
package com.baiyee.adcallback.config.pojo; package com.baiyee.adcallback.config.pojo;
import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.api.dto.PlateFormDTO;
import com.baiyee.adcallback.api.dto.RepeatFormDTO;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -18,5 +19,5 @@ public class PlatformTransmitDTO {
private String authToken; private String authToken;
private List<PlateFormDTO> list; private List<RepeatFormDTO> list;
} }

@ -1,7 +1,6 @@
package com.baiyee.adcallback.repository; package com.baiyee.adcallback.repository;
import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.api.dto.RepeatFormDTO;
import com.baiyee.adcallback.repository.entity.TbDeliveryStatisticEntity;
import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity; import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
@ -13,16 +12,18 @@ import java.util.List;
* @date : 2022/10/14 * @date : 2022/10/14
*/ */
public interface TbPlatformDeliveryEntityRepository extends JpaRepository<TbPlatformDeliveryEntity, Long> { public interface TbPlatformDeliveryEntityRepository extends JpaRepository<TbPlatformDeliveryEntity, Long> {
/** /**
* tag * tag
* *
* @param userId
* @param tagStr * @param tagStr
* @param num * @param num
* @return * @return
*/ */
@Query(value = "select new com.baiyee.adcallback.api.dto.PlateFormDTO(imei, tag)from TbPlatformDeliveryEntity where tag = ?1 and dayNum > ?2") @Query(value = "select new com.baiyee.adcallback.api.dto.RepeatFormDTO(imei, tag, userId)from TbPlatformDeliveryEntity where userId = ?1 and tag = ?2 and dayNum > ?3 ")
List<PlateFormDTO> findByTag(String tagStr, int num); List<RepeatFormDTO> findByTag(Long userId, String tagStr, int num);
} }

@ -28,6 +28,9 @@ public class TbPlatformDeliveryEntity implements Serializable {
@Column(name = "imei") @Column(name = "imei")
private String imei; private String imei;
@Column(name = "user_id")
private Long userId;
@Column(name = "tag") @Column(name = "tag")
private String tag; private String tag;

@ -1,6 +1,6 @@
package com.baiyee.adcallback.service; package com.baiyee.adcallback.service;
import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.api.dto.RepeatFormDTO;
import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity; import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity;
import java.util.List; import java.util.List;
@ -13,11 +13,13 @@ public interface AdPlatformDeliveryService {
/** /**
* tag * tag
*
* @param userId
* @param tagKey * @param tagKey
* @param num * @param num
* @return * @return
*/ */
List<PlateFormDTO> findByTag(String tagKey, Integer num); List<RepeatFormDTO> findByTag(Long userId, String tagKey, Integer num);
/** /**
* *

@ -1,6 +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.RepeatFormDTO;
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;
@ -22,8 +22,8 @@ public class AdPlatformDeliveryServiceImpl implements AdPlatformDeliveryService
private final TbPlatformDeliveryEntityRepository tbPlatformDeliveryEntityRepository; private final TbPlatformDeliveryEntityRepository tbPlatformDeliveryEntityRepository;
@Override @Override
public List<PlateFormDTO> findByTag(String tagKey, Integer num) { public List<RepeatFormDTO> findByTag(Long userId, String tagKey, Integer num) {
return tbPlatformDeliveryEntityRepository.findByTag(tagKey, num); return tbPlatformDeliveryEntityRepository.findByTag(userId, tagKey, num);
} }
@Override @Override

@ -10,6 +10,7 @@ import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baiyee.adcallback.api.dto.PlateFormDTO; import com.baiyee.adcallback.api.dto.PlateFormDTO;
import com.baiyee.adcallback.api.dto.RepeatFormDTO;
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;
@ -79,26 +80,30 @@ public class PlatFormRecordTask {
// tag进行分组 // tag进行分组
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<RepeatFormDTO> saveDataList = Lists.newArrayList();
for (Map.Entry<String, List<PlateFormDTO>> stringListEntry : listMap.entrySet()) { 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<PlateFormDTO> originSet = Set<RepeatFormDTO> originSet =
Sets.newHashSet(listMap.get(stringListEntry.getKey())); Sets.newHashSet(repeatFormDTOList);
// 查询数据 // 查询数据
List<PlateFormDTO> tagLists = List<RepeatFormDTO> tagLists =
adPlatformDeliveryService.findByTag(stringListEntry.getKey(), 0); adPlatformDeliveryService.findByTag(platform.getUserId(), stringListEntry.getKey(), 0);
Set<PlateFormDTO> querySet = Sets.newHashSet(tagLists); Set<RepeatFormDTO> querySet = Sets.newHashSet(tagLists);
// 差集去除数据 // 差集去除数据
List<PlateFormDTO> differentData List<RepeatFormDTO> differentData
= Lists.newArrayList(Sets.difference(originSet, querySet)); = Lists.newArrayList(Sets.difference(originSet, querySet));
// 保存将要插入数据 // 保存将要插入数据
saveDataList.addAll(differentData); saveDataList.addAll(differentData);
} }
// 分批发送 // 分批发送
List<List<PlateFormDTO>> partition = Lists.partition(saveDataList, 500); List<List<RepeatFormDTO>> partition = Lists.partition(saveDataList, 500);
int num = 0; int num = 0;
for (List<PlateFormDTO> formDTOList : partition) { for (List<RepeatFormDTO> formDTOList : partition) {
PlatformTransmitDTO dto = new PlatformTransmitDTO(); PlatformTransmitDTO dto = new PlatformTransmitDTO();
dto.setList(formDTOList); dto.setList(formDTOList);
dto.setAuthToken(authToken); dto.setAuthToken(authToken);

Loading…
Cancel
Save