|
|
|
@ -1,13 +1,27 @@
|
|
|
|
|
package com.baiye.modules.platform.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import cn.hutool.core.text.StrPool;
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import com.baiye.config.properties.DeliveryProperties;
|
|
|
|
|
import com.baiye.constant.DefaultNumberConstants;
|
|
|
|
|
import com.baiye.constant.FileConstant;
|
|
|
|
|
import com.baiye.http.CommonResponse;
|
|
|
|
|
import com.baiye.model.enums.ResponseCode;
|
|
|
|
|
|
|
|
|
|
import com.baiye.modules.platform.domain.DeliveryRecord;
|
|
|
|
|
import com.baiye.modules.platform.domain.TaskImei;
|
|
|
|
|
import com.baiye.modules.platform.repository.TaskImeiRepository;
|
|
|
|
|
import com.baiye.modules.platform.service.DeliveryRecordService;
|
|
|
|
|
import com.baiye.modules.platform.service.TaskImeiService;
|
|
|
|
|
import com.baiye.modules.platform.service.dto.RepeatFormDTO;
|
|
|
|
|
import com.baiye.modules.platform.service.dto.ImeiDTO;
|
|
|
|
|
import com.baiye.modules.platform.service.dto.PlatformTransmitDTO;
|
|
|
|
|
import com.baiye.modules.platform.service.dto.RepeatFormDTO;
|
|
|
|
|
import com.baiye.modules.platform.service.dto.TaskImeiDTO;
|
|
|
|
|
import com.baiye.util.*;
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
import com.google.common.collect.Sets;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
@ -15,8 +29,11 @@ import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author Enzo
|
|
|
|
@ -30,8 +47,14 @@ public class TaskImeiServiceImpl implements TaskImeiService {
|
|
|
|
|
@Value("${platform.authToken}")
|
|
|
|
|
private String authToken;
|
|
|
|
|
|
|
|
|
|
private final RedisUtils redisUtils;
|
|
|
|
|
|
|
|
|
|
private final DeliveryProperties deliveryProperties;
|
|
|
|
|
|
|
|
|
|
private final TaskImeiRepository taskImeiRepository;
|
|
|
|
|
|
|
|
|
|
private final DeliveryRecordService deliveryRecordService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<TaskImei> findByStatus(Integer num) {
|
|
|
|
@ -74,17 +97,17 @@ public class TaskImeiServiceImpl implements TaskImeiService {
|
|
|
|
|
public Boolean updateImeiByTaskName(String taskName) {
|
|
|
|
|
return taskImeiRepository.updateImeiByTaskName
|
|
|
|
|
(DefaultNumberConstants.ONE_NUMBER, DateUtil.date(), taskName)
|
|
|
|
|
> DefaultNumberConstants.ZERO_NUMBER;
|
|
|
|
|
> DefaultNumberConstants.ZERO_NUMBER;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean updateBath(Long taskId, String taskImeiName, Integer num, Long minId, Long maxId) {
|
|
|
|
|
public Boolean updateBath(Long taskId, String taskImeiName, Integer num, Long minId, Long maxId) {
|
|
|
|
|
return taskImeiRepository.updateImeiByTaskNameId
|
|
|
|
|
(num, taskImeiName, DateUtil.date(), taskId, minId, maxId) > DefaultNumberConstants.ZERO_NUMBER;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Integer countByUserIdAndDate( Long userId, Integer num) {
|
|
|
|
|
public Integer countByUserIdAndDate(Long userId, Integer num) {
|
|
|
|
|
return taskImeiRepository.countByUserId(userId, num);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -93,5 +116,51 @@ public class TaskImeiServiceImpl implements TaskImeiService {
|
|
|
|
|
taskImeiRepository.deleteByTaskIds(taskIds);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public CommonResponse<Object> processingData(TaskImeiDTO taskImeiDTO) {
|
|
|
|
|
List<ImeiDTO> dtoList = Lists.newArrayList(Sets.newHashSet(taskImeiDTO.getImeiList()));
|
|
|
|
|
if (dtoList.size() < DefaultNumberConstants.ONE_HUNDRED) {
|
|
|
|
|
return CommonResponse.createByErrorCodeMessage
|
|
|
|
|
(DefaultNumberConstants.ZERO_NUMBER, ResponseCode.SEND_MAIL_NUM_FRIEND.getDesc());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (dtoList.size() >= DefaultNumberConstants.ONE_HUNDRED_THOUSAND) {
|
|
|
|
|
return CommonResponse.createByErrorCodeMessage
|
|
|
|
|
(DefaultNumberConstants.ZERO_NUMBER, ResponseCode.SEND_MAIL_MAX_NUM_FRIEND.getDesc());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (redisUtils.get(taskImeiDTO.getBatchNo()) != null) {
|
|
|
|
|
DeliveryRecord byBatchNo = deliveryRecordService.findByBatchNo(taskImeiDTO.getBatchNo());
|
|
|
|
|
if (ObjectUtil.isNotNull(byBatchNo) && ObjectUtil.isNotNull(byBatchNo.getId())) {
|
|
|
|
|
return CommonResponse.createByErrorCodeMessage
|
|
|
|
|
(DefaultNumberConstants.ZERO_NUMBER, ResponseCode.BATCH_NUMBER_ALREADY_EXISTS.getDesc());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dtoList.forEach(o -> o.setImei(AESUtils.decrypt(o.getImei(), deliveryProperties.getExchangePassword())));
|
|
|
|
|
// 过滤未解密完成的
|
|
|
|
|
List<ImeiDTO> filterList = dtoList.stream().filter
|
|
|
|
|
(o -> ObjectUtil.isNotNull(o.getImei())).collect(Collectors.toList());
|
|
|
|
|
if (CollUtil.isNotEmpty(filterList)) {
|
|
|
|
|
String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(taskImeiDTO.getBatchNo());
|
|
|
|
|
// 保存文件
|
|
|
|
|
String csvPath = file.concat(StrPool.DOT).concat(FileConstant.CSV_FILE_SUB_NAME);
|
|
|
|
|
CSVFileUtil.createCsvFile(filterList, csvPath);
|
|
|
|
|
String zipPath = file.concat(FileConstant.ZIP_FILE_SUB_NAME);
|
|
|
|
|
// 设置压缩文件
|
|
|
|
|
CompressUtil.decryptionCompression
|
|
|
|
|
(zipPath, csvPath, deliveryProperties.getZipPassword());
|
|
|
|
|
// 发送邮件
|
|
|
|
|
MailUtil.sendMail(deliveryProperties.getEmailAddress(),
|
|
|
|
|
deliveryProperties.getEmailPassword(), deliveryProperties.getToEmailAddress(), zipPath, taskImeiDTO.getBatchNo());
|
|
|
|
|
Long recordId = deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiDTO.getBatchNo(), dtoList.size(),
|
|
|
|
|
null, (long) DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.THREE_NUMBER);
|
|
|
|
|
// 缓存三天
|
|
|
|
|
redisUtils.set(taskImeiDTO.getBatchNo(), recordId, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS);
|
|
|
|
|
}
|
|
|
|
|
return CommonResponse.createBySuccess(DefaultNumberConstants.TWO_HUNDRED);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|