rentaiming
2024-05-31 c5f7cdfaf69deb6fb3bb4a8379beb0e9bbe0f3c0
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -30,6 +30,7 @@
import com.ruoyi.auction.domain.AuctionBidRecord;
import com.ruoyi.auction.domain.AuctionSalesroomGoods;
import com.ruoyi.auction.domain.AuctionVideo;
import com.ruoyi.auction.mapper.AuctionBidRecordMapper;
import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper;
import com.ruoyi.auction.mapper.AuctionSalesroomMapper;
import com.ruoyi.auction.service.*;
@@ -40,6 +41,7 @@
import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
import com.ruoyi.common.core.enums.AuctionStartStatusEnum;
import com.ruoyi.common.core.enums.BidStatusEnum;
import com.ruoyi.common.core.enums.BondStatusEnum;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.IDhelper;
import com.ruoyi.common.core.utils.StringUtils;
@@ -54,12 +56,7 @@
import com.ruoyi.system.api.domain.Member;
import com.ruoyi.system.api.domain.OrderAuctionBond;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
import com.ruoyi.system.api.domain.dto.BidDTO;
import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomWdDTO;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.vo.PayInfoVO;
import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO;
import com.ruoyi.system.api.feignClient.GoodsSkuClient;
@@ -69,11 +66,7 @@
import io.seata.spring.annotation.GlobalTransactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@@ -133,6 +126,9 @@
    private static final String WX_APPID = "wxb7f0ea286fc4e535";
    private static final String WX_SECRET = "852a2512a6ab559cafc68bae5d4160ac";
    @Resource
    private AuctionBidRecordMapper auctionBidRecordMapper;
    //支付寶
@@ -425,6 +421,88 @@
    }
    @Override
    public void CancelSignUpNow(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
        if (memberAuctionSalesroomBondDTO.getBondType()==2){
            OrderAuctionBond orderAuctionBond = orderClient.getOrderAuctionBondone(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
            List<RefundDTO> refundDTOList = new ArrayList<>();
            RefundDTO refundDTO = new RefundDTO();
            refundDTO.setOrderNo(orderAuctionBond.getOrderNo());
            refundDTO.setAmount(orderAuctionBond.getBond());
            LambdaQueryWrapper<AuctionBidRecord> wrapper = Wrappers.lambdaQuery();
            wrapper.eq(AuctionBidRecord::getAuctionSalesroomId,memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
            wrapper.eq(AuctionBidRecord::getAuctionType,2);
            wrapper.eq(AuctionBidRecord::getStatus,BidStatusEnum.SUCCESSFUL);
            wrapper.eq(AuctionBidRecord::getDelFlag, 0);
            AuctionBidRecord auctionBidRecord = auctionBidRecordMapper.selectOne(wrapper);
            if (auctionBidRecord!=null){
                throw new ServiceException("当前拍卖场中标拍品订单未完成,请完成后再试。");
            }
            // 远程调用订单服务进行退款
                Map<String, Object> data = orderClient.refund(refundDTOList,
                        SecurityConstants.INNER).getData();
                // 处理退款返回结果
                List<String> successfulOrders = new ArrayList<>();
                List<String> failedOrders = new ArrayList<>();
                data.forEach((key, value) -> {
                    if ((boolean) value) {
                        successfulOrders.add(key);
                    } else {
                        failedOrders.add(key);
                    }
                });
                // 退款成功的订单修改状态
                List<Long> ids = new ArrayList<>();
                ids.add(orderAuctionBond.getId());
                // 远程调用订单服务修改订单状态
                orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID);
        }else{
            OrderAuctionBond orderAuctionBond = orderClient.getOrderAuctionBondone1(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
            List<RefundDTO> refundDTOList = new ArrayList<>();
            RefundDTO refundDTO = new RefundDTO();
            refundDTO.setOrderNo(orderAuctionBond.getOrderNo());
            refundDTO.setAmount(orderAuctionBond.getBond());
            LambdaQueryWrapper<AuctionBidRecord> wrapper = Wrappers.lambdaQuery();
            wrapper.eq(AuctionBidRecord::getTargetId, memberAuctionSalesroomBondDTO.getAuctionGoodsId());
            wrapper.eq(AuctionBidRecord::getAuctionType,1);
            wrapper.eq(AuctionBidRecord::getStatus,BidStatusEnum.SUCCESSFUL);
            wrapper.eq(AuctionBidRecord::getDelFlag, 0);
            AuctionBidRecord auctionBidRecord = auctionBidRecordMapper.selectOne(wrapper);
            if (auctionBidRecord!=null){
                throw new ServiceException("当前拍卖场中标拍品订单未完成,请完成后再试。");
            }
            // 远程调用订单服务进行退款
            Map<String, Object> data = orderClient.refund(refundDTOList,
                    SecurityConstants.INNER).getData();
            // 处理退款返回结果
            List<String> successfulOrders = new ArrayList<>();
            List<String> failedOrders = new ArrayList<>();
            data.forEach((key, value) -> {
                if ((boolean) value) {
                    successfulOrders.add(key);
                } else {
                    failedOrders.add(key);
                }
            });
            // 退款成功的订单修改状态
            List<Long> ids = new ArrayList<>();
            ids.add(orderAuctionBond.getId());
            // 远程调用订单服务修改订单状态
            orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID);
        }
    }
    @Override
    public void SaveBid(BidDTO bidVO) {
        Member membeOne = memberClient.getMembeOne(bidVO.getMemberId(), SecurityConstants.INNER).getData();
        if (bidVO.getAuctionType()==2){