|
|
@@ -869,44 +869,44 @@ public class MintOrderService {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-// @Scheduled(cron = "0 0/5 * * * ?")
|
|
|
-// public void airDropDelayedOrder() {
|
|
|
-// if (generalProperties.isNotifyServer()) {
|
|
|
-// throw new BusinessException("订单服务器不执行");
|
|
|
-// }
|
|
|
-// List<MintOrder> delayedOrders = mintOrderRepo
|
|
|
-// .findByStatusAndDelayAndAirDropTimeBefore(MintOrderStatus.AIR_DROP, true, LocalDateTime.now());
|
|
|
-// delayedOrders.forEach(mintOrder -> {
|
|
|
-// if (!getOrderLock(mintOrder.getId())) {
|
|
|
-// log.error("空投失败 {}, redis锁了", mintOrder.getId());
|
|
|
-// } else {
|
|
|
-// try {
|
|
|
-// MintActivity mintActivity = mintActivityRepo.findById(mintOrder.getMintActivityId())
|
|
|
-// .orElseThrow(new BusinessException("未找到铸造活动"));
|
|
|
-// User user = userRepo.findById(mintOrder.getUserId()).orElseThrow(new BusinessException("无用户"));
|
|
|
-// airDropService.create(AirDrop.builder()
|
|
|
-// .name("铸造活动[" + mintActivity.getName() + "]空投")
|
|
|
-// .remark(mintOrder.getId().toString())
|
|
|
-// .type(AirDropType.asset)
|
|
|
-// .userIds(Collections.singletonList(mintOrder.getUserId()))
|
|
|
-// .collectionId(mintActivity.getAirDropCollectionId())
|
|
|
-// .targets(Collections
|
|
|
-// .singletonList(new DropTarget(user.getId(), user
|
|
|
-// .getPhone(), user.getNickname(), mintActivity
|
|
|
-// .getAutoDropNum())))
|
|
|
-// .auto(true)
|
|
|
-// .companyId(mintActivity.getCompanyId())
|
|
|
-// .build());
|
|
|
-// mintOrder.setStatus(MintOrderStatus.FINISH);
|
|
|
-// mintOrderRepo.save(mintOrder);
|
|
|
-// releaseOrderLock(mintOrder.getId());
|
|
|
-// log.info("空投成功" + mintOrder.getId());
|
|
|
-// } catch (Exception e) {
|
|
|
-// releaseOrderLock(mintOrder.getId());
|
|
|
-// log.error("延迟空投出错:mintOrderId" + mintOrder.getId(), e);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// });
|
|
|
-// }
|
|
|
+ @Scheduled(cron = "0 0/5 * * * ?")
|
|
|
+ public void airDropDelayedOrder() {
|
|
|
+ if (generalProperties.isNotifyServer()) {
|
|
|
+ throw new BusinessException("订单服务器不执行");
|
|
|
+ }
|
|
|
+ List<MintOrder> delayedOrders = mintOrderRepo
|
|
|
+ .findByStatusAndDelayAndAirDropTimeBefore(MintOrderStatus.AIR_DROP, true, LocalDateTime.now());
|
|
|
+ delayedOrders.forEach(mintOrder -> {
|
|
|
+ if (!getOrderLock(mintOrder.getId())) {
|
|
|
+ log.error("空投失败 {}, redis锁了", mintOrder.getId());
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ MintActivity mintActivity = mintActivityRepo.findById(mintOrder.getMintActivityId())
|
|
|
+ .orElseThrow(new BusinessException("未找到铸造活动"));
|
|
|
+ User user = userRepo.findById(mintOrder.getUserId()).orElseThrow(new BusinessException("无用户"));
|
|
|
+ airDropService.create(AirDrop.builder()
|
|
|
+ .name("铸造活动[" + mintActivity.getName() + "]空投")
|
|
|
+ .remark(mintOrder.getId().toString())
|
|
|
+ .type(AirDropType.asset)
|
|
|
+ .userIds(Collections.singletonList(mintOrder.getUserId()))
|
|
|
+ .collectionId(mintActivity.getAirDropCollectionId())
|
|
|
+ .targets(Collections
|
|
|
+ .singletonList(new DropTarget(user.getId(), user
|
|
|
+ .getPhone(), user.getNickname(), mintActivity
|
|
|
+ .getAutoDropNum())))
|
|
|
+ .auto(true)
|
|
|
+ .companyId(mintActivity.getCompanyId())
|
|
|
+ .build());
|
|
|
+ mintOrder.setStatus(MintOrderStatus.FINISH);
|
|
|
+ mintOrderRepo.save(mintOrder);
|
|
|
+ releaseOrderLock(mintOrder.getId());
|
|
|
+ log.info("空投成功" + mintOrder.getId());
|
|
|
+ } catch (Exception e) {
|
|
|
+ releaseOrderLock(mintOrder.getId());
|
|
|
+ log.error("延迟空投出错:mintOrderId" + mintOrder.getId(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
}
|