wangqifan 2 anni fa
parent
commit
6a8b8c74cd

+ 3 - 3
src/main/java/com/izouma/nineth/domain/MintActivity.java

@@ -108,9 +108,9 @@ public class MintActivity extends BaseEntity {
     @Convert(converter = LongArrayConverter.class)
     private List<Long> holdingTags;
 
-//    private boolean delay = false;
-//
-//    private int delayHours = 0;
+    private boolean delay = false;
+
+    private int delayHours = 0;
 
     @Transient
     private Collection airDropCollection;

+ 3 - 3
src/main/java/com/izouma/nineth/domain/MintOrder.java

@@ -83,7 +83,7 @@ public class MintOrder extends BaseEntity {
     @Column(columnDefinition = "bigint default 1 not null")
     private Long companyId = 1L;
 
-//    private boolean delay = false;
-//
-//    private LocalDateTime airDropTime;
+    private boolean delay = false;
+
+    private LocalDateTime airDropTime;
 }

+ 39 - 39
src/main/java/com/izouma/nineth/service/MintOrderService.java

@@ -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);
+                }
+            }
+        });
+    }
 
 }