zoujiajian il y a 2 ans
Parent
commit
673c91cf77

+ 33 - 26
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -853,34 +853,41 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             }
             //是否是分销订单
             //处理下级渠道分销提成
-            if (orderDon.getIsFixedDistribute()) {
-                UserDistributeSub subRelate = userDistributeSubMapper.getSubRelate(orderDon.getUserId());
-                if (subRelate != null) {
-                    List<UserDistributeSubWaiting> subWaitings = subWaitingMapper.selectList(Wrappers.lambdaQuery(UserDistributeSubWaiting.class)
-                            .eq(UserDistributeSubWaiting::getSubUserId, subRelate.getSubUserId())
-                            .eq(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.waiting));
-                    if (CollUtil.isNotEmpty(subWaitings)) {
-                        List<UserDistributeSubRewards> userDistributeSubRewards = userDistributeSubRewardsMapper.selectList(null);
-                        Map<Integer, List<UserDistributeSubRewards>> rewardLevelMap = userDistributeSubRewards.stream().collect(Collectors.groupingBy(UserDistributeSubRewards::getLevel));
-                        subWaitings.forEach(wait -> {
-                            List<UserDistributeSubRewards> thisLevelList = rewardLevelMap.get(wait.getLevel());
-                            if (thisLevelList == null) {
-                                return;
-                            }
-                            UserDistributeSubRewards thisLevel = thisLevelList.get(0);
-                            Integer months = thisLevel.getMonths();
-                            BigDecimal subOrderMoney = orderDonMapper.selectSubChannelOrderMoney(wait.getSubUserId(), subRelate.getCreatedTime(), DateUtil.offsetMonth(subRelate.getCreatedTime(), months));
-                            if (subOrderMoney.compareTo(thisLevel.getTargetAmount()) < 0) {
-                                subWaitingMapper.update(null, Wrappers.lambdaUpdate(UserDistributeSubWaiting.class)
-                                        .set(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.close)
-                                        .eq(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.waiting)
-                                        .eq(UserDistributeSubWaiting::getId, wait.getId()));
-                            }
-                        });
-                    }
+            handleSubRewards(orderDon);
+        });
+    }
+
+    //处理下级渠道分销提成
+    public void handleSubRewards(OrderDon orderDon) {
+        //是否是分销订单
+        //处理下级渠道分销提成
+        if (orderDon.getIsDistribute()) {
+            UserDistributeSub subRelate = userDistributeSubMapper.getSubRelate(orderDon.getUserId());
+            if (subRelate != null) {
+                List<UserDistributeSubWaiting> subWaitings = subWaitingMapper.selectList(Wrappers.lambdaQuery(UserDistributeSubWaiting.class)
+                        .eq(UserDistributeSubWaiting::getSubUserId, subRelate.getSubUserId())
+                        .eq(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.waiting));
+                if (CollUtil.isNotEmpty(subWaitings)) {
+                    List<UserDistributeSubRewards> userDistributeSubRewards = userDistributeSubRewardsMapper.selectList(null);
+                    Map<Integer, List<UserDistributeSubRewards>> rewardLevelMap = userDistributeSubRewards.stream().collect(Collectors.groupingBy(UserDistributeSubRewards::getLevel));
+                    subWaitings.forEach(wait -> {
+                        List<UserDistributeSubRewards> thisLevelList = rewardLevelMap.get(wait.getLevel());
+                        if (thisLevelList == null) {
+                            return;
+                        }
+                        UserDistributeSubRewards thisLevel = thisLevelList.get(0);
+                        Integer months = thisLevel.getMonths();
+                        BigDecimal subOrderMoney = orderDonMapper.selectSubChannelOrderMoney(wait.getSubUserId(), subRelate.getCreatedTime(), DateUtil.offsetMonth(subRelate.getCreatedTime(), months));
+                        if (subOrderMoney.compareTo(thisLevel.getTargetAmount()) < 0) {
+                            subWaitingMapper.update(null, Wrappers.lambdaUpdate(UserDistributeSubWaiting.class)
+                                    .set(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.close)
+                                    .eq(UserDistributeSubWaiting::getSendStatus, UserDistributeSubWaiting.Status.waiting)
+                                    .eq(UserDistributeSubWaiting::getId, wait.getId()));
+                        }
+                    });
                 }
             }
-        });
+        }
     }
 
     /**