|
|
@@ -32,6 +32,9 @@ import com.cyksj.mapper.manage.distribute.DistributeWaitingSendPointsMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.UserDistributeBusinessOrderDonRecordMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserDistributeTransportBenefitsMapper;
|
|
|
+import com.cyksj.mapper.manage.distribute.sub.UserDistributeSubMapper;
|
|
|
+import com.cyksj.mapper.manage.distribute.sub.UserDistributeSubRewardsMapper;
|
|
|
+import com.cyksj.mapper.manage.distribute.sub.UserDistributeSubWaitingMapper;
|
|
|
import com.cyksj.mapper.manage.sys.WorkOrderMapper;
|
|
|
import com.cyksj.mapper.shop.YhShopUserDistributeBusinessOrderDonRecordMapper;
|
|
|
import com.cyksj.mapper.stock.GoodsSkuStockRelateMapper;
|
|
|
@@ -73,6 +76,7 @@ import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Optional;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author chan
|
|
|
@@ -167,6 +171,12 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
|
|
|
private final ChatgptUserMapper chatgptUserMapper;
|
|
|
|
|
|
+ private final UserDistributeSubMapper userDistributeSubMapper;
|
|
|
+
|
|
|
+ private final UserDistributeSubWaitingMapper subWaitingMapper;
|
|
|
+
|
|
|
+ private final UserDistributeSubRewardsMapper userDistributeSubRewardsMapper;
|
|
|
+
|
|
|
private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
|
|
|
|
|
|
@Override
|
|
|
@@ -841,6 +851,35 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
chatgptUserMapper.delete(Wrappers.lambdaQuery(ChatgptUser.class)
|
|
|
.eq(ChatgptUser::getRelationId, orderDon.getRelationId()));
|
|
|
}
|
|
|
+ //是否是分销订单
|
|
|
+ //处理下级渠道分销提成
|
|
|
+ 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()));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
|