wangqifan 3 年之前
父節點
當前提交
86d0727b6b

+ 2 - 0
src/main/java/com/izouma/nineth/domain/TradeAuction.java

@@ -82,6 +82,8 @@ public class TradeAuction extends BaseEntity {
 
     private double increasePer;
 
+    private BigDecimal nextPrice;
+
     private Long stock;
 
     private Long sale;

+ 7 - 0
src/main/java/com/izouma/nineth/service/TradeAuctionOrderService.java

@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
 
 import javax.transaction.Transactional;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -84,8 +85,14 @@ public class TradeAuctionOrderService {
         tradeAuctionOrder.setStatus(AuctionOrderStatus.FINISH);
         tradeAuctionOrderRepo.save(tradeAuctionOrder);
 
+
         TradeAuction tradeAuction = tradeAuctionRepo.findById(tradeAuctionOrder.getTradeAuctionId())
                 .orElseThrow(new BusinessException("未找到该易拍活动"));
+
+        BigDecimal result = tradeAuctionOrder.getCurrentPrice().multiply(BigDecimal.valueOf(tradeAuction.getIncreasePer()))
+                .divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
+        tradeAuction.setNextPrice(result);
+        tradeAuction.setEarning(result.subtract(tradeAuction.getPrice()));
         tradeAuction.setStatus(TradeAuctionStatus.WAITING);
         tradeAuction.setCurrentPrice(tradeAuctionOrder.getCurrentPrice());
         tradeAuction.setCurrentOwner(tradeAuctionOrder.getNickname());

+ 6 - 0
src/main/java/com/izouma/nineth/service/TradeAuctionService.java

@@ -21,6 +21,8 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.security.PrivateKey;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
@@ -52,6 +54,10 @@ public class TradeAuctionService {
         record.setCurrentEndTime(record.getStartTime());
         record.setCurrentPrice(record.getPrice());
         record.setStatus(TradeAuctionStatus.WAITING);
+        BigDecimal result = record.getCurrentPrice().multiply(BigDecimal.valueOf(record.getIncreasePer()))
+                .divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
+        record.setNextPrice(result);
+        record.setEarning(result.subtract(record.getPrice()));
         return tradeAuctionRepo.save(record);
     }