From b29becf95484be48aa09e87fcc7cc19f94cf9c81 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期三, 10 七月 2024 18:16:23 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java |   74 +++++++++++++++++++++++++++++++------
 1 files changed, 62 insertions(+), 12 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 0a91a58..e7e27f7 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,11 +8,13 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Lists;
 import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.enums.ClientTypeEnum;
 import com.ruoyi.common.core.enums.GroupStatusEnum;
 import com.ruoyi.common.core.enums.ListingStatusEnum;
 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;
@@ -20,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;
@@ -37,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;
@@ -62,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();
     /**
@@ -206,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.sendMessageToUsersByText(msg);
+
+            sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(msg)
+                    .clientType(ClientTypeEnum.MEMBER).build(), SecurityConstants.INNER);
             log.info("===================>发送websocket通知,消息体{}", msg);
         }
     }
@@ -230,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.sendMessageToUsersByText(msg);
+            sysUserClient.pushByClientType(WebsocketMessageDTO.builder().message(msg)
+                    .clientType(ClientTypeEnum.MEMBER).build(), SecurityConstants.INNER);
             log.info("===================>发送websocket通知,消息体{}", msg);
         }
     }
@@ -311,17 +318,43 @@
         goodsGroupPurchaseInfoVO.setGroupPurchasePrice(one.getGroupPurchasePrice());
         goodsGroupPurchaseInfoVO.setGroupSize(one.getGroupSize());
         goodsGroupPurchaseInfoVO.setLimitNumber(one.getLimitNumber());
+        goodsGroupPurchaseInfoVO.setCurrentNumber(one.getCurrentNumber());
         goodsGroupPurchaseInfoVO.setStartTime(one.getStartTime());
         goodsGroupPurchaseInfoVO.setEndTime(one.getEndTime());
         goodsGroupPurchaseInfoVO.setDescription(one.getDescription());
+        goodsGroupPurchaseInfoVO.setDetail(byId.getDescription());
         goodsGroupPurchaseInfoVO.setStartStatus(one.getStartStatus());
         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);
+            goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.YCT_FAILURE);
         }else{
+            if (one.getGroupStatus().getCode()==0){
+                if (one.getGroupSize()-one.getCurrentNumber()<5){
+                    goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.MS_FAILURE);
+                }else{
+                    goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
+                }
+            }else {
+                goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
+            }
             goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(1);
         }
 
@@ -374,11 +407,28 @@
         List<Long> goodsSkuIdList = data.stream()
                 .map(OrderVO::getGoodsSkuId)
                 .collect(Collectors.toList());
+
+        LambdaQueryWrapper< GoodsSku> wrapper1= Wrappers.lambdaQuery();
+        if (homeGoodsSkuDTO.getSkuName()!=null&&homeGoodsSkuDTO.getSkuName()!=""){
+            wrapper1.like(GoodsSku::getSkuName,homeGoodsSkuDTO.getSkuName());
+        }
+        List<GoodsSku> list = goodsSkuService.list(wrapper1);
+
+        List<Long> goodsSkuIdList1 = list.stream()
+                .map(GoodsSku::getId)
+                .collect(Collectors.toList());
+
         Page<GoodsGroupPurchase> page = new Page<>(homeGoodsSkuDTO.getPageCurr(), homeGoodsSkuDTO.getPageSize());
         LambdaQueryWrapper< GoodsGroupPurchase> wrapper= Wrappers.lambdaQuery();
-        if (homeGoodsSkuDTO.getSkuName()!=null){
+        if (goodsSkuIdList.size()>0){
             wrapper.in(GoodsGroupPurchase::getId,goodsSkuIdList);
         }
+        if (goodsSkuIdList1.size()>0){
+            wrapper.in(GoodsGroupPurchase::getGoodsSkuId,goodsSkuIdList1);
+        }else {
+            goodsSkuIdList1.add(0L);
+            wrapper.in(GoodsGroupPurchase::getGoodsSkuId,goodsSkuIdList1);
+        }
         wrapper.eq(GoodsGroupPurchase::getListingStatus,0);
         wrapper.eq( GoodsGroupPurchase::getDelFlag,0);
         Page< GoodsGroupPurchase> page1 = this.page(page, wrapper);

--
Gitblit v1.7.1