mitao
2024-08-16 d7dc4db8d005a58f51d21d35147317762a16373f
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
@@ -25,10 +25,12 @@
import com.ruoyi.system.api.domain.dto.RefundDTO;
import com.ruoyi.system.api.domain.vo.PayInfoVO;
import com.ruoyi.system.api.feignClient.AuctionClient;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@@ -141,14 +143,43 @@
    @Override
    public PayInfoVO SaveOrderAuctionBond(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
        PayInfoVO payInfoVO = new PayInfoVO();
        // 查询参与记录
        Optional<OrderAuctionBond> orderAuctionBondOpt = this.lambdaQuery()
                .eq(OrderAuctionBond::getMemberId, memberAuctionSalesroomBondDTO.getMemberId())
                .eq(memberAuctionSalesroomBondDTO.getBondType()
                                .equals(AuctionOrderTypeEnum.AUCTION_ITEMS.getCode()),
                        OrderAuctionBond::getAuctionSalesroomId,
                        memberAuctionSalesroomBondDTO.getAuctionSalesroomId())
                .eq(memberAuctionSalesroomBondDTO.getBondType()
                                .equals(AuctionOrderTypeEnum.REGULAR_ITEMS.getCode()),
                        OrderAuctionBond::getAuctionGoodsId,
                        memberAuctionSalesroomBondDTO.getAuctionGoodsId()).oneOpt();
        if (orderAuctionBondOpt.isPresent()) {
            OrderAuctionBond orderAuctionBond = orderAuctionBondOpt.get();
            orderAuctionBond.setPaymentMethod(
                    PaymentMethodEnum.fromCode(memberAuctionSalesroomBondDTO.getPaymentMethod()));
            orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
            this.updateById(orderAuctionBond);
            payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
            if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
                payInfoVO.setType(2);
            } else {
                payInfoVO.setType(1);
            }
            payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
            payInfoVO.setSubject("保证金");
            payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
            payInfoVO.setBody("保证金");
            return payInfoVO;
        }
        if (memberAuctionSalesroomBondDTO.getBondType() == 1) {
            AuctionGoods data = auctionClient.getauctionGoodsOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
            log.info("商品竞价立即报名的商品:{}", data);
            if (data.getListingStatus().getCode()==1){
                throw new ServiceException("商品拍卖下线");
            }
            if (data.getBond()==null||data.getBond().intValue() == 0) {
            if (data.getBond() == null || data.getBond().compareTo(BigDecimal.ZERO) == 0) {
                OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
                orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
                orderAuctionBond.setAuctionGoodsId(memberAuctionSalesroomBondDTO.getAuctionGoodsId());
@@ -156,6 +187,7 @@
                orderAuctionBond.setBond(data.getBond());
                orderAuctionBond.setBoundStatus(BondStatusEnum.PAID);
                orderAuctionBond.setBondType(AuctionOrderTypeEnum.REGULAR_ITEMS);
                orderAuctionBond.setOrderTimeSx(data.getEndTime());
                this.save(orderAuctionBond);
                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
                payInfoVO.setType(0);
@@ -176,6 +208,7 @@
                } else {
                    orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY);
                }
                log.info("保存保证金订单:{}", orderAuctionBond);
                this.save(orderAuctionBond);
                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
@@ -190,7 +223,9 @@
            }
        } else {
            AuctionSalesroom data = auctionClient.getauctionSalesroomOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
            if (data.getBond()==null||data.getBond().intValue() == 0) {
            log.info("拍卖会报名的拍卖会:{}", data);
            if (data.getBond() == null || data.getBond().compareTo(BigDecimal.ZERO) == 0) {
                OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
                orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
@@ -198,6 +233,8 @@
                orderAuctionBond.setBond(data.getBond());
                orderAuctionBond.setBoundStatus(BondStatusEnum.PAID);
                orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
                orderAuctionBond.setOrderTimeSx(data.getEndTime());
                log.info("添加保证金为0的记录:{}", orderAuctionBond);
                this.save(orderAuctionBond);
                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
                payInfoVO.setType(0);
@@ -210,6 +247,7 @@
                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
                orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
                orderAuctionBond.setBond(data.getBond());
                orderAuctionBond.setOrderTimeSx(data.getEndTime());
                orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY);
                orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
@@ -217,6 +255,7 @@
                } else {
                    orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY);
                }
                log.info("添加保证金不为0的记录:{}", orderAuctionBond);
                this.save(orderAuctionBond);
                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {