|
|
@@ -206,17 +206,21 @@ public class TradeAuctionService {
|
|
|
}
|
|
|
|
|
|
public void purchase(TradeAuction tradeAuction) {
|
|
|
- TradeAuctionOrder tradeAuctionOrder = tradeAuctionOrderRepo.findById(tradeAuction.getCurrentOrderId())
|
|
|
- .orElseThrow(new BusinessException("暂无"));
|
|
|
- tradeAuction.setStatus(TradeAuctionStatus.PURCHASED);
|
|
|
- tradeAuction.setPurchasedPrice(tradeAuction.getCurrentPrice());
|
|
|
+ if (tradeAuction.getCurrentOrderId() == null) {
|
|
|
+ pass(tradeAuction);
|
|
|
+ } else {
|
|
|
+ TradeAuctionOrder tradeAuctionOrder = tradeAuctionOrderRepo.findById(tradeAuction.getCurrentOrderId())
|
|
|
+ .orElseThrow(new BusinessException("暂无"));
|
|
|
+ tradeAuction.setStatus(TradeAuctionStatus.PURCHASED);
|
|
|
+ tradeAuction.setPurchasedPrice(tradeAuction.getCurrentPrice());
|
|
|
// int time = sysConfigService.getInt("auction_cancel_time");
|
|
|
- tradeAuction.setCurrentEndTime(LocalDateTime.now().plusHours(48));
|
|
|
- tradeAuctionRepo.save(tradeAuction);
|
|
|
- tradeAuctionOrder.setTradeAuctionStatus(tradeAuction.getStatus());
|
|
|
- tradeAuctionOrder.setCurrentPrice(tradeAuctionOrder.getPrice());
|
|
|
- tradeAuctionOrderRepo.save(tradeAuctionOrder);
|
|
|
- decreaseStock(tradeAuction.getId(), 1);
|
|
|
+ tradeAuction.setCurrentEndTime(LocalDateTime.now().plusHours(48));
|
|
|
+ tradeAuctionRepo.save(tradeAuction);
|
|
|
+ tradeAuctionOrder.setTradeAuctionStatus(tradeAuction.getStatus());
|
|
|
+ tradeAuctionOrder.setCurrentPrice(tradeAuctionOrder.getPrice());
|
|
|
+ tradeAuctionOrderRepo.save(tradeAuctionOrder);
|
|
|
+ decreaseStock(tradeAuction.getId(), 1);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Scheduled(fixedRate = 6000)
|
|
|
@@ -241,12 +245,15 @@ public class TradeAuctionService {
|
|
|
|
|
|
public void pass(TradeAuction tradeAuction) {
|
|
|
tradeAuction.setStatus(TradeAuctionStatus.PASS);
|
|
|
+
|
|
|
tradeAuctionRepo.save(tradeAuction);
|
|
|
- TradeAuctionOrder tradeAuctionOrder = tradeAuctionOrderRepo.findById(tradeAuction.getCurrentOrderId())
|
|
|
- .orElseThrow(new BusinessException("暂无订单"));
|
|
|
- tradeAuctionOrder.setStatus(AuctionOrderStatus.PASS);
|
|
|
- tradeAuctionOrder.setTradeAuctionStatus(tradeAuction.getStatus());
|
|
|
- tradeAuctionOrderRepo.save(tradeAuctionOrder);
|
|
|
+ if (tradeAuction.getCurrentOrderId() != null) {
|
|
|
+ TradeAuctionOrder tradeAuctionOrder = tradeAuctionOrderRepo.findById(tradeAuction.getCurrentOrderId())
|
|
|
+ .orElseThrow(new BusinessException("暂无订单"));
|
|
|
+ tradeAuctionOrder.setStatus(AuctionOrderStatus.PASS);
|
|
|
+ tradeAuctionOrder.setTradeAuctionStatus(tradeAuction.getStatus());
|
|
|
+ tradeAuctionOrderRepo.save(tradeAuctionOrder);
|
|
|
+ }
|
|
|
decreaseStock(tradeAuction.getId(), 1);
|
|
|
}
|
|
|
}
|