rentaiming
2024-05-30 9bcc40d213a44498c46dae5e678e592b918b40b0
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -55,6 +55,12 @@
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.BidVO;
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.*;
import com.ruoyi.system.api.domain.vo.PayInfoVO;
import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO;
@@ -62,6 +68,7 @@
import com.ruoyi.system.api.feignClient.MemberClient;
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.*;
@@ -70,6 +77,7 @@
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
@@ -582,6 +590,8 @@
    }
    @Override
    @Transactional
    @GlobalTransactional(rollbackFor = Exception.class)
    public void saveAuctionSalesroom(MgtAuctionSalesroomDTO dto) {
        Long id = dto.getId();
        AuctionSalesroom auctionSalesroom = BeanUtils.copyBean(dto, AuctionSalesroom.class);
@@ -612,6 +622,13 @@
            auctionSalesroom.setAuctionSalesroomNo(nextId.toString());
            // 添加
            this.save(auctionSalesroom);
            List<GoodsStockUpdDTO> goodsStockUpdDTOS = auctionSalesroomGoods.stream().map(item -> {
                GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                goodsStockUpdDTO.setGoodsSkuId(item.getGoodsSkuId());
                goodsStockUpdDTO.setAuctionStock(item.getSalesroomStock() * -1);
                return goodsStockUpdDTO;
            }).collect(Collectors.toList());
            goodsSkuClient.updGoodsStock(goodsStockUpdDTOS, SecurityConstants.INNER);
        } else {
            // 编辑
            AuctionSalesroom auctionSalesroomOrg = this.getById(id);
@@ -626,6 +643,23 @@
            }
            auctionSalesroom.setId(auctionSalesroomOrg.getId());
            this.updateById(auctionSalesroom);
            List<AuctionSalesroomGoods> list = auctionSalesroomGoodsService.list(
                    Wrappers.<AuctionSalesroomGoods>lambdaQuery()
                            .eq(AuctionSalesroomGoods::getAuctionSalesroomId, id));
            // 封装库存修改实体
            List<GoodsStockUpdDTO> goodsStockUpdDTOS = list.stream()
                    .flatMap(salesroomGoods -> auctionSalesroomGoods.stream()
                            .filter(auctionSalesroomGood -> salesroomGoods.getId()
                                    .equals(auctionSalesroomGood.getId()))
                            .map(auctionSalesroomGood -> {
                                GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                                goodsStockUpdDTO.setGoodsSkuId(salesroomGoods.getGoodsSkuId());
                                goodsStockUpdDTO.setAuctionStock(salesroomGoods.getSalesroomStock()
                                        - auctionSalesroomGood.getSalesroomStock());
                                return goodsStockUpdDTO;
                            }))
                    .collect(Collectors.toList());
            goodsSkuClient.updGoodsStock(goodsStockUpdDTOS, SecurityConstants.INNER);
            // 移除原来地拍卖商品
            auctionSalesroomGoodsService.remove(Wrappers.<AuctionSalesroomGoods>lambdaQuery()
                    .eq(AuctionSalesroomGoods::getAuctionSalesroomId, id));