mitao
2024-06-20 cd55aff7eea06f77a8f712cef1ad2744c44d0f8a
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -1,14 +1,8 @@
package com.ruoyi.auction.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.parser.Feature;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.internal.util.AlipayEncrypt;
import com.alipay.api.internal.util.AlipaySignature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -60,6 +54,7 @@
import com.ruoyi.common.core.utils.page.CollUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.RemoteFileService;
import com.ruoyi.system.api.constants.NotificationTypeConstant;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.AuctionGoods;
@@ -97,6 +92,7 @@
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -164,6 +160,8 @@
    @Resource
    private AuctionBidRecordMapper auctionBidRecordMapper;
    @Resource
    private RemoteFileService remoteFileService;
    public static RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(5000).build();
    // 配置您申请的KEY,在个人中心->我的数据,接口名称上方查看
    public static final String APPKEY = "";
@@ -383,8 +381,10 @@
            memberAuctionSalesroomVO.setEndTime(auctionSalesroom.getEndTime());
            memberAuctionSalesroomVO.setCoverPic(auctionSalesroom.getCoverPic());
            memberAuctionSalesroomVO.setBond(auctionSalesroom.getBond());
            memberAuctionSalesroomVO.setAuthentication(auctionSalesroom.getAuthentication());
            memberAuctionSalesroomDTO.setAuctionSalesroomId(auctionSalesroom.getId());
            List<OrderAuctionBond> data = orderClient.getOrderAuctionBondList1(memberAuctionSalesroomDTO, SecurityConstants.INNER).getData();
            if (data!=null||data.size()>0){
            if (data!=null&&data.size()>0){
               memberAuctionSalesroomVO.setIsApply(2);
           }else{
               memberAuctionSalesroomVO.setIsApply(1);
@@ -392,8 +392,14 @@
            MemberAuctionSalesroomDTO memberAuctionSalesroomDTO1=new MemberAuctionSalesroomDTO();
            memberAuctionSalesroomDTO1.setAuctionSalesroomId(auctionSalesroom.getId());
            List<OrderAuctionBond> data1 = orderClient.getOrderAuctionBondList1(memberAuctionSalesroomDTO1, SecurityConstants.INNER).getData();
            memberAuctionSalesroomVO.setApplyNum(data1.size());
            List.add(memberAuctionSalesroomVO);
            if(data1!=null){
                memberAuctionSalesroomVO.setApplyNum(data1.size());
                List.add(memberAuctionSalesroomVO);
            }else{
                memberAuctionSalesroomVO.setApplyNum(0);
            }
        }
        page.setRecords(List);
        return PageDTO.of(page);
@@ -518,8 +524,6 @@
            if (auctionBidRecord!=null){
                throw new ServiceException("当前拍卖场中标拍品订单未完成,请完成后再试。");
            }
            // 远程调用订单服务进行退款
                Map<String, Object> data = orderClient.refund(refundDTOList,
                        SecurityConstants.INNER).getData();
@@ -538,7 +542,7 @@
                List<Long> ids = new ArrayList<>();
                ids.add(orderAuctionBond.getId());
                // 远程调用订单服务修改订单状态
                orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID);
                orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.REFUNDED,SecurityConstants.INNER);
        }else{
            OrderAuctionBond orderAuctionBond = orderClient.getOrderAuctionBondone1(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
@@ -575,7 +579,7 @@
            List<Long> ids = new ArrayList<>();
            ids.add(orderAuctionBond.getId());
            // 远程调用订单服务修改订单状态
            orderClient.updateOrderAuctionBondStatus(ids, BondStatusEnum.PAID);
            orderClient.updateOrderAuctionBondStatus(ids,BondStatusEnum.REFUNDED,SecurityConstants.INNER);
        }
@@ -586,11 +590,11 @@
        Member membeOne = memberClient.getMembeOne(bidVO.getMemberId(), SecurityConstants.INNER).getData();
        if (bidVO.getAuctionType()==2){
            AuctionSalesroomGoods byId = auctionSalesroomGoodsMapper.selectById(bidVO.getTargetId());
            if (byId.getStartingPrice().doubleValue()<bidVO.getLastBidAmount().doubleValue()){
            if (byId.getStartingPrice().doubleValue()>bidVO.getLastBidAmount().doubleValue()){
                throw new ServiceException("出价不能比起拍价低");
            }
            BigDecimal bigDecimal=byId.getStartingPrice().add(byId.getMinimumMarkupAmount());
            if (bigDecimal.doubleValue()<bidVO.getLastBidAmount().doubleValue()){
            if (bigDecimal.doubleValue()>bidVO.getLastBidAmount().doubleValue()){
                throw new ServiceException("出价不能比每次最少加价低");
            }
@@ -602,7 +606,7 @@
            AuctionBidRecord one = auctionBidRecordService.getOne(wrapper1);
            if (one!=null){
                BigDecimal bigDecimal1=one.getLastBidAmount().add(byId.getMinimumMarkupAmount());
                if (bigDecimal1.doubleValue()<bidVO.getLastBidAmount().doubleValue()){
                if (bigDecimal1.doubleValue()>bidVO.getLastBidAmount().doubleValue()){
                    throw new ServiceException("出价不能比上次出价加每次最少加价低");
                }
                one.setLastBidAmount(bidVO.getLastBidAmount());
@@ -615,6 +619,8 @@
                one.setTargetId(bidVO.getTargetId());
                one.setMemberId(bidVO.getMemberId());
                one.setLastBidTime(LocalDateTime.now());
                one.setNickname(membeOne.getNickname());
                one.setPhone(membeOne.getPhone());
                one.setAuctionType(AuctionOrderTypeEnum.AUCTION_ITEMS);
                one.setStatus(BidStatusEnum.ELIMINATE);
                one.setBidCount(1);
@@ -625,11 +631,11 @@
        }else {
            AuctionGoods byId = auctionGoodsService.getById(bidVO.getTargetId());
            if (byId.getStartingPrice().doubleValue()<bidVO.getLastBidAmount().doubleValue()){
            if (byId.getStartingPrice().doubleValue()>bidVO.getLastBidAmount().doubleValue()){
                throw new ServiceException("出价不能比起拍价低");
            }
            BigDecimal bigDecimal=byId.getStartingPrice().add(byId.getMinimumMarkupAmount());
            if (bigDecimal.doubleValue()<bidVO.getLastBidAmount().doubleValue()){
            if (bigDecimal.doubleValue()>bidVO.getLastBidAmount().doubleValue()){
                throw new ServiceException("出价不能比每次最少加价低");
            }
            LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery();
@@ -779,8 +785,9 @@
            // 生成唯一编号
            Long nextId = IDhelper.getNextId();
            auctionSalesroom.setAuctionSalesroomNo(nextId.toString());
            String qrCodeToObs = CreateQrCode.createQRCodeToObs(nextId.toString());
            auctionSalesroom.setQrCode(qrCodeToObs);
            String url = remoteFileService.obsUpload(
                    CreateQrCode.createQRCodeStream(nextId.toString())).getData();
            auctionSalesroom.setQrCode(url);
            // 添加
            this.save(auctionSalesroom);
            List<GoodsStockUpdDTO> goodsStockUpdDTOS = auctionSalesroomGoods.stream().map(item -> {
@@ -1348,4 +1355,16 @@
        String msg = objectMapper.writeValueAsString(map);
        WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.AUCTIONEER.getCode(), msg);
    }
    @Override
    public List<AuctionSalesroom> getAuctionSalesroomByIds(
            Collection<Long> auctionSalesroomGoodsIdSet) {
        List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList(
                Wrappers.lambdaQuery(AuctionSalesroomGoods.class)
                        .in(AuctionSalesroomGoods::getId, auctionSalesroomGoodsIdSet));
        Set<Long> auctionSalesroomIdSet = auctionSalesroomGoods.stream()
                .map(AuctionSalesroomGoods::getAuctionSalesroomId).collect(
                        Collectors.toSet());
        return this.listByIds(auctionSalesroomIdSet);
    }
}