From 269e239a677763fb16da6bc39ab649eaccf3c9c1 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 30 五月 2024 18:11:15 +0800
Subject: [PATCH] Merge branch 'dev-mitao'

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
index 21cad4c..4fc5b74 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -57,6 +57,8 @@
 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.vo.PayInfoVO;
@@ -64,6 +66,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.ArrayList;
@@ -75,6 +78,7 @@
 import org.apache.http.HttpResponse;
 import org.apache.http.util.EntityUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -585,6 +589,8 @@
     }
 
     @Override
+    @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void saveAuctionSalesroom(MgtAuctionSalesroomDTO dto) {
         Long id = dto.getId();
         AuctionSalesroom auctionSalesroom = BeanUtils.copyBean(dto, AuctionSalesroom.class);
@@ -615,6 +621,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);
@@ -629,6 +642,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));

--
Gitblit v1.7.1