hr~ преди 3 седмици
родител
ревизия
7aebb91a2d
променени са 1 файла, в които са добавени 5 реда и са изтрити 2 реда
  1. 5 2
      lot/src/main/java/cn/hobbystocks/auc/service/impl/DepositOrderServiceImpl.java

+ 5 - 2
lot/src/main/java/cn/hobbystocks/auc/service/impl/DepositOrderServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.hobbystocks.auc.service.impl;
 
+import cn.hobbystocks.auc.common.exception.ServiceException;
 import cn.hobbystocks.auc.domain.Auction;
 import cn.hobbystocks.auc.domain.DepositOrder;
 import cn.hobbystocks.auc.domain.Lot;
@@ -11,6 +12,7 @@ import cn.hobbystocks.auc.request.DepositRecordRequest;
 import cn.hobbystocks.auc.service.DepositOrderService;
 import cn.hobbystocks.auc.service.IAuctionService;
 import cn.hobbystocks.auc.service.ILotService;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.IdUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -37,6 +39,7 @@ public class DepositOrderServiceImpl extends ServiceImpl<DepositOrderMapper, Dep
     final String DEPOSIT_ORDER_PRE = "DT";
     private static final String DEPOSIT_TYPE_LOT = "拍品";
     private static final String DEPOSIT_TYPE_AUCTION = "拍卖会";
+    private static final Integer DEPOSIT_STATUS_WAITING_PAYMENT = 0;
     private static final Integer DEPOSIT_STATUS_PAID = 1;
 
     @Override
@@ -56,7 +59,7 @@ public class DepositOrderServiceImpl extends ServiceImpl<DepositOrderMapper, Dep
             depositType=DEPOSIT_TYPE_AUCTION;
         }
         if (hasPaidDeposit(depositOrderDTO.getUserId(), lot, depositType)) {
-            return 0;
+            throw new ServiceException("当前已有相关数据保证金订单");
         }
         depositOrderDTO.setAmount(deposit);
         depositOrderDTO.setAuctionId(lot.getAuctionId());
@@ -78,7 +81,7 @@ public class DepositOrderServiceImpl extends ServiceImpl<DepositOrderMapper, Dep
     private boolean hasPaidDeposit(Integer userId, Lot lot, String depositType) {
         LambdaQueryWrapper<DepositOrder> queryWrapper = new LambdaQueryWrapper<DepositOrder>()
                 .eq(DepositOrder::getUserId, userId)
-                .eq(DepositOrder::getStatus, DEPOSIT_STATUS_PAID)
+                .in(DepositOrder::getStatus, CollUtil.newArrayList(DEPOSIT_STATUS_PAID,DEPOSIT_STATUS_WAITING_PAYMENT))
                 .eq(DepositOrder::getDepositType, depositType);
         if (Objects.equals(DEPOSIT_TYPE_LOT, depositType)) {
             queryWrapper.eq(DepositOrder::getLotId, lot.getId());