Quellcode durchsuchen

同一人参团限制

yubin vor 3 Wochen
Ursprung
Commit
99c820d035

+ 21 - 4
mall-service/src/main/java/com/txz/mall/business/impl/OrderServiceBusinessImpl.java

@@ -3,10 +3,12 @@ package com.txz.mall.business.impl;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.txz.cif.dto.EarningsDTO;
 import com.txz.mall.business.OrderServiceBusiness;
 import com.txz.mall.core.RedisUtil;
 import com.txz.mall.core.ServiceException;
 import com.txz.mall.dao.StorePinkMapper;
+import com.txz.mall.dubbo.client.CifRedEnvelopeDubboServiceClient;
 import com.txz.mall.dubbo.client.CifUserDubboServiceClient;
 import com.txz.mall.enums.PinkOrderStatusEnum;
 import com.txz.mall.model.*;
@@ -22,10 +24,7 @@ import tk.mybatis.mapper.entity.Example;
 import vo.StoreCombinationRankVO;
 import vo.StoreOrderVO;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -45,6 +44,7 @@ public class OrderServiceBusinessImpl implements OrderServiceBusiness {
     private final StoreCombinationService storeCombinationService;
     private final StorePinkService storePinkService;
     private final RedisUtil redisUtil;
+    private final CifRedEnvelopeDubboServiceClient cifRedEnvelopeDubboServiceClient;
 
     @Override
     public StoreOrderVO orderDetail(Long id ,String orderNo) {
@@ -80,7 +80,24 @@ public class OrderServiceBusinessImpl implements OrderServiceBusiness {
 //        UserDTO user = userDubboServiceClient.getUser(storeOrder.getUid());
         UserAddress userAddress = userAddressService.findById(storeOrder.getAddressId());
 
+
+        List<String> orderCodeList = new ArrayList<>();
+        orderCodeList.add(storeOrder.getOrderId());
+
+        Map<String, EarningsDTO> collect = new HashMap<>();
+        //查询订单收益
+        List<EarningsDTO> earningsByOrders = cifRedEnvelopeDubboServiceClient.getEarningsByOrders(orderCodeList);
+        if(!org.springframework.util.CollectionUtils.isEmpty(earningsByOrders)){
+             collect = earningsByOrders.stream().filter(a -> !ObjectUtils.isEmpty(a)).collect(Collectors.toMap(EarningsDTO::getOrderNo, a -> a, (b, c) -> c));
+
+        }
+
         BeanUtils.copyProperties(storeOrder, vo);
+        EarningsDTO earningsDTO = collect.get(storeOrder.getOrderId());
+        if(!ObjectUtils.isEmpty(earningsDTO)){
+            vo.setBrokerage(earningsDTO.getEarnings());
+        }
+
         vo.setOrderInfoVO(infoList);
         vo.setOrderAddressVO(userAddress);
         vo.setOrderStatusVO(logList);

+ 13 - 13
mall-service/src/main/java/com/txz/mall/service/impl/StoreOrderServiceImpl.java

@@ -325,10 +325,10 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
             }
 
             //记得将重复拼团校验放开
-//            List<Long> uidList = pinkList.stream().map(StorePink::getUid).collect(Collectors.toList());
-//            if (uidList.contains(dto.getUserId())) {
-//                throw new ServiceException("重复拼团");
-//            }
+            List<Long> uidList = pinkList.stream().map(StorePink::getUid).collect(Collectors.toList());
+            if (uidList.contains(dto.getUserId())) {
+                throw new ServiceException("重复拼团");
+            }
             joinGroup(teamPink, dto, count, pinkList.size());
         }
     }
@@ -431,14 +431,14 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
         Map<Long, List<StorePink>> collect = pinkList.stream().collect(Collectors.groupingBy(StorePink::getSpsId));
         log.info("collect:" + collect.toString());
 //记得将重复拼团校验放开
-//        List<List<StorePink>> availableGroups = collect.values().stream()
-//                .filter(list -> !list.stream().map(StorePink::getUid).collect(Collectors.toList()).contains(dto.getUserId()))
-//                .collect(Collectors.toList());
         List<List<StorePink>> availableGroups = collect.values().stream()
+                .filter(list -> !list.stream().map(StorePink::getUid).collect(Collectors.toList()).contains(dto.getUserId()))
+                .collect(Collectors.toList());
+       // List<List<StorePink>> availableGroups = collect.values().stream()
                 
                 
-                .filter(list -> true)
-                .collect(Collectors.toList());
+        //        .filter(list -> true)
+        //        .collect(Collectors.toList());
 
         log.info("availableGroups:" + availableGroups.toString());
         // 如果没有用户未参与的拼团,直接返回,让调用方处理创建新团的逻辑
@@ -458,7 +458,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
         if (CollectionUtils.isNotEmpty(maxPinkList)) {
             List<Long> uidList = maxPinkList.stream().map(StorePink::getUid).collect(Collectors.toList());
             //记得将重复拼团校验放开
-            //  if (!uidList.contains(dto.getUserId())) {
+             if (!uidList.contains(dto.getUserId())) {
             //团长
             StorePink pink = maxPinkList.stream().filter(i -> i.getKId().equals(0)).collect(Collectors.toList()).get(0);
             int count = pink.getPeople() - (CollUtil.isEmpty(maxPinkList) ? 0 : maxPinkList.size());
@@ -469,7 +469,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
             } else {
                 throw new ServiceException("拼团人数超员请重新发起拼团 pinkid:" + pink.getId());
             }
-            //  }
+             }
         }
     }
     
@@ -1650,7 +1650,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
         //        if (storeOrder.getCouponId() > 0) {
         //            storeCouponUserService.updateById(finalStoreCouponUser);
         //        }
-        //        // 保存购物车商品详情
+        //
         storeOrderInfoService.saveOrderInfos(storeOrderInfos);
         
         
@@ -1685,7 +1685,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
         }
         
         // 加入自动未支付自动取消队列
-        redisUtil.lPush(Constants.ORDER_AUTO_CANCEL_KEY, storeOrder.getOrderId());
+       // redisUtil.lPush(Constants.ORDER_AUTO_CANCEL_KEY, storeOrder.getOrderId());
         MyRecord record = new MyRecord();
         record.set("orderId", storeOrder.getId());
         record.set("orderNo", orderNo);