|
|
@@ -205,10 +205,7 @@ public class TradeAuctionOrderService {
|
|
|
tradeAuction.setCurrentOwnerId(tradeAuctionOrder.getUserId());
|
|
|
tradeAuction.setStatus(TradeAuctionStatus.FINISH);
|
|
|
finishLastOrder(tradeAuction.getCurrentOrderId());
|
|
|
- User owner = userRepo.findById(tradeAuctionOrder.getUserId()).orElseThrow(new BusinessException("暂无用户"));
|
|
|
- assetService.createAsset(tradeAuction, owner, tradeAuctionOrder.getId(), tradeAuction
|
|
|
- .getCurrentPrice(), "空投", 1, false);
|
|
|
- tradeAuctionOrder.setStatus(AuctionOrderStatus.FINISH);
|
|
|
+ tradeAuctionOrder.setStatus(AuctionOrderStatus.AIR_DROP);
|
|
|
}
|
|
|
tradeAuction.setLastCommission(tradeAuctionOrder.getServiceCharge());
|
|
|
tradeAuctionOrder.setCurrentEndTime(tradeAuction.getCurrentEndTime());
|
|
|
@@ -263,6 +260,29 @@ public class TradeAuctionOrderService {
|
|
|
// releaseOrderLock(order.getId());
|
|
|
}
|
|
|
|
|
|
+ @Scheduled(fixedRate = 30000)
|
|
|
+ public void batchAirdrop() {
|
|
|
+ List<TradeAuctionOrder> tradeAuctionOrders = tradeAuctionOrderRepo
|
|
|
+ .findByStatusAndCreatedAtBeforeAndDelFalse(AuctionOrderStatus.NOT_PAID,
|
|
|
+ LocalDateTime.now().minusSeconds(orderCancelInterval));
|
|
|
+ tradeAuctionOrders.parallelStream().forEach(o -> {
|
|
|
+ try {
|
|
|
+ TradeAuctionOrder order = tradeAuctionOrderRepo.findById(o.getId())
|
|
|
+ .orElseThrow(new BusinessException("订单不存在"));
|
|
|
+ TradeAuction tradeAuction = tradeAuctionRepo.findById(order.getTradeAuctionId())
|
|
|
+ .orElseThrow(new BusinessException("未找到易拍活动"));
|
|
|
+ User owner = userRepo.findById(order.getUserId())
|
|
|
+ .orElseThrow(new BusinessException("暂无用户"));
|
|
|
+ assetService.createAsset(tradeAuction, owner, order.getId(), tradeAuction
|
|
|
+ .getCurrentPrice(), "空投", 1, false);
|
|
|
+ order.setStatus(AuctionOrderStatus.FINISH);
|
|
|
+ tradeAuctionOrderRepo.save(order);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("取消易拍订单错误 " + o.getId(), e);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
@Scheduled(fixedRate = 30000)
|
|
|
public void batchPayEarning() {
|
|
|
List<TradeAuctionOrder> tradeAuctionOrders = tradeAuctionOrderRepo.findByPaybackStatus(PaybackStatus.PASSED);
|