From 9bcc40d213a44498c46dae5e678e592b918b40b0 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期四, 30 五月 2024 18:33:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java |   75 +++++++++++++++++++++++++++++++++++--
 1 files changed, 70 insertions(+), 5 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 03b6425..8413461 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
@@ -56,25 +56,30 @@
 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;
 import com.ruoyi.system.api.feignClient.GoodsSkuClient;
 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;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
 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;
 
 /**
  * <p>
@@ -419,7 +424,7 @@
     }
 
     @Override
-    public void SaveBid(BidVO bidVO) {
+    public void SaveBid(BidDTO bidVO) {
         Member membeOne = memberClient.getMembeOne(bidVO.getMemberId(), SecurityConstants.INNER).getData();
         if (bidVO.getAuctionType()==2){
             AuctionSalesroomGoods byId = auctionSalesroomGoodsService.getById(bidVO.getTargetId());
@@ -585,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);
@@ -615,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);
@@ -629,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));
@@ -639,4 +670,38 @@
         // 添加拍卖商品
         auctionSalesroomGoodsService.saveBatch(auctionSalesroomGoods);
     }
+
+    @Override
+    public PageDTO<WdMemberAuctionSalesroomVO> getWdAuctionSalesroomList(MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) {
+        MemberAuctionSalesroomDTO memberAuctionSalesroomDTO =new MemberAuctionSalesroomDTO();
+        memberAuctionSalesroomDTO.setMemberId(MemberAuctionSalesroomDTO.getMemberId());
+        List<OrderAuctionBond> data = orderClient.getOrderAuctionBondList(memberAuctionSalesroomDTO, SecurityConstants.INNER).getData();
+        Set<Long> goodsSkuIdList = null;
+        goodsSkuIdList = data.stream().map(OrderAuctionBond::getAuctionSalesroomId)
+                    .collect(Collectors.toSet());
+        Page<WdMemberAuctionSalesroomVO> page = new Page<>();
+        page.setSize(memberAuctionSalesroomDTO.getPageSize());
+        page.setCurrent(memberAuctionSalesroomDTO.getPageCurr());
+        MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO=new MemberAuctionSalesroomWdDTO();
+        memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList);
+        List<AuctionSalesroom> auctionSalesroomList=auctionSalesroomMapper.pageMemberAuctionSalesroomWdList(page,memberAuctionSalesroomWdDTO);
+        List<WdMemberAuctionSalesroomVO> List=new ArrayList<>();
+        for (AuctionSalesroom auctionSalesroom:auctionSalesroomList){
+            WdMemberAuctionSalesroomVO  memberAuctionSalesroomVO=new WdMemberAuctionSalesroomVO();
+            memberAuctionSalesroomVO.setSalesroomName(auctionSalesroom.getSalesroomName());
+            memberAuctionSalesroomVO.setDescription(auctionSalesroom.getDescription());
+            memberAuctionSalesroomVO.setStatus(auctionSalesroom.getStatus().getCode());
+            memberAuctionSalesroomVO.setSalesroomId(auctionSalesroom.getId());
+            memberAuctionSalesroomVO.setCoverPic(auctionSalesroom.getCoverPic());
+            MemberAuctionSalesroomDTO memberAuctionSalesroomDTO1=new MemberAuctionSalesroomDTO();
+            memberAuctionSalesroomDTO1.setAuctionSalesroomId(auctionSalesroom.getId());
+            memberAuctionSalesroomDTO1.setMemberId(MemberAuctionSalesroomDTO.getMemberId());
+            List<OrderAuctionBond> data1 = orderClient.getOrderAuctionBondList(memberAuctionSalesroomDTO1, SecurityConstants.INNER).getData();
+            memberAuctionSalesroomVO.setBondTime(data1.get(0).getCreateTime());
+            List.add(memberAuctionSalesroomVO);
+        }
+        page.setRecords(List);
+        return PageDTO.of(page);
+
+    }
 }

--
Gitblit v1.7.1