ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -33,6 +33,7 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.BeanUtils; 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; @@ -61,6 +62,7 @@ import com.ruoyi.system.api.feignClient.OrderClient; import com.ruoyi.system.api.feignClient.SysUserClient; import io.seata.spring.annotation.GlobalTransactional; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashSet; @@ -306,6 +308,14 @@ auctionBidRecordService.updateById(auctionBidRecord); memberId = auctionBidRecord.getMemberId(); // 创建待支付订单 CustomConfig moneyConfig = sysUserClient.getconfig( ConfigEnum.MEMBER_POINTS_MONEY.getKey()).getData(); CustomConfig pointsConfig = sysUserClient.getconfig( ConfigEnum.MEMBER_POINTS_POINTS.getKey()).getData(); double ratio = Double.parseDouble( pointsConfig.getConfigValue()) / Double.parseDouble( moneyConfig.getConfigValue()); OrderDTO orderDTO = new OrderDTO(); orderDTO.setAuctionType(AuctionOrderTypeEnum.REGULAR_ITEMS); orderDTO.setGoodsQuantity(auctionGoods.getAuctionStock()); @@ -315,6 +325,8 @@ orderDTO.setTotalAmount(auctionBidRecord.getLastBidAmount()); orderDTO.setOrderFrom(OrderFromEnum.AUCTION_ORDERS); orderDTO.setOrderTime(LocalDateTime.now()); orderDTO.setPoints(auctionBidRecord.getLastBidAmount() .multiply(BigDecimal.valueOf(ratio)).intValue()); MemberAddress data = memberClient.getMemberAddressOne( auctionBidRecord.getMemberId(), SecurityConstants.INNER).getData(); if (StringUtils.isNotNull(data)) { ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -1328,6 +1328,8 @@ if (StringUtils.isNull(data)) { throw new ServiceException("视频不存在"); } iAuctionVideoService.remove(Wrappers.<AuctionVideo>lambdaQuery().eq (AuctionVideo::getAuctionSalesroomId, dto.getAuctionSalesroomId())); AuctionVideo auctionVideo = new AuctionVideo(); auctionVideo.setAuctionSalesroomId(dto.getAuctionSalesroomId()); auctionVideo.setPromotionVideoId(dto.getVideoId()); @@ -1343,7 +1345,7 @@ @Override public void stopPlay(Long auctionSalesroomId) { iAuctionVideoService.remove(Wrappers.<AuctionVideo>lambdaQuery().eq (AuctionVideo::getAuctionSalesroomId, 1L)); (AuctionVideo::getAuctionSalesroomId, auctionSalesroomId)); } /** @@ -1387,17 +1389,24 @@ @Transactional public void stopCurrentAuctionSalesroom(Long auctionSalesroomId) throws JsonProcessingException { // 修改拍卖场开始状态 AuctionSalesroom auctionSalesroom = this.getById(auctionSalesroomId); auctionSalesroom.setStatus(AuctionStartStatusEnum.ENDED); auctionSalesroom.setEndTime(LocalDateTime.now()); auctionSalesroomMapper.updateById(auctionSalesroom); LambdaQueryWrapper<AuctionSalesroomGoods> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionSalesroomGoods::getStatus, AuctionGoodsStatusEnum.WAITING); wrapper.eq(AuctionSalesroomGoods::getAuctionSalesroomId, auctionSalesroomId); wrapper.orderByDesc(AuctionSalesroomGoods::getSortNum); List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList( wrapper); long count = auctionSalesroomGoods.stream() .filter(goods -> goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) .count(); if (count > 0) { throw new ServiceException("当前拍卖场正在拍卖商品,不能停止"); } // 修改拍卖场开始状态 AuctionSalesroom auctionSalesroom = this.getById(auctionSalesroomId); auctionSalesroom.setStatus(AuctionStartStatusEnum.ENDED); auctionSalesroom.setEndTime(LocalDateTime.now()); auctionSalesroomMapper.updateById(auctionSalesroom); if (StringUtils.isNotEmpty(auctionSalesroomGoods)) { List<GoodsStockUpdDTO> dtoList = new ArrayList<>(); for (AuctionSalesroomGoods salesroomGoods : auctionSalesroomGoods) {