|
|
@@ -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()));
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
- });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|