|
|
@@ -874,31 +874,34 @@ public class MintOrderService {
|
|
|
List<MintOrder> delayedOrders = mintOrderRepo
|
|
|
.findByStatusAndDelayAndAirDropTimeBefore(MintOrderStatus.AIR_DROP, true, LocalDateTime.now());
|
|
|
delayedOrders.forEach(mintOrder -> {
|
|
|
- getOrderLock(mintOrder.getId());
|
|
|
- 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);
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|