@ -10,6 +10,7 @@ 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.config.pojo.PlatformTransmitDTO ;
import com.baiyee.adcallback.repository.entity.TbPlatformCompanyEntity ;
import com.baiyee.adcallback.repository.entity.TbPlatformDeliveryEntity ;
@ -79,26 +80,30 @@ public class PlatFormRecordTask {
// tag进行分组
Map < String , List < PlateFormDTO > > listMap = dtoList . stream ( )
. collect ( Collectors . groupingBy ( PlateFormDTO : : getTag ) ) ;
List < PlateFormDTO > saveDataList = Lists . newArrayList ( ) ;
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 < PlateFormDTO > originSet =
Sets . newHashSet ( listMap . get ( stringListEntry . getKey ( ) ) ) ;
Set < Repeat FormDTO> originSet =
Sets . newHashSet ( repeatFormDTOList ) ;
// 查询数据
List < Plate FormDTO> tagLists =
adPlatformDeliveryService . findByTag ( stringListEntry. getKey ( ) , 0 ) ;
List < Repeat FormDTO> tagLists =
adPlatformDeliveryService . findByTag ( platform. getUserId ( ) , stringListEntry. getKey ( ) , 0 ) ;
Set < Plate FormDTO> querySet = Sets . newHashSet ( tagLists ) ;
Set < Repeat FormDTO> querySet = Sets . newHashSet ( tagLists ) ;
// 差集去除数据
List < Plate FormDTO> differentData
List < Repeat FormDTO> differentData
= Lists . newArrayList ( Sets . difference ( originSet , querySet ) ) ;
// 保存将要插入数据
saveDataList . addAll ( differentData ) ;
}
// 分批发送
List < List < Plate FormDTO> > partition = Lists . partition ( saveDataList , 500 ) ;
List < List < Repeat FormDTO> > partition = Lists . partition ( saveDataList , 500 ) ;
int num = 0 ;
for ( List < Plate FormDTO> formDTOList : partition ) {
for ( List < Repeat FormDTO> formDTOList : partition ) {
PlatformTransmitDTO dto = new PlatformTransmitDTO ( ) ;
dto . setList ( formDTOList ) ;
dto . setAuthToken ( authToken ) ;