添加oa兑换

master
bynt 12 months ago
parent 7573432c5b
commit d15641dc94

@ -6,16 +6,16 @@ spring:
auto-commit: true auto-commit: true
#注意的是这个地方的定义需要用在DataSourceConfig.java里面使用是因为在定义JobEventConfig.java的时候需要引入自定义dataSource #注意的是这个地方的定义需要用在DataSourceConfig.java里面使用是因为在定义JobEventConfig.java的时候需要引入自定义dataSource
password: y7z7noq2 password: y7z7noq2
jdbc-url: jdbc:mysql://8.130.96.163:3306/ad_platform?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull jdbc-url: jdbc:mysql://39.100.77.21:3306/ad_platform?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
username: root username: root
redis: redis:
#数据库索引 #数据库索引
database: 2 database: 2
host: 8.130.96.163 host: 39.100.77.21
port: 6379 port: 6379
#连接超时时间 #连接超时时间
timeout: 5000 timeout: 5000
password: password: sC33HXphkHBRj4Jb
cloud: cloud:
nacos: nacos:
server-addr: 127.0.0.1:8848 server-addr: 127.0.0.1:8848

@ -2,11 +2,11 @@ spring:
redis: redis:
#数据库索引 #数据库索引
database: 9 database: 9
host: 8.130.96.163 host: 39.100.77.21
port: 6379 port: 6379
password: password: sC33HXphkHBRj4Jb
datasource: datasource:
url: jdbc:mysql://${MYSQL_HOST:8.130.96.163}:${MYSQL_PORT:3306}/${MYSQL_DB:gateway}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true url: jdbc:mysql://${MYSQL_HOST:39.100.77.21}:${MYSQL_PORT:3306}/${MYSQL_DB:gateway}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
username: ${MYSQL_USER:root} username: ${MYSQL_USER:root}
password: ${MYSQL_PASSWORD:y7z7noq2} password: ${MYSQL_PASSWORD:y7z7noq2}

@ -33,14 +33,6 @@ spring:
- Path=/api-task/** - Path=/api-task/**
filters: filters:
- StripPrefix=1 - StripPrefix=1
redis:
#数据库索引
database: 0
host: 8.130.96.163
port: 6379
password:
#连接超时时间
timeout: 5000
hystrix: hystrix:
command: command:
default: default:

@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
* @author Enzo * @author Enzo
* @date : 2023/6/12 * @date : 2023/6/12
*/ */
@Api(tags = "支付宝支付") @Api(tags = "设置回调")
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping(value = "/callback/v1") @RequestMapping(value = "/callback/v1")

