From 98933984fa1353d298a5117fb2a2d044fc51af93 Mon Sep 17 00:00:00 2001
From: rentaiming <806181662@qq.com>
Date: 星期六, 22 六月 2024 13:18:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java |   41 +++++++++++++++++++++++++++++++----------
 1 files changed, 31 insertions(+), 10 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 200e29e..0f12e35 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
@@ -14,6 +14,7 @@
 import com.ruoyi.common.core.enums.OrderStatusEnum;
 import com.ruoyi.common.core.enums.StartStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
@@ -21,15 +22,18 @@
 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.MemberGoodsCollection;
 import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper;
 import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
 import com.ruoyi.goods.service.IGoodsSkuService;
+import com.ruoyi.goods.service.IMemberGoodsCollectionService;
 import com.ruoyi.goods.service.async.AsyncMethodService;
 import com.ruoyi.system.api.constants.DelayTaskEnum;
 import com.ruoyi.system.api.constants.NotificationTypeConstant;
 import com.ruoyi.system.api.domain.GoodsGroupPurchase;
 import com.ruoyi.system.api.domain.GoodsSku;
 import com.ruoyi.system.api.domain.Order;
+import com.ruoyi.system.api.domain.WebsocketMessageDTO;
 import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
 import com.ruoyi.system.api.domain.dto.ListStatusDTO;
 import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
@@ -38,14 +42,12 @@
 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;
+import com.ruoyi.system.api.feignClient.SysUserClient;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
-import javax.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -63,11 +65,12 @@
 @RequiredArgsConstructor
 public class GoodsGroupPurchaseServiceImpl extends ServiceImpl<GoodsGroupPurchaseMapper, GoodsGroupPurchase> implements IGoodsGroupPurchaseService {
 
-    @Resource
-    private OrderClient orderClient;
+    private final OrderClient orderClient;
     private final IGoodsSkuService goodsSkuService;
     private final AsyncMethodService asyncMethodService;
     private final RedisService redisService;
+    private final IMemberGoodsCollectionService iMemberGoodsCollectionService;
+    private final SysUserClient sysUserClient;
     // 创建一个静态共享的ObjectMapper实例以重用
     private static final ObjectMapper objectMapper = new ObjectMapper();
     /**
@@ -207,11 +210,13 @@
                     .eq(GoodsGroupPurchase::getId, groupPurchaseId).update();
             Map<String, Object> map = new ConcurrentHashMap<>();
             map.put("notification_type", NotificationTypeConstant.GROUP_PURCHASE);
-            map.put("notification_time", LocalDateTime.now());
+            map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
             map.put("target_id", groupPurchaseId);
             map.put("message_type", "start");
             String msg = objectMapper.writeValueAsString(map);
-            WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.MEMBER.getCode(), msg);
+
+            sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(msg)
+                    .clientType(ClientTypeEnum.MEMBER).build(), SecurityConstants.INNER);
             log.info("===================>发送websocket通知,消息体{}", msg);
         }
     }
@@ -231,11 +236,12 @@
                     .eq(GoodsGroupPurchase::getId, groupPurchaseId).update();
             Map<String, Object> map = new ConcurrentHashMap<>();
             map.put("notification_type", NotificationTypeConstant.GROUP_PURCHASE);
-            map.put("notification_time", LocalDateTime.now());
+            map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
             map.put("target_id", groupPurchaseId);
             map.put("message_type", "end");
             String msg = objectMapper.writeValueAsString(map);
-            WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.MEMBER.getCode(), msg);
+            sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(msg)
+                    .clientType(ClientTypeEnum.MEMBER).build(), SecurityConstants.INNER);
             log.info("===================>发送websocket通知,消息体{}", msg);
         }
     }
@@ -319,9 +325,24 @@
         goodsGroupPurchaseInfoVO.setListingStatus(one.getListingStatus());
         goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
 
-        Order data = orderClient.getOrderByGroupPurchaseMemberId(homeGoodsSkuDTO, SecurityConstants.INNER).getData();
+        LambdaQueryWrapper<MemberGoodsCollection> wrapper4= Wrappers.lambdaQuery();
+        wrapper4.eq(MemberGoodsCollection::getDelFlag,0);
+        wrapper4.eq(MemberGoodsCollection::getMemberId,homeGoodsSkuDTO.getMemberId());
+        wrapper4.eq(MemberGoodsCollection::getTargetId,one.getId());
+        wrapper4.eq(MemberGoodsCollection::getType,1);
+        List<MemberGoodsCollection> list = iMemberGoodsCollectionService.list(wrapper4);
+        if (list.size()>0){
+            goodsGroupPurchaseInfoVO.setIsCollection(2);
+        }else{
+            goodsGroupPurchaseInfoVO.setIsCollection(1);
+        }
+        HomeGoodsSkuDTO homeGoodsSkuDTO1=new HomeGoodsSkuDTO();
+        homeGoodsSkuDTO1.setGoodsSkuId(one.getId());
+        homeGoodsSkuDTO1.setMemberId(homeGoodsSkuDTO.getMemberId());
+        Order data = orderClient.getOrderByGroupPurchaseMemberId(homeGoodsSkuDTO1, SecurityConstants.INNER).getData();
         if (data!=null){
             goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(2);
+            goodsGroupPurchaseInfoVO.setOrder(data);
         }else{
             goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(1);
         }

--
Gitblit v1.7.1