rentaiming
2024-08-01 499ab5e5815d4f53ec27e0524c1c9896d1552e25
修改bug
2个文件已修改
147 ■■■■■ 已修改文件
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -38,18 +38,7 @@
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.constants.ConfigEnum;
import com.ruoyi.system.api.constants.NotificationTypeConstant;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.CustomConfig;
import com.ruoyi.system.api.domain.GoodsBrand;
import com.ruoyi.system.api.domain.GoodsCategory;
import com.ruoyi.system.api.domain.GoodsFlavorType;
import com.ruoyi.system.api.domain.GoodsSeries;
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.Member;
import com.ruoyi.system.api.domain.MemberAddress;
import com.ruoyi.system.api.domain.Order;
import com.ruoyi.system.api.domain.OrderAuctionBond;
import com.ruoyi.system.api.domain.WebsocketMessageDTO;
import com.ruoyi.system.api.domain.*;
import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO;
import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO;
import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
@@ -57,10 +46,7 @@
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
import com.ruoyi.system.api.domain.dto.OrderDTO;
import com.ruoyi.system.api.domain.dto.RefundDTO;
import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO;
import com.ruoyi.system.api.domain.vo.AuctionGoodsinfoVO;
import com.ruoyi.system.api.domain.vo.GoodsInfoTitleValueVO;
import com.ruoyi.system.api.domain.vo.getHomeGoodsSkuXxiVO;
import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.feignClient.AuctionClient;
import com.ruoyi.system.api.feignClient.GoodsSkuClient;
import com.ruoyi.system.api.feignClient.MemberClient;
@@ -661,59 +647,75 @@
    @Override
    public PageDTO<AuctionGoodsListVO> getWdAuctionSalesList(AuctionGoodsListDTO auctionGoodsListDTO) {
        MemberAuctionSalesroomDTO memberAuctionSalesroomDTO =new MemberAuctionSalesroomDTO();
        memberAuctionSalesroomDTO.setMemberId(auctionGoodsListDTO.getMemberId());
        List<OrderAuctionBond> data = orderClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData();
        Set<Long> goodsSkuIdList = null;
        List<Long> goodsSkuIdList = null;
        if (data.size()>0){
            goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionGoodsId)
                    .collect(Collectors.toSet());
                    .collect(Collectors.toList());
        }else {
            Set<Long> goodsSkuIdList1 =new HashSet<>();
            List<Long> goodsSkuIdList1 =new ArrayList<>();
            goodsSkuIdList1.add(0L);
            goodsSkuIdList=goodsSkuIdList1;
        }
        AuctionGoodsListPageDTO auctionGoodsListPageDTO=new AuctionGoodsListPageDTO();
        if (goodsSkuIdList!=null){
            auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList);
        List<Long> goodsSkuIdList1 =null;
        if (StringUtils.isNotEmpty(auctionGoodsListDTO.getGoodsSkuName())) {
            List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(auctionGoodsListDTO.getGoodsSkuName(),
                            SecurityConstants.INNER)
                    .getData();
            goodsSkuIdList1= goodsSku.stream().map(GoodsSku::getId)
                    .collect(Collectors.toList());
        }
        if (auctionGoodsListDTO.getStartStatus()!=4){
            if (auctionGoodsListDTO.getStartStatus()==0){
                auctionGoodsListPageDTO.setStartStatus(5);
        Page<AuctionGoods> page = new Page<>(auctionGoodsListDTO.getPageCurr(),
                auctionGoodsListDTO.getPageSize());
        LambdaQueryWrapper<AuctionGoods> wrapper1=Wrappers.lambdaQuery();
        if (goodsSkuIdList.size()>0){
            wrapper1.in(AuctionGoods::getId,goodsSkuIdList);
        }
        if (StringUtils.isNotEmpty(auctionGoodsListDTO.getGoodsSkuName())) {
        if (goodsSkuIdList1.size()>0){
            wrapper1.in(AuctionGoods::getGoodsSkuId,goodsSkuIdList1);
            }else{
                auctionGoodsListPageDTO.setStartStatus(auctionGoodsListDTO.getStartStatus());
            goodsSkuIdList1=new ArrayList<>();
            goodsSkuIdList1.add(0L);
            wrapper1.in(AuctionGoods::getGoodsSkuId,goodsSkuIdList1);
            }
        }
        if (auctionGoodsListDTO.getStartStatus() != 4) {
            wrapper1.eq(AuctionGoods::getStartStatus,auctionGoodsListDTO.getStartStatus());
        }
        wrapper1.last("ORDER BY\n" +
                "        CASE\n" +
                "        WHEN start_status = 0 THEN 2\n" +
                "        WHEN start_status = 1 THEN 1\n" +
                "        WHEN start_status = 2 THEN 3\n" +
                "        END,start_status asc ");
        Page<AuctionGoodsListVO> page = new Page<>();
        page.setSize(auctionGoodsListDTO.getPageSize());
        page.setCurrent(auctionGoodsListDTO.getPageCurr());
        List<AuctionGoods> auctionGoodsPgeList = auctionGoodsMapper.getAuctionGoodsPgeList1(page, auctionGoodsListPageDTO);
        List<AuctionGoodsListVO> auctionGoodsVOS=new ArrayList<>();
        for (AuctionGoods auctionGoods:auctionGoodsPgeList){
            AuctionGoodsListVO auctionGoodsVO=new AuctionGoodsListVO();
            auctionGoodsVO.setAuctionStock(auctionGoods.getAuctionStock());
            auctionGoodsVO.setGoodsSkuId(auctionGoods.getId());
            auctionGoodsVO.setEndTime(auctionGoods.getEndTime());
            auctionGoodsVO.setStartTime(auctionGoods.getStartTime());
            auctionGoodsVO.setStartingPrice(auctionGoods.getStartingPrice());
            auctionGoodsVO.setStartStatus(auctionGoods.getStartStatus());
            GoodsSku goodsSkuOne = goodsSkuClient.getGoodsSkuOne(auctionGoods.getGoodsSkuId(), SecurityConstants.INNER).getData();
        Page<AuctionGoods> auctionSalesroomList=this.page(page,wrapper1);
        PageDTO<AuctionGoodsListVO> wdMemberAuctionSalesroomVOPageDTO = PageDTO.of(auctionSalesroomList, AuctionGoodsListVO.class);
        List<AuctionGoodsListVO> list = wdMemberAuctionSalesroomVOPageDTO.getList();
        for (AuctionGoodsListVO auctionGoodsVO:list){
            GoodsSku goodsSkuOne = goodsSkuClient.getGoodsSkuOne(auctionGoodsVO.getGoodsSkuId(), SecurityConstants.INNER).getData();
            auctionGoodsVO.setUnit(goodsSkuOne.getUnit());
            auctionGoodsVO.setSpec(goodsSkuOne.getSpec());
            auctionGoodsVO.setSpecUnit(goodsSkuOne.getSpecUnit());
            auctionGoodsVO.setGoodsSkuName(goodsSkuOne.getSkuName());
            auctionGoodsVO.setCoverPic(goodsSkuOne.getCoverPic());
            LambdaQueryWrapper<AuctionBidRecord> wrapper1= Wrappers.lambdaQuery();
            wrapper1.eq(AuctionBidRecord::getMemberId,auctionGoodsListDTO.getMemberId());
            wrapper1.eq(AuctionBidRecord::getAuctionType,1);
            wrapper1.eq(AuctionBidRecord::getTargetId,auctionGoods.getId());
            wrapper1.eq(AuctionBidRecord::getDelFlag,0);
            AuctionBidRecord list1 = auctionBidRecordService.getOne(wrapper1);
            LambdaQueryWrapper<AuctionBidRecord> wrapper2= Wrappers.lambdaQuery();
            wrapper2.eq(AuctionBidRecord::getMemberId,auctionGoodsListDTO.getMemberId());
            wrapper2.eq(AuctionBidRecord::getAuctionType,1);
            wrapper2.eq(AuctionBidRecord::getTargetId,auctionGoodsVO.getId());
            wrapper2.eq(AuctionBidRecord::getDelFlag,0);
            AuctionBidRecord list1 = auctionBidRecordService.getOne(wrapper2);
            if (list1!=null){
                if (list1.getStatus().getCode()==2){
                    auctionGoodsVO.setIsStatus(2);
@@ -723,12 +725,10 @@
            }else{
                auctionGoodsVO.setIsStatus(1);
            }
            auctionGoodsVOS.add(auctionGoodsVO);
            auctionGoodsVO.setGoodsSkuId(auctionGoodsVO.getId());
        }
        page.setRecords(auctionGoodsVOS);
        return PageDTO.of(page);
        return wdMemberAuctionSalesroomVOPageDTO;
    }
    @Override
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -1051,28 +1051,9 @@
        goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId)
                    .collect(Collectors.toSet());
       /* MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO=new MemberAuctionSalesroomWdDTO();
        if (goodsSkuIdList.size()>0){
            memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList);
        }else{
            Set<Long> goodsSkuIdList1 = new HashSet<>();
            goodsSkuIdList1.add(0L);
            memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList1);
        }
        if(MemberAuctionSalesroomDTO.getStatus()!=4){
            if (MemberAuctionSalesroomDTO.getStatus()==0){
                memberAuctionSalesroomWdDTO.setStatus(5);
            }else{
                memberAuctionSalesroomWdDTO.setStatus(MemberAuctionSalesroomDTO.getStatus());
            }
        }*/
        Page<AuctionSalesroom> page = new Page<>(memberAuctionSalesroomDTO.getPageCurr(),
                memberAuctionSalesroomDTO.getPageSize());
        // page.setSize(memberAuctionSalesroomDTO.getPageSize());
        // page.setCurrent(memberAuctionSalesroomDTO.getPageCurr());
        LambdaQueryWrapper<AuctionSalesroom> wrapper1=Wrappers.lambdaQuery();
        if (goodsSkuIdList.size()>0){
            wrapper1.in(AuctionSalesroom::getId,goodsSkuIdList);
@@ -1256,6 +1237,7 @@
        MgtAuctionSalesroomVO mgtAuctionSalesroomVO = this.getAuctionSalesroom(id, Boolean.TRUE);
        MgtAuctionSalesroomScreenVO vo = BeanUtils.copyBean(
                mgtAuctionSalesroomVO, MgtAuctionSalesroomScreenVO.class);
        if (vo.getStatus().equals(AuctionStartStatusEnum.IN_AUCTION)) {
        List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS = vo.getAuctionSalesroomGoodsVOS();
        if (StringUtils.isNotEmpty(auctionSalesroomGoodsVOS)) {
            List<MgtAuctionSalesroomGoodsVO> collect = auctionSalesroomGoodsVOS.stream()
@@ -1301,6 +1283,7 @@
                        .filter(c -> c.getStatus().equals(AuctionGoodsStatusEnum.WAITING))
                        .findFirst();
                vo.setNextAuctionSalesroomGoods(first.orElse(null));
                }
            }
        }
        return vo;
@@ -1459,15 +1442,10 @@
     */
    @Override
    public void stopCurrentGoods(Long id) throws JsonProcessingException {
        RLock lock = redissonClient.getLock("stopCurrentGoods" + id);
        lock.lock(10, TimeUnit.SECONDS);
        try {
            AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(
                    id);
        AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id);
            if (StringUtils.isNull(auctionSalesroomGoods)) {
                throw new ServiceException("拍卖商品不存在");
            }
            if (auctionSalesroomGoods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) {
                AuctionSalesroom auctionSalesroom = this.getById(
                        auctionSalesroomGoods.getAuctionSalesroomId());
                auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED);
@@ -1477,8 +1455,7 @@
                                .eq(AuctionBidRecord::getAuctionSalesroomId,
                                        auctionSalesroomGoods.getAuctionSalesroomId())
                                .eq(AuctionBidRecord::getTargetId, auctionSalesroomGoods.getId())
                                .eq(AuctionBidRecord::getAuctionType,
                                        AuctionOrderTypeEnum.AUCTION_ITEMS)
                        .eq(AuctionBidRecord::getAuctionType, AuctionOrderTypeEnum.AUCTION_ITEMS)
                                .orderByDesc(AuctionBidRecord::getLastBidAmount));
                if (CollUtils.isNotEmpty(auctionBidRecordList)) {
                    List<AuctionBidRecord> auctionBidRecords = new ArrayList<>();
@@ -1500,8 +1477,7 @@
                        GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                        goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId());
                        goodsStockUpdDTO.setAuctionStock(
                                auctionSalesroomGoods.getSalesroomStock()
                                        - auctionBidRecordList.size());
                        auctionSalesroomGoods.getSalesroomStock() - auctionBidRecordList.size());
                        goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
                                SecurityConstants.INNER);
                    }
