添加兑换接口
parent
67131138f7
commit
8a8598321b
@ -0,0 +1,70 @@
|
||||
package com.baiye.modules.platform.domain;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.annotations.CreationTimestamp;
|
||||
import org.hibernate.annotations.UpdateTimestamp;
|
||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* 下载链接
|
||||
*/
|
||||
@Entity
|
||||
@Getter
|
||||
@Setter
|
||||
@Table(name = "tb_tripartite_down_record")
|
||||
@EntityListeners(AuditingEntityListener.class)
|
||||
public class TripartiteDownRecord implements Serializable {
|
||||
|
||||
@Id
|
||||
@Column(name = "id")
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@ApiModelProperty(value = "ID", hidden = true)
|
||||
private Long id;
|
||||
|
||||
|
||||
@Column(name = "status")
|
||||
@ApiModelProperty(value = "下载状态")
|
||||
private Integer status;
|
||||
|
||||
|
||||
@Column(name = "date_str")
|
||||
@ApiModelProperty(value = "日期转换")
|
||||
private String dateStr;
|
||||
|
||||
@Column(name = "down_url")
|
||||
@ApiModelProperty(value = "下载链接")
|
||||
private String downUrl;
|
||||
|
||||
@Column(name = "file_path")
|
||||
@ApiModelProperty(value = "文件地址")
|
||||
private String filePath;
|
||||
|
||||
@Column(name = "clue_num")
|
||||
@ApiModelProperty(value = "线索数量")
|
||||
private Integer clueNum;
|
||||
|
||||
@Column(name = "source_data")
|
||||
@ApiModelProperty(value = "资源来源")
|
||||
private Long sourceData;
|
||||
|
||||
@Column(name = "source_memo")
|
||||
@ApiModelProperty(value = "资源来源")
|
||||
private String sourceMemo;
|
||||
|
||||
@CreationTimestamp
|
||||
@Column(name = "create_time", updatable = false)
|
||||
private Timestamp createTime;
|
||||
|
||||
@UpdateTimestamp
|
||||
@Column(name = "update_time")
|
||||
private Timestamp updateTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.baiye.modules.platform.domain;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* 三方资源
|
||||
*/
|
||||
@Entity
|
||||
@Getter
|
||||
@Setter
|
||||
@Table(name = "tb_tripartite_source")
|
||||
@EntityListeners(AuditingEntityListener.class)
|
||||
public class TripartiteSource implements Serializable {
|
||||
@Id
|
||||
@Column(name = "id")
|
||||
@ApiModelProperty(value = "id")
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@Column(name = "equipment")
|
||||
@ApiModelProperty(value = "equipment")
|
||||
private String equipment;
|
||||
|
||||
@Column(name = "status")
|
||||
@ApiModelProperty(value = "状态 0-未兑换 1-已兑换")
|
||||
private Integer status;
|
||||
|
||||
@Column(name = "type")
|
||||
@ApiModelProperty(value = "状态 0-imei 1-oaid")
|
||||
private Integer type;
|
||||
|
||||
|
||||
@Column(name = "create_time")
|
||||
@ApiModelProperty(value = "createTime")
|
||||
private Date createTime;
|
||||
|
||||
@Column(name = "update_time")
|
||||
@ApiModelProperty(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.baiye.modules.platform.repository;
|
||||
|
||||
import com.baiye.modules.platform.domain.TripartiteDownRecord;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2023/10/13
|
||||
*/
|
||||
public interface TripartiteDownRecordRepository extends JpaRepository<TripartiteDownRecord, Long>, JpaSpecificationExecutor<TripartiteDownRecord> {
|
||||
|
||||
|
||||
/**
|
||||
* 查询下载链接
|
||||
* @param dateStr
|
||||
* @param sourceData
|
||||
* @return
|
||||
*/
|
||||
@Query("select t.filePath from TripartiteDownRecord t where t.dateStr = ?1 and t.sourceData = ?2 order by t.id")
|
||||
String findByDownPathByDateStr(String dateStr,Long sourceData);
|
||||
|
||||
/**
|
||||
* 修改数量
|
||||
* @param totalNumber
|
||||
* @param sourceData
|
||||
* @param dateStr
|
||||
* @return
|
||||
*/
|
||||
@Modifying
|
||||
@Query("UPDATE TripartiteDownRecord set clueNum = ?1 where sourceData = ?2 and dateStr = ?3")
|
||||
int updateNumByDateStr(Integer totalNumber, Long sourceData, String dateStr);
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package com.baiye.modules.platform.repository;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.baiye.modules.platform.domain.TripartiteSource;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date
|
||||
*/
|
||||
@Repository
|
||||
public interface TripartiteSourceRepository extends JpaRepository<TripartiteSource, Long>, JpaSpecificationExecutor<TripartiteSource> {
|
||||
|
||||
|
||||
/**
|
||||
* 状态时间查找查找
|
||||
*
|
||||
* @param num
|
||||
* @param beginOfDay
|
||||
* @param endOfDay
|
||||
* @return
|
||||
*/
|
||||
@Query("from TripartiteSource t where t.status = ?1 and t.createTime > ?2 and t.createTime < ?3 order by t.id")
|
||||
List<TripartiteSource> findByStatusAndCreateTimeBetweenTime(Integer num, DateTime beginOfDay, DateTime endOfDay);
|
||||
|
||||
|
||||
/**
|
||||
* 修改数量
|
||||
* @param num
|
||||
* @param date
|
||||
* @param type
|
||||
* @param minId
|
||||
* @param maxId
|
||||
* @return
|
||||
*/
|
||||
@Modifying
|
||||
@Query("UPDATE TripartiteSource i set i.status = ?1,i.updateTime = ?2 where i.type = ?3 and i.id >= ?4 and i.id <= ?5")
|
||||
int updateSourceByTypeAndId(Integer num, DateTime date, Integer type, Long minId, Long maxId);
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.baiye.modules.platform.rest;
|
||||
|
||||
|
||||
import com.baiye.annotation.Inner;
|
||||
import com.baiye.modules.platform.service.TripartiteDownRecordService;
|
||||
import com.baiye.modules.platform.service.dto.DownRecordQueryCriteria;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/11/17
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "系统下载dmp文件")
|
||||
@RequestMapping("/api/tripartite/record")
|
||||
public class TripartiteDownRecordController {
|
||||
|
||||
|
||||
private final TripartiteDownRecordService tripartiteDownRecordService;
|
||||
|
||||
|
||||
@ApiOperation("查询记录")
|
||||
@GetMapping
|
||||
public ResponseEntity<Object> query(DownRecordQueryCriteria criteria, Pageable pageable) {
|
||||
return new ResponseEntity<>(tripartiteDownRecordService.queryAll(criteria, pageable), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@Inner
|
||||
@ApiOperation("保存下载链接")
|
||||
@GetMapping("/save/path")
|
||||
public ResponseEntity<Void> savePath(Long sourceData, Integer size, String zipPath, String downUrl, String dateStr) {
|
||||
tripartiteDownRecordService.savePathByRecordId(sourceData, size, zipPath, downUrl, dateStr);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@Inner
|
||||
@ApiOperation("保存下载链接")
|
||||
@GetMapping("/update/num")
|
||||
public ResponseEntity<Void> updateNum(Long sourceData, String dateStr,Integer totalNumber) {
|
||||
tripartiteDownRecordService.updateNum(sourceData, dateStr, totalNumber);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@Inner
|
||||
@ApiOperation("下载id查询下载地址")
|
||||
@GetMapping("/find/path")
|
||||
public ResponseEntity<String> queryPathByDateStr(@RequestParam String dateStr,@RequestParam Long sourceData) {
|
||||
String path = tripartiteDownRecordService.findDownPath(dateStr, sourceData);
|
||||
return new ResponseEntity<>(path, HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.baiye.modules.platform.service;
|
||||
|
||||
import com.baiye.modules.platform.service.dto.DownRecordQueryCriteria;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2023/10/13
|
||||
*/
|
||||
public interface TripartiteDownRecordService {
|
||||
|
||||
/**
|
||||
* 日期查询下载记录
|
||||
*
|
||||
* @param dateStr
|
||||
* @param sourceData
|
||||
* @return
|
||||
*/
|
||||
String findDownPath(String dateStr, Long sourceData);
|
||||
|
||||
/**
|
||||
* 查询记录
|
||||
* @param criteria
|
||||
* @param pageable
|
||||
* @return
|
||||
*/
|
||||
Map<String,Object> queryAll(DownRecordQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 保存下载链接
|
||||
*
|
||||
* @param sourceData
|
||||
* @param size
|
||||
* @param zipPath
|
||||
* @param downUrl
|
||||
* @param dateStr
|
||||
*/
|
||||
void savePathByRecordId(Long sourceData, Integer size, String zipPath, String downUrl, String dateStr);
|
||||
|
||||
/**
|
||||
* 修改数量
|
||||
* @param sourceData
|
||||
* @param dateStr
|
||||
* @param totalNumber
|
||||
*/
|
||||
void updateNum(Long sourceData, String dateStr, Integer totalNumber);
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package com.baiye.modules.platform.service;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.baiye.modules.platform.domain.TripartiteSource;
|
||||
import com.baiye.modules.platform.service.dto.TripartiteTransmitDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2023/10/13
|
||||
*/
|
||||
public interface TripartiteSourceService {
|
||||
|
||||
/**
|
||||
* 保存三方资源
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
Boolean tripartiteAddSource(TripartiteTransmitDTO dto);
|
||||
|
||||
/**
|
||||
* 时间
|
||||
*
|
||||
* @param num
|
||||
* @param beginTime
|
||||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
List<TripartiteSource> queryDateByTime(Integer num, DateTime beginTime, DateTime endTime);
|
||||
|
||||
/**
|
||||
* 修改批次
|
||||
* @param type
|
||||
* @param num
|
||||
* @param minId
|
||||
* @param maxId
|
||||
* @return 失败或者成功
|
||||
*/
|
||||
Boolean updateBath(Integer type, Integer num, Long minId, Long maxId);
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package com.baiye.modules.platform.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2023/10/13
|
||||
*/
|
||||
@Data
|
||||
public class TripartitePlatformDTO {
|
||||
|
||||
private String nid;
|
||||
|
||||
private Integer type;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.baiye.modules.platform.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/10/14
|
||||
*/
|
||||
@Data
|
||||
public class TripartiteTransmitDTO {
|
||||
|
||||
|
||||
private String authToken;
|
||||
|
||||
private List<TripartitePlatformDTO> list;
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
package com.baiye.modules.platform.service.impl;
|
||||
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.model.enums.SourceEnums;
|
||||
import com.baiye.modules.platform.domain.TripartiteDownRecord;
|
||||
import com.baiye.modules.platform.repository.TripartiteDownRecordRepository;
|
||||
import com.baiye.modules.platform.service.TripartiteDownRecordService;
|
||||
import com.baiye.modules.platform.service.dto.DownRecordQueryCriteria;
|
||||
import com.baiye.util.PageUtil;
|
||||
import com.baiye.util.QueryHelp;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2023/10/13
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class TripartiteDownRecordServiceImpl implements TripartiteDownRecordService {
|
||||
|
||||
private final TripartiteDownRecordRepository tripartiteDownRecordRepository;
|
||||
|
||||
@Override
|
||||
public String findDownPath(String dateStr, Long sourceData) {
|
||||
return tripartiteDownRecordRepository.findByDownPathByDateStr(dateStr, sourceData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(DownRecordQueryCriteria criteria, Pageable pageable) {
|
||||
Page<TripartiteDownRecord> page = tripartiteDownRecordRepository.findAll((root, query, cb) ->
|
||||
QueryHelp.getPredicate(root, criteria, cb), pageable);
|
||||
return PageUtil.toPage(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void savePathByRecordId(Long sourceData, Integer size, String zipPath, String downUrl, String dateStr) {
|
||||
TripartiteDownRecord downRecord = new TripartiteDownRecord();
|
||||
downRecord.setClueNum(size);
|
||||
downRecord.setDownUrl(downUrl);
|
||||
downRecord.setDateStr(dateStr);
|
||||
downRecord.setFilePath(zipPath);
|
||||
downRecord.setSourceData(sourceData);
|
||||
downRecord.setSourceMemo(SourceEnums.TO8TO.getMemo());
|
||||
downRecord.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
||||
tripartiteDownRecordRepository.save(downRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateNum(Long sourceData, String dateStr, Integer totalNumber) {
|
||||
tripartiteDownRecordRepository.updateNumByDateStr(totalNumber, sourceData, dateStr);
|
||||
}
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package com.baiye.modules.platform.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.modules.platform.domain.TripartiteSource;
|
||||
import com.baiye.modules.platform.repository.TripartiteSourceRepository;
|
||||
import com.baiye.modules.platform.service.TripartiteSourceService;
|
||||
import com.baiye.modules.platform.service.dto.TripartitePlatformDTO;
|
||||
import com.baiye.modules.platform.service.dto.TripartiteTransmitDTO;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2023/10/13
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class TripartiteSourceServiceImpl implements TripartiteSourceService {
|
||||
|
||||
|
||||
@Value("${platform.authToken}")
|
||||
private String authToken;
|
||||
|
||||
|
||||
private final TripartiteSourceRepository tripartiteSourceRepository;
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean tripartiteAddSource(TripartiteTransmitDTO dto) {
|
||||
if (StringUtils.isNotBlank(dto.getAuthToken())
|
||||
&& dto.getAuthToken().equalsIgnoreCase(authToken)) {
|
||||
List<TripartiteSource> sourceList = Lists.newArrayList();
|
||||
if (CollUtil.isNotEmpty(dto.getList())) {
|
||||
for (TripartitePlatformDTO platformDTO : dto.getList()) {
|
||||
TripartiteSource source = new TripartiteSource();
|
||||
source.setType(platformDTO.getType());
|
||||
source.setCreateTime(DateUtil.date());
|
||||
source.setEquipment(platformDTO.getNid().trim());
|
||||
source.setStatus(DefaultNumberConstants.ZERO_NUMBER);
|
||||
sourceList.add(source);
|
||||
}
|
||||
tripartiteSourceRepository.saveAll(sourceList);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
}
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TripartiteSource> queryDateByTime(Integer num, DateTime beginTime, DateTime endTime) {
|
||||
return tripartiteSourceRepository.findByStatusAndCreateTimeBetweenTime(num, beginTime, endTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateBath(Integer type, Integer num, Long minId, Long maxId) {
|
||||
return tripartiteSourceRepository.updateSourceByTypeAndId(num, DateUtil.date(), type, minId, maxId) > DefaultNumberConstants.ZERO_NUMBER;
|
||||
}
|
||||
}
|
@ -0,0 +1,130 @@
|
||||
package com.baiye.timed;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baiye.common.CommonLog;
|
||||
import com.baiye.config.properties.DeliveryProperties;
|
||||
import com.baiye.constant.AdPlatFormConstants;
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.enums.MailRequestEnum;
|
||||
import com.baiye.modules.platform.domain.TripartiteSource;
|
||||
import com.baiye.modules.platform.service.DeliveryRecordService;
|
||||
import com.baiye.modules.platform.service.TripartiteSourceService;
|
||||
import com.baiye.modules.platform.service.dto.ImeiDTO;
|
||||
import com.baiye.util.RedisUtils;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.sun.corba.se.impl.orbutil.ORBConstants;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class TripartiteDeliveryTask {
|
||||
|
||||
|
||||
private final RedisUtils redisUtils;
|
||||
|
||||
private final DeliveryProperties deliveryProperties;
|
||||
|
||||
private final DeliveryRecordService deliveryRecordService;
|
||||
|
||||
private final TripartiteSourceService tripartiteSourceService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 凌晨一点兑换第三方数据
|
||||
*
|
||||
*/
|
||||
@Scheduled(cron = "0 0 1 * * ? ")
|
||||
public void dealTurnover() {
|
||||
DateTime date = DateUtil.offsetDay(DateUtil.date(),DefaultNumberConstants.MINUS_ONE_NUMBER);
|
||||
List<TripartiteSource> sourceList = tripartiteSourceService.queryDateByTime
|
||||
(DefaultNumberConstants.ZERO_NUMBER, DateUtil.beginOfDay(date), DateUtil.endOfDay(date));
|
||||
if (CollUtil.isNotEmpty(sourceList)) {
|
||||
// type 分组
|
||||
Map<Integer, List<TripartiteSource>> listMap =
|
||||
sourceList.stream().collect(Collectors.groupingBy(TripartiteSource::getType));
|
||||
|
||||
for (Map.Entry<Integer, List<TripartiteSource>> map : listMap.entrySet()) {
|
||||
// 去除重复数据
|
||||
List<TripartiteSource> list =
|
||||
Lists.newArrayList(Sets.newHashSet(map.getValue()));
|
||||
// 接口每次100000
|
||||
List<List<TripartiteSource>> lists = Lists.partition
|
||||
(list, DefaultNumberConstants.ONE_HUNDRED_THOUSAND);
|
||||
for (List<TripartiteSource> taskImeiList : lists) {
|
||||
// 发送并修改状态
|
||||
sendSourceAndUpdateImeiStatus(map.getKey(), taskImeiList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 接口发送数据
|
||||
*
|
||||
* @param type
|
||||
* @param list
|
||||
*/
|
||||
private void sendSourceAndUpdateImeiStatus(Integer type, List<TripartiteSource> list) {
|
||||
Long minId = (long) DefaultNumberConstants.ZERO_NUMBER;
|
||||
Long maxId = (long) DefaultNumberConstants.ZERO_NUMBER;
|
||||
// 接口最小20 邮件最小50
|
||||
if (list.size() > DefaultNumberConstants.TWENTY_NUMBER) {
|
||||
Comparator<TripartiteSource> comparing = Comparator.comparing(TripartiteSource::getId);
|
||||
// 最小id
|
||||
minId = getaLong(list.stream().min(comparing), minId);
|
||||
// 最大id
|
||||
maxId = getaLong(list.stream().max(comparing), maxId);
|
||||
if (minId > DefaultNumberConstants.ZERO_NUMBER &&
|
||||
maxId > DefaultNumberConstants.ZERO_NUMBER) {
|
||||
String taskImeiName = redisUtils.acquisitionBatch(MailRequestEnum.BT.getCacheName());
|
||||
List<ImeiDTO> toList = Lists.newArrayList();
|
||||
list.forEach(source -> {
|
||||
ImeiDTO imeiDTO = new ImeiDTO();
|
||||
imeiDTO.setImei(source.getEquipment());
|
||||
imeiDTO.setTag(AdPlatFormConstants.DEFAULT_TAG);
|
||||
toList.add(imeiDTO);
|
||||
});
|
||||
// 接口兑换
|
||||
Boolean result = deliveryRecordService.exchangeByInterFace
|
||||
(toList, taskImeiName, type, deliveryProperties.getPublicKey(), deliveryProperties.getPrivateKey());
|
||||
if (Boolean.TRUE.equals(result)) {
|
||||
CommonLog.info("兑换,当前tag值为".concat(toList.get(DefaultNumberConstants.ZERO_NUMBER).getTag()));
|
||||
// 保存发送记录
|
||||
deliveryRecordService.saveDeliveryRecord(null, taskImeiName,
|
||||
AdPlatFormConstants.DEFAULT_TAG, toList.size(), null,
|
||||
(long) ORBConstants.GIOP_DEFAULT_BUFFER_SIZE, DefaultNumberConstants.FOUR_NUMBER, type, null);
|
||||
// 批次修改状态
|
||||
tripartiteSourceService.updateBath(type, DefaultNumberConstants.ONE_NUMBER, minId, maxId);
|
||||
}
|
||||
log.info("=============== the interface sending a request result as {} batchNo as {} minId {} maxId {} ===============", result, taskImeiName, minId, maxId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Long getaLong(Optional<TripartiteSource> downList, Long updateId) {
|
||||
// 最小id
|
||||
if (downList.isPresent()) {
|
||||
updateId = downList.get().getId();
|
||||
}
|
||||
return updateId;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.baiye.model.enums;
|
||||
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2023/10/16
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum SourceEnums {
|
||||
|
||||
|
||||
/**
|
||||
* 置顶
|
||||
*/
|
||||
TO8TO(1024, "土巴兔");
|
||||
|
||||
private final Integer value;
|
||||
|
||||
private final String memo;
|
||||
|
||||
}
|
Loading…
Reference in New Issue