@ -43,8 +43,10 @@ public class DownRecordController {
@ApiOperation("上传文件发送邮件") @ApiOperation("上传文件发送邮件")
@PostMapping("/upload/files") @PostMapping("/upload/files")
public ResponseEntity<Object> uploadFile(@RequestParam("file") MultipartFile[] files,@RequestParam(value = "taskName") String taskName) { public ResponseEntity<Object> uploadFile(@RequestParam("file") MultipartFile[] files,
return new ResponseEntity<>(downRecordService.uploadFile(files, taskName), HttpStatus.OK); @RequestParam(value = "taskName") String taskName, @RequestParam("uploadType") Integer uploadType) {
return new ResponseEntity<>(downRecordService.uploadFile(files, taskName, uploadType), HttpStatus.OK);
} }
@Inner @Inner

@ -16,6 +16,7 @@ public interface DeliveryRecordService {
* *
* @param filePath * @param filePath
* @param taskName * @param taskName
* @param tagStr
* @param num * @param num
* @param taskId * @param taskId
* @param userId * @param userId
@ -24,7 +25,7 @@ public interface DeliveryRecordService {
* @param downId * @param downId
* @return * @return
*/ */
Long saveDeliveryRecord(String filePath, String taskName, Integer num, Long taskId, Long userId, Integer type, Integer exchangeType, Long downId); Long saveDeliveryRecord(String filePath, String taskName, String tagStr, Integer num, Long taskId, Long userId, Integer type, Integer exchangeType, Long downId);
/** /**
* *
@ -48,11 +49,12 @@ public interface DeliveryRecordService {
* *
* @param imeiDTOList * @param imeiDTOList
* @param taskImeiName * @param taskImeiName
* @param uploadType
* @param publicKey * @param publicKey
* @param privateKey * @param privateKey
* @return * @return
*/ */
Boolean exchangeByInterFace(List<ImeiDTO> imeiDTOList, String taskImeiName, String publicKey, String privateKey); Boolean exchangeByInterFace(List<ImeiDTO> imeiDTOList, String taskImeiName, Integer uploadType, String publicKey, String privateKey);
/** /**
* *

@ -57,9 +57,10 @@ public interface DownRecordService {
* *
* @param files * @param files
* @param taskName * @param taskName
* @param uploadType
* @return * @return
*/ */
Boolean uploadFile(MultipartFile[] files, String taskName); Boolean uploadFile(MultipartFile[] files, String taskName, Integer uploadType);
/** /**
* id * id

@ -26,6 +26,8 @@ public class ExchangeStripsDTO implements Serializable {
@SerializedName("org_code") @SerializedName("org_code")
private String orgCode; private String orgCode;
@SerializedName("type")
private Integer type;
@SerializedName("datas") @SerializedName("datas")
private List<Data> datas; private List<Data> datas;

@ -37,13 +37,14 @@ public class DeliveryRecordServiceImpl implements DeliveryRecordService {
@Override @Override
public Long saveDeliveryRecord(String filePath, String taskName, public Long saveDeliveryRecord(String filePath, String taskName,
Integer num, Long taskId, Long userId, Integer type, Integer exchangeType, Long downId) { String tagStr, Integer num, Long taskId, Long userId, Integer type, Integer exchangeType, Long downId) {
DeliveryRecord deliveryRecord = new DeliveryRecord(); DeliveryRecord deliveryRecord = new DeliveryRecord();
deliveryRecord.setNum(num); deliveryRecord.setNum(num);
deliveryRecord.setType(type); deliveryRecord.setType(type);
deliveryRecord.setUserId(userId); deliveryRecord.setUserId(userId);
deliveryRecord.setDownId(downId); deliveryRecord.setDownId(downId);
deliveryRecord.setTaskId(taskId); deliveryRecord.setTaskId(taskId);
deliveryRecord.setTagStr(tagStr);
deliveryRecord.setTaskName(taskName); deliveryRecord.setTaskName(taskName);
deliveryRecord.setUploadUrl(filePath); deliveryRecord.setUploadUrl(filePath);
deliveryRecord.setExchangeType(exchangeType); deliveryRecord.setExchangeType(exchangeType);
@ -64,16 +65,16 @@ public class DeliveryRecordServiceImpl implements DeliveryRecordService {
@Override @Override
public Boolean exchangeByInterFace(List<ImeiDTO> imeiDTOList, String taskImeiName, String publicKey, String privateKey) { public Boolean exchangeByInterFace(List<ImeiDTO> dtoList, String taskImeiName, Integer uploadType, String publicKey, String privateKey) {
List<ExchangeStripsDTO.Data> list = Lists.newArrayList(); List<ExchangeStripsDTO.Data> list = Lists.newArrayList();
imeiDTOList.forEach(imeiDTO -> { dtoList.forEach(imeiDTO -> {
ExchangeStripsDTO.Data data = new ExchangeStripsDTO.Data(); ExchangeStripsDTO.Data data = new ExchangeStripsDTO.Data();
data.setData(Base64.encode(imeiDTO.getImei().concat(StrPool.COMMA).concat(imeiDTO.getTag()))); data.setData(Base64.encode(imeiDTO.getImei().concat(StrPool.COMMA).concat(imeiDTO.getTag())));
list.add(data); list.add(data);
}); });
ExchangeStripsDTO build = ExchangeStripsDTO.builder().batchId(taskImeiName).reqId ExchangeStripsDTO build = ExchangeStripsDTO.builder().batchId(taskImeiName).reqId
(RandomUtil.randomString(DefaultNumberConstants.TEN_NUMBER)).orgCode (RandomUtil.randomString(DefaultNumberConstants.TEN_NUMBER)).orgCode
(exchangeProperties.getOrgCode()).datas(list).build(); (exchangeProperties.getOrgCode()).datas(list).type(uploadType).build();
String post = HttpUtil.post(exchangeProperties.getSubmitUrl(), JSONUtil.toJsonStr(build)); String post = HttpUtil.post(exchangeProperties.getSubmitUrl(), JSONUtil.toJsonStr(build));
log.info("============ the submit result as {} =========", JSONUtil.toJsonStr(post)); log.info("============ the submit result as {} =========", JSONUtil.toJsonStr(post));
return Boolean.TRUE; return Boolean.TRUE;

@ -91,15 +91,15 @@ public class DownRecordServiceImpl implements DownRecordService {
deliveryProperties.getEmailPassword(), deliveryProperties.getToEmailAddress(), downRecord.getDownUrl(), taskImeiName); deliveryProperties.getEmailPassword(), deliveryProperties.getToEmailAddress(), downRecord.getDownUrl(), taskImeiName);
// 保存批次号 // 保存批次号
Long downId = downRecordRepository.save(downRecord).getId(); Long downId = downRecordRepository.save(downRecord).getId();
deliveryRecordService.saveDeliveryRecord(downRecord.getDownUrl(), taskImeiName, downRecord.getClueNum(), null, deliveryRecordService.saveDeliveryRecord(downRecord.getDownUrl(), taskImeiName, null, downRecord.getClueNum(), null,
SecurityUtils.getCurrentUserId(), DefaultNumberConstants.TWO_NUMBER, DefaultNumberConstants.TWO_NUMBER, downId); SecurityUtils.getCurrentUserId(), DefaultNumberConstants.TWO_NUMBER, DefaultNumberConstants.ZERO_NUMBER, downId);
return Boolean.TRUE; return Boolean.TRUE;
} }
throw new BadRequestException(ResponseCode.SEND_MAIL_FRIEND.getDesc()); throw new BadRequestException(ResponseCode.SEND_MAIL_FRIEND.getDesc());
} }
@Override @Override
public Boolean uploadFile(MultipartFile[] files, String taskName) { public Boolean uploadFile(MultipartFile[] files, String taskName, Integer uploadType) {
if (files.length > DefaultNumberConstants.ZERO_NUMBER) { if (files.length > DefaultNumberConstants.ZERO_NUMBER) {
List<ImeiDTO> dtoList = Lists.newArrayList(); List<ImeiDTO> dtoList = Lists.newArrayList();
for (MultipartFile file : files) { for (MultipartFile file : files) {
@ -127,14 +127,14 @@ public class DownRecordServiceImpl implements DownRecordService {
SendMailDTO sendMailDTO = FileAndMailUtil.zipFileAndSendDMPMail(list, file, taskImeiName, deliveryProperties, DefaultNumberConstants.TWO_NUMBER); SendMailDTO sendMailDTO = FileAndMailUtil.zipFileAndSendDMPMail(list, file, taskImeiName, deliveryProperties, DefaultNumberConstants.TWO_NUMBER);
String filePath = deliveryProperties.getDmpDownPath().concat(uuid).concat(FileConstant.ZIP_FILE_SUB_NAME); String filePath = deliveryProperties.getDmpDownPath().concat(uuid).concat(FileConstant.ZIP_FILE_SUB_NAME);
Long downId = this.createRecord(list.size(), "超级管理员", taskName, sendMailDTO.getZipPath(), filePath, DefaultNumberConstants.TWO_NUMBER); Long downId = this.createRecord(list.size(), "超级管理员", taskName, sendMailDTO.getZipPath(), filePath, DefaultNumberConstants.TWO_NUMBER);
deliveryRecordService.saveDeliveryRecord(sendMailDTO.getZipPath(), taskImeiName, list.size(), null, deliveryRecordService.saveDeliveryRecord(sendMailDTO.getZipPath(), taskImeiName,list.get(DefaultNumberConstants.ZERO_NUMBER).getTag(), list.size(), null,
SecurityUtils.getCurrentUserId(), DefaultNumberConstants.TWO_NUMBER, DefaultNumberConstants.TWO_NUMBER, downId); SecurityUtils.getCurrentUserId(), DefaultNumberConstants.TWO_NUMBER, uploadType, downId);
} }
return Boolean.TRUE; return Boolean.TRUE;
} }
// 每次1000 数据 // 每次100000 数据
List<List<ImeiDTO>> partition = Lists.partition List<List<ImeiDTO>> partition = Lists.partition
(dtoArrayList, DefaultNumberConstants.ONE_THOUSAND); (dtoArrayList, DefaultNumberConstants.ONE_HUNDRED_THOUSAND);
String uuid = IdUtil.fastSimpleUUID(); String uuid = IdUtil.fastSimpleUUID();
String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(uuid); String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(uuid);
String filePath = deliveryProperties.getDmpDownPath().concat(uuid).concat(FileConstant.ZIP_FILE_SUB_NAME); String filePath = deliveryProperties.getDmpDownPath().concat(uuid).concat(FileConstant.ZIP_FILE_SUB_NAME);
@ -144,10 +144,10 @@ public class DownRecordServiceImpl implements DownRecordService {
for (List<ImeiDTO> list : partition) { for (List<ImeiDTO> list : partition) {
String taskImeiName = redisUtils.acquisitionBatch(MailRequestEnum.MM.getCacheName()); String taskImeiName = redisUtils.acquisitionBatch(MailRequestEnum.MM.getCacheName());
Boolean result = deliveryRecordService.exchangeByInterFace Boolean result = deliveryRecordService.exchangeByInterFace
(list, taskImeiName, deliveryProperties.getPublicKey(), deliveryProperties.getPrivateKey()); (list, taskImeiName, uploadType, deliveryProperties.getPublicKey(), deliveryProperties.getPrivateKey());
if (Boolean.TRUE.equals(result)) { if (Boolean.TRUE.equals(result)) {
deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiName, list.size(), null, deliveryRecordService.saveDeliveryRecord(zipPath, taskImeiName, list.get(DefaultNumberConstants.ZERO_NUMBER).getTag(), list.size(), null,
SecurityUtils.getCurrentUserId(), DefaultNumberConstants.TWO_NUMBER, DefaultNumberConstants.ONE_NUMBER, downId); SecurityUtils.getCurrentUserId(), DefaultNumberConstants.TWO_NUMBER, uploadType, downId);
} }
log.info("=========== the interface conversion result is {} =========== ", result); log.info("=========== the interface conversion result is {} =========== ", result);
} }

@ -151,17 +151,17 @@ public class TaskImeiServiceImpl implements TaskImeiService {
String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(taskImeiDTO.getBatchNo()); String file = deliveryProperties.getFileUrl().concat(StrPool.SLASH).concat(taskImeiDTO.getBatchNo());
SendMailDTO sendMailDTO = FileAndMailUtil.zipFileAndSendDMPMail SendMailDTO sendMailDTO = FileAndMailUtil.zipFileAndSendDMPMail
(filterList, file, taskImeiDTO.getBatchNo(), deliveryProperties, DefaultNumberConstants.TWO_NUMBER); (filterList, file, taskImeiDTO.getBatchNo(), deliveryProperties, DefaultNumberConstants.TWO_NUMBER);
Long recordId = deliveryRecordService.saveDeliveryRecord(sendMailDTO.getZipPath(), taskImeiDTO.getBatchNo(), dtoList.size(), Long recordId = deliveryRecordService.saveDeliveryRecord(sendMailDTO.getZipPath(), taskImeiDTO.getBatchNo(), null, dtoList.size(),
null, (long) DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.THREE_NUMBER, DefaultNumberConstants.TWO_NUMBER, null); null, (long) DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.THREE_NUMBER, DefaultNumberConstants.ZERO_NUMBER, null);
// 缓存一天 // 缓存一天
redisUtils.set(CacheKey.UPLOAD_BATCH.concat(taskImeiDTO.getBatchNo()), recordId, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS); redisUtils.set(CacheKey.UPLOAD_BATCH.concat(taskImeiDTO.getBatchNo()), recordId, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS);
return CommonResponse.createBySuccess(DefaultNumberConstants.TWO_HUNDRED); return CommonResponse.createBySuccess(DefaultNumberConstants.TWO_HUNDRED);
} }
Boolean result = deliveryRecordService.exchangeByInterFace Boolean result = deliveryRecordService.exchangeByInterFace
(filterList, taskImeiDTO.getBatchNo(), deliveryProperties.getPublicKey(), deliveryProperties.getPrivateKey()); (filterList, taskImeiDTO.getBatchNo(), DefaultNumberConstants.ZERO_NUMBER, deliveryProperties.getPublicKey(), deliveryProperties.getPrivateKey());
if (Boolean.TRUE.equals(result)) { if (Boolean.TRUE.equals(result)) {
Long recordId = deliveryRecordService.saveDeliveryRecord(null, taskImeiDTO.getBatchNo(), dtoList.size(), Long recordId = deliveryRecordService.saveDeliveryRecord(null, taskImeiDTO.getBatchNo(), null, dtoList.size(),
null, (long) DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.THREE_NUMBER, DefaultNumberConstants.ONE_NUMBER, null); null, (long) DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.THREE_NUMBER, DefaultNumberConstants.ZERO_NUMBER, null);
// 缓存一天 // 缓存一天
redisUtils.set(CacheKey.UPLOAD_BATCH.concat(taskImeiDTO.getBatchNo()), recordId, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS); redisUtils.set(CacheKey.UPLOAD_BATCH.concat(taskImeiDTO.getBatchNo()), recordId, DefaultNumberConstants.ONE_NUMBER, TimeUnit.DAYS);
log.info("============= interface sending send recordId {} =============", recordId); log.info("============= interface sending send recordId {} =============", recordId);

@ -192,7 +192,7 @@ public class DeliveryBalanceTask {
if (sendMailDTO.getSendResult().equals(Boolean.TRUE)) { if (sendMailDTO.getSendResult().equals(Boolean.TRUE)) {
// 保存发送记录 // 保存发送记录
deliveryRecordService.saveDeliveryRecord(sendMailDTO.getZipPath(), taskImeiName, deliveryRecordService.saveDeliveryRecord(sendMailDTO.getZipPath(), taskImeiName,
taskImeiList.size(), taskId, userId, DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.TWO_NUMBER, null); taskImeiList.get(DefaultNumberConstants.ZERO_NUMBER).getTag(), taskImeiList.size(), taskId, userId, DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.ZERO_NUMBER, null);
// 批次修改状态 // 批次修改状态
taskImeiService.updateBath(taskId, CharSequenceUtil.EMPTY, DefaultNumberConstants.ONE_NUMBER, minId, maxId); taskImeiService.updateBath(taskId, CharSequenceUtil.EMPTY, DefaultNumberConstants.ONE_NUMBER, minId, maxId);
} }
@ -200,11 +200,11 @@ public class DeliveryBalanceTask {
} }
// 接口兑换 // 接口兑换
Boolean result = deliveryRecordService.exchangeByInterFace Boolean result = deliveryRecordService.exchangeByInterFace
(toList, taskImeiName, deliveryProperties.getPublicKey(), deliveryProperties.getPrivateKey()); (toList, taskImeiName, DefaultNumberConstants.ZERO_NUMBER, deliveryProperties.getPublicKey(), deliveryProperties.getPrivateKey());
if (Boolean.TRUE.equals(result)) { if (Boolean.TRUE.equals(result)) {
// 保存发送记录 // 保存发送记录
deliveryRecordService.saveDeliveryRecord(null, taskImeiName, deliveryRecordService.saveDeliveryRecord(null, taskImeiName,
toList.size(), taskId, userId, DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.ONE_NUMBER, null); taskImeiList.get(DefaultNumberConstants.ZERO_NUMBER).getTag(), toList.size(), taskId, userId, DefaultNumberConstants.ONE_NUMBER, DefaultNumberConstants.ZERO_NUMBER, null);
// 批次修改状态 // 批次修改状态
taskImeiService.updateBath(taskId, taskImeiService.updateBath(taskId,
CharSequenceUtil.EMPTY, DefaultNumberConstants.ONE_NUMBER, minId, maxId); CharSequenceUtil.EMPTY, DefaultNumberConstants.ONE_NUMBER, minId, maxId);

@ -56,6 +56,11 @@ public class BaseDeliveryRecord {
@Column(name = "decrypt_num") @Column(name = "decrypt_num")
private Integer decryptNum; private Integer decryptNum;
@ApiModelProperty("标签字符串")
@Column(name = "tag_str")
private String tagStr;
@ApiModelProperty("任务类型 1:定时发送 2:手动上传") @ApiModelProperty("任务类型 1:定时发送 2:手动上传")
@Column(name = "type") @Column(name = "type")
private Integer type; private Integer type;

@ -230,6 +230,14 @@ public class DmpCallbackServiceImpl implements DmpCallbackService {
tagList.add(stringList.get(DefaultNumberConstants.ONE_NUMBER)); tagList.add(stringList.get(DefaultNumberConstants.ONE_NUMBER));
phoneList.add(stringList.get(DefaultNumberConstants.TWO_NUMBER)); phoneList.add(stringList.get(DefaultNumberConstants.TWO_NUMBER));
} }
// 兑换条件为oa
if (ObjectUtil.isNotNull(byTaskName.getExchangeType())
&& byTaskName.getExchangeType() == DefaultNumberConstants.ONE_NUMBER) {
originalList.add(stringList);
tagList.add(byTaskName.getTagStr());
phoneList.add(stringList.get(DefaultNumberConstants.ZERO_NUMBER));
}
} }
} }
} }

Loading…
Cancel
Save