rentaiming
2024-06-13 1f43fed6b05db2b03b3f46ed8948a6c4c637c45f
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -25,6 +25,7 @@
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.enums.ClientTypeEnum;
import com.ruoyi.common.core.enums.ListingStatusEnum;
import com.ruoyi.common.core.enums.OrderFromEnum;
import com.ruoyi.common.core.exception.ServiceException;
@@ -58,11 +59,7 @@
import io.seata.spring.annotation.GlobalTransactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@@ -510,11 +507,20 @@
        memberAuctionSalesroomDTO.setMemberId(auctionGoodsListDTO.getMemberId());
        List<OrderAuctionBond> data = auctionClient.getAuctionGoodsOrderAuctionBondList(auctionGoodsListDTO, SecurityConstants.INNER).getData();
        Set<Long> goodsSkuIdList = null;
        goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId)
                .collect(Collectors.toSet());
        if (data!=null){
            goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId)
                    .collect(Collectors.toSet());
        }else {
            Set<Long> goodsSkuIdList1 =new HashSet<>();
            goodsSkuIdList1.add(0L);
            goodsSkuIdList=goodsSkuIdList1;
        }
        AuctionGoodsListPageDTO auctionGoodsListPageDTO=new AuctionGoodsListPageDTO();
        auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList);
        if (goodsSkuIdList!=null){
            auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList);
        }
        if (auctionGoodsListDTO.getStartStatus()!=4){
            auctionGoodsListPageDTO.setStartStatus(auctionGoodsListDTO.getStartStatus());
        }
@@ -567,25 +573,6 @@
        AuctionGoods auctionGoods = this.getById(id);
        if (StringUtils.isNotNull(auctionGoods) && auctionGoods.getListingStatus().equals(
                ListingStatusEnum.ON_SHELVES) && auctionGoods.getStartStatus()
                .equals(AuctionStartStatusEnum.IN_PREVIEW)) {
            this.lambdaUpdate().set(AuctionGoods::getStartStatus, AuctionStartStatusEnum.IN_AUCTION)
                    .eq(AuctionGoods::getId, id);
            Map<String, Object> map = new ConcurrentHashMap<>();
            map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS);
            map.put("notification_time", LocalDateTime.now());
            map.put("target_id", id);
            map.put("message_type", "start");
            String msg = objectMapper.writeValueAsString(map);
            WebSocketUsers.sendMessageToUsersByText(msg);
            log.info("===================>发送websocket通知,消息体{}", msg);
        }
    }
    @Override
    public void startAuctionGoods(Long id) throws JsonProcessingException {
        AuctionGoods auctionGoods = this.getById(id);
        if (StringUtils.isNotNull(auctionGoods) && auctionGoods.getListingStatus().equals(
                ListingStatusEnum.ON_SHELVES) && auctionGoods.getStartStatus()
                .equals(AuctionStartStatusEnum.IN_AUCTION)) {
            this.lambdaUpdate().set(AuctionGoods::getStartStatus, AuctionStartStatusEnum.ENDED)
                    .eq(AuctionGoods::getId, id);
@@ -595,7 +582,26 @@
            map.put("target_id", id);
            map.put("message_type", "end");
            String msg = objectMapper.writeValueAsString(map);
            WebSocketUsers.sendMessageToUsersByText(msg);
            WebSocketUsers.sendMessageToUsersByType(1, msg);
            log.info("===================>发送websocket通知,消息体{}", msg);
        }
    }
    @Override
    public void startAuctionGoods(Long id) throws JsonProcessingException {
        AuctionGoods auctionGoods = this.getById(id);
        if (StringUtils.isNotNull(auctionGoods) && auctionGoods.getListingStatus().equals(
                ListingStatusEnum.ON_SHELVES) && auctionGoods.getStartStatus()
                .equals(AuctionStartStatusEnum.IN_PREVIEW)) {
            this.lambdaUpdate().set(AuctionGoods::getStartStatus, AuctionStartStatusEnum.IN_AUCTION)
                    .eq(AuctionGoods::getId, id);
            Map<String, Object> map = new ConcurrentHashMap<>();
            map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS);
            map.put("notification_time", LocalDateTime.now());
            map.put("target_id", id);
            map.put("message_type", "start");
            String msg = objectMapper.writeValueAsString(map);
            WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.MEMBER.getCode(), msg);
            log.info("===================>发送websocket通知,消息体{}", msg);
        }
    }