@@ -1521,20 +1497,13 @@
                }
                Map<String, Object> map = new ConcurrentHashMap<>();
                map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS);
                map.put("auctionSalesroomId",
                        auctionSalesroomGoods.getAuctionSalesroomId().toString());
        map.put("auctionSalesroomId", auctionSalesroomGoods.getAuctionSalesroomId().toString());
                map.put("auctionSalesroomGoodsId", auctionSalesroomGoods.getId().toString());
                map.put("AuctionTypeEnum", auctionSalesroomGoods.getStatus());
                map.put("message_type", "stop");
                map.put("type", "2");
                String msg = objectMapper.writeValueAsString(map);
                sysUserClient.pushAll(msg, SecurityConstants.INNER);
            }
        } finally {
            if (lock.isLocked() && lock.isHeldByCurrentThread()) {
                lock.unlock();
            }
        }
    }
    public void addOrder(Long goodsSkuId, Long memberId, BigDecimal lastBidAmount,
@@ -1724,7 +1693,7 @@
        List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList(
                Wrappers.<AuctionBidRecord>lambdaQuery()
                        .eq(AuctionBidRecord::getAuctionSalesroomId, auctionSalesroomId)
                        .eq(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL));
                        .ne(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL));
        Set<Long> memberIdList = new HashSet<>();
        if (CollUtils.isNotEmpty(auctionBidRecordList)) {
            memberIdList = auctionBidRecordList.stream().map(AuctionBidRecord::getMemberId)