瀏覽代碼

拍卖订单

licailing 4 年之前
父節點
當前提交
a0103004af

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

@@ -90,6 +90,9 @@ public class AuctionOrder extends BaseEntityNoID {
     @ApiModelProperty("取消时间")
     private LocalDateTime cancelTime;
 
+    @ApiModelProperty("退款时间")
+    private LocalDateTime refundTime;
+
     @ApiModelProperty("收货人")
     private String contactName;
 

+ 3 - 0
src/main/java/com/izouma/nineth/repo/AuctionOrderRepo.java

@@ -10,6 +10,7 @@ import org.springframework.data.jpa.repository.Query;
 
 import javax.transaction.Transactional;
 import java.util.Collection;
+import java.util.List;
 
 public interface AuctionOrderRepo extends JpaRepository<AuctionOrder, Long>, JpaSpecificationExecutor<AuctionOrder> {
     @Query("update AuctionOrder t set t.del = true where t.id = ?1")
@@ -18,4 +19,6 @@ public interface AuctionOrderRepo extends JpaRepository<AuctionOrder, Long>, Jpa
     void softDelete(Long id);
 
     AuctionOrder findByUserIdAndAuctionIdAndPaymentTypeAndStatusIn(Long userId, Long auctionId, AuctionPaymentType paymentType, Collection<AuctionOrderStatus> status);
+
+    List<AuctionOrder> findAllByAuctionIdAndPaymentTypeAndStatus(Long auctionId, AuctionPaymentType paymentType, AuctionOrderStatus status);
 }

+ 24 - 4
src/main/java/com/izouma/nineth/service/AuctionOrderService.java

@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Arrays;
+import java.util.List;
 import java.util.Optional;
 
 @Service
@@ -146,6 +147,11 @@ public class AuctionOrderService {
         order.setPayMethod(payMethod);
         order.setTransactionId(transactionId);
         order.setPayTime(LocalDateTime.now());
+        //存订单
+        auctionOrderRepo.save(order);
+
+        AuctionActivity auction = auctionActivityRepo.findById(order.getAuctionId())
+                .orElseThrow(new BusinessException("无拍卖活动"));
 
         if (AuctionPaymentType.DEPOSIT.equals(order.getPaymentType())) {
             //改出价记录表
@@ -153,14 +159,16 @@ public class AuctionOrderService {
                     .orElseThrow(new BusinessException("无出价记录"));
             record.setPayDeposit(true);
             auctionRecordRepo.save(record);
-            auctionOrderRepo.save(order);
+
+            //改价格
+            auction.setPurchasePrice(record.getBidderPrice());
+            auctionActivityRepo.save(auction);
             return;
         }
 
         //此拍卖结束
-        //退保证金
-        AuctionActivity auction = auctionActivityRepo.findById(order.getAuctionId())
-                .orElseThrow(new BusinessException("无拍卖活动"));
+        auction.setStatus(AuctionStatus.FINISH);
+        auctionActivityRepo.save(auction);
 
         if (AuctionSource.TRANSFER.equals(order.getSource())) {
             Asset asset = assetRepo.findById(auction.getAssetId()).orElseThrow(new BusinessException("资产不存在"));
@@ -168,18 +176,30 @@ public class AuctionOrderService {
             //转让流程
             assetService.transfer(asset, order.getTotalPrice(), user, "拍卖", order.getId());
         }
+
+        //退保证金
+        List<AuctionOrder> orders = auctionOrderRepo.findAllByAuctionIdAndPaymentTypeAndStatus(order.getAuctionId(), AuctionPaymentType.DEPOSIT, AuctionOrderStatus.FINISH);
+        orders.forEach(o -> {
+            //退款
+            o.setRefundTime(LocalDateTime.now());
+            o.setStatus(AuctionOrderStatus.REFUNDING);
+            auctionOrderRepo.save(o);
+        });
     }
 
     public void cancel(AuctionOrder order) {
         order.setStatus(AuctionOrderStatus.CANCELLED);
         order.setCancelTime(LocalDateTime.now());
+        auctionOrderRepo.save(order);
 
         switch (order.getPaymentType()) {
             case DEPOSIT:
                 //删除出价记录
+                auctionRecordRepo.softDelete(order.getAuctionRecordId());
                 break;
             case FIXED_PRICE:
                 //返回拍卖状态
+
                 break;
             case PURCHASE_PRICE:
                 //获取时长

+ 28 - 27
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -75,34 +75,35 @@ import java.util.stream.Collectors;
 @Slf4j
 public class OrderService {
 
-    private OrderRepo orderRepo;
-    private CollectionRepo collectionRepo;
-    private UserAddressRepo userAddressRepo;
-    private UserRepo userRepo;
-    private Environment env;
-    private AlipayClient alipayClient;
-    private AlipayProperties alipayProperties;
-    private WxPayService wxPayService;
-    private WxPayProperties wxPayProperties;
-    private AssetService assetService;
-    private SysConfigService sysConfigService;
-    private AssetRepo assetRepo;
-    private UserCouponRepo userCouponRepo;
-    private CollectionService collectionService;
-    private CommissionRecordRepo commissionRecordRepo;
-    private AdapayProperties adapayProperties;
-    private GeneralProperties generalProperties;
-    private RocketMQTemplate rocketMQTemplate;
+    private OrderRepo                     orderRepo;
+    private CollectionRepo                collectionRepo;
+    private UserAddressRepo               userAddressRepo;
+    private UserRepo                      userRepo;
+    private Environment                   env;
+    private AlipayClient                  alipayClient;
+    private AlipayProperties              alipayProperties;
+    private WxPayService                  wxPayService;
+    private WxPayProperties               wxPayProperties;
+    private AssetService                  assetService;
+    private SysConfigService              sysConfigService;
+    private AssetRepo                     assetRepo;
+    private UserCouponRepo                userCouponRepo;
+    private CollectionService             collectionService;
+    private CommissionRecordRepo          commissionRecordRepo;
+    private AdapayProperties              adapayProperties;
+    private GeneralProperties             generalProperties;
+    private RocketMQTemplate              rocketMQTemplate;
     private RedisTemplate<String, Object> redisTemplate;
-    private SnowflakeIdWorker snowflakeIdWorker;
-    private SmsService smsService;
-    private ErrorOrderRepo errorOrderRepo;
-    private ShowCollectionRepo showCollectionRepo;
-    private ShowroomService showroomService;
-    private CollectionPrivilegeRepo collectionPrivilegeRepo;
-    private UserBankCardRepo userBankCardRepo;
-    private CacheService cacheService;
-    private UserPropertyRepo userPropertyRepo;
+    private SnowflakeIdWorker             snowflakeIdWorker;
+    private SmsService                    smsService;
+    private ErrorOrderRepo                errorOrderRepo;
+    private ShowCollectionRepo            showCollectionRepo;
+    private ShowroomService               showroomService;
+    private CollectionPrivilegeRepo       collectionPrivilegeRepo;
+    private UserBankCardRepo              userBankCardRepo;
+    private IdentityAuthRepo              identityAuthRepo;
+    private CacheService                  cacheService;
+    private UserPropertyRepo              userPropertyRepo;
 
     public Page<Order> all(PageQuery pageQuery) {
         return orderRepo.findAll(JpaUtils.toSpecification(pageQuery, Order.class), JpaUtils.toPageRequest(pageQuery));