|
|
@@ -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());
|