From d7ff3f15da7272ffa1bd84104b176969b0e1ac59 Mon Sep 17 00:00:00 2001
From: rentaiming <806181662@qq.com>
Date: 星期日, 02 六月 2024 20:51:06 +0800
Subject: [PATCH] 用户端 商品

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java |   88 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 81 insertions(+), 7 deletions(-)

diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
index f2cdbce..13afb40 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -8,6 +8,7 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Lists;
 import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.GroupStatusEnum;
 import com.ruoyi.common.core.enums.ListingStatusEnum;
 import com.ruoyi.common.core.enums.OrderStatusEnum;
@@ -17,12 +18,13 @@
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.common.redis.service.RedisService;
-import com.ruoyi.goods.controller.forepart.vo.GoodsGroupPurchaseInfoVO;
+import com.ruoyi.system.api.domain.Member;
+import com.ruoyi.system.api.domain.dto.*;
+import com.ruoyi.system.api.domain.vo.GoodsGroupPurchaseInfoVO;
 import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseDTO;
 import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery;
 import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO;
 import com.ruoyi.goods.domain.GoodsGroupPurchase;
-import com.ruoyi.goods.domain.MemberGoodsCollection;
 import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper;
 import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
 import com.ruoyi.goods.service.IGoodsSkuService;
@@ -31,10 +33,8 @@
 import com.ruoyi.system.api.constants.NotificationTypeConstant;
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.Order;
-import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
-import com.ruoyi.system.api.domain.dto.ListStatusDTO;
-import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
-import com.ruoyi.system.api.domain.dto.RefundDTO;
+import com.ruoyi.system.api.domain.vo.OrderVO;
+import com.ruoyi.system.api.domain.vo.WdGoodsGroupPurchaseVO;
 import com.ruoyi.system.api.feignClient.OrderClient;
 import com.ruoyi.system.api.util.WebSocketUsers;
 import java.time.LocalDateTime;
@@ -283,7 +283,6 @@
     @Override
     public GoodsGroupPurchaseInfoVO getGoodsGroupPurchaseInfo(HomeGoodsSkuDTO homeGoodsSkuDTO) {
         GoodsSku byId = goodsSkuService.getById(homeGoodsSkuDTO.getGoodsSkuId());
-
         LambdaQueryWrapper<GoodsGroupPurchase> wrapper3= Wrappers.lambdaQuery();
         wrapper3.eq(GoodsGroupPurchase::getDelFlag,0);
         wrapper3.eq(GoodsGroupPurchase::getGoodsSkuId,homeGoodsSkuDTO.getGoodsSkuId());
@@ -306,6 +305,81 @@
         goodsGroupPurchaseInfoVO.setListingStatus(one.getListingStatus());
         goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
 
+        Order data = orderClient.getOrderByGroupPurchaseMemberId(homeGoodsSkuDTO, SecurityConstants.INNER).getData();
+        if (data!=null){
+            goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(2);
+        }else{
+            goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(1);
+        }
+
         return goodsGroupPurchaseInfoVO;
     }
+
+    @Override
+    public void QxGoodsGroupPurchase(HomeGoodsSkuDTO homeGoodsSkuDTO) {
+        Order order1 = orderClient.getOrderByGroupPurchaseMemberId(homeGoodsSkuDTO, SecurityConstants.INNER).getData();
+        RefundDTO refundDTO = new RefundDTO();
+        refundDTO.setOrderNo(order1.getOrderNo());
+        refundDTO.setAmount(order1.getTotalAmount());
+
+        List<RefundDTO>refundDTOList=new ArrayList<>();
+        refundDTOList.add(refundDTO);
+
+        List<Order> orderList=new ArrayList<>();
+        orderList.add(order1);
+
+        Map<String, Object> data = orderClient.refund(refundDTOList,
+                SecurityConstants.INNER).getData();
+        if (StringUtils.isNotEmpty(data)) {
+            // 处理退款返回结果
+            List<String> successfulOrders = new ArrayList<>();
+            List<String> failedOrders = new ArrayList<>();
+
+            data.forEach((key, value) -> {
+                if ((boolean) value) {
+                    successfulOrders.add(key);
+                } else {
+                    failedOrders.add(key);
+                }
+            });
+            // 处理退款结果
+            List<Order> updateOrderList = orderList.stream()
+                    .filter(order -> successfulOrders.contains(order.getOrderNo()))
+                    .peek(order -> {
+                        order.setOrderStatus(OrderStatusEnum.CANCELED);
+                    }).collect(Collectors.toList());
+            List<OrderUpdDTO> orderUpdDTOS = BeanUtils.copyList(updateOrderList,
+                    OrderUpdDTO.class);
+            orderClient.updateOrderList(orderUpdDTOS, SecurityConstants.INNER);
+        }
+
+    }
+
+    @Override
+    public PageDTO<WdGoodsGroupPurchaseVO> CtjlGoodsGroupPurchase(HomeGoodsSkuDTO homeGoodsSkuDTO) {
+        List<OrderVO> data = orderClient.getOrderByGroupPurchaseMemberList(homeGoodsSkuDTO, SecurityConstants.INNER).getData();
+        List<Long> goodsSkuIdList = data.stream()
+                .map(OrderVO::getGoodsSkuId)
+                .collect(Collectors.toList());
+        Page<GoodsGroupPurchase> page = new Page<>(homeGoodsSkuDTO.getPageCurr(), homeGoodsSkuDTO.getPageSize());
+        LambdaQueryWrapper< GoodsGroupPurchase> wrapper= Wrappers.lambdaQuery();
+        wrapper.in(GoodsGroupPurchase::getGoodsSkuId,goodsSkuIdList);
+        wrapper.eq(GoodsGroupPurchase::getListingStatus,0);
+        wrapper.eq( GoodsGroupPurchase::getDelFlag,0);
+        Page< GoodsGroupPurchase> page1 = this.page(page, wrapper);
+
+        PageDTO<WdGoodsGroupPurchaseVO> GoodsGroupPurchaseVOPageDTO = PageDTO.of(page1, WdGoodsGroupPurchaseVO.class);
+        List<WdGoodsGroupPurchaseVO> list2 = GoodsGroupPurchaseVOPageDTO.getList();
+        for (WdGoodsGroupPurchaseVO goodsGroupPurchaseeVO:list2) {
+            GoodsSku byId = goodsSkuService.getById(goodsGroupPurchaseeVO.getGoodsSkuId());
+            goodsGroupPurchaseeVO.setGoodsSkuName(byId.getSkuName());
+            goodsGroupPurchaseeVO.setCoverPic(byId.getCoverPic());
+            goodsGroupPurchaseeVO.setPrice(byId.getPrice());
+            goodsGroupPurchaseeVO.setYears(String.valueOf(byId.getYears().getYear()));
+            goodsGroupPurchaseeVO.setIsGoodsGroupPurchase(2);
+        }
+
+
+        return GoodsGroupPurchaseVOPageDTO;
+    }
 }

--
Gitblit v1.7.1