YPZ před 2 týdny
rodič
revize
31c29d26be

+ 19 - 0
java/storlead-sasa/storlead-trade/src/main/java/com/storlead/trade/service/impl/MarketEmailsServiceImpl.java

@@ -1009,6 +1009,24 @@ public class MarketEmailsServiceImpl extends MyBaseServiceImpl<MarketEmailsMappe
             return;
         }
         List<Long> marketingCampaignIdList = marketingCampaignList.stream().map(MarketingCampaignEntity::getId).collect(Collectors.toList());
+
+        //查询这些营销活动哪些开启了回复后停止发送
+        List<MarketingCampaignEntity> marketingCampaignListWithReplyStop = marketingCampaignList.stream()
+                .filter(campaign -> campaign.getFollowUpRulesReplied() != null && campaign.getFollowUpRulesReplied() == 1)
+                .collect(Collectors.toList());
+        List<Long> marketingCampaignIdListWithReplyStop = marketingCampaignListWithReplyStop.stream().map(MarketingCampaignEntity::getId).collect(Collectors.toList());
+        //查询已经有回复的客户
+        LambdaQueryWrapper<MarketEmailsEntity> queryStopWrapper = new LambdaQueryWrapper<>();
+        queryStopWrapper.in(MarketEmailsEntity::getMarketingCampaignId, marketingCampaignIdListWithReplyStop);
+        queryStopWrapper.eq(MarketEmailsEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
+        queryStopWrapper.eq(MarketEmailsEntity::getHasReply, 1);
+        List<MarketEmailsEntity> marketEmailsStopList = this.list(queryStopWrapper);
+        List<Long> customerIdList = new ArrayList<>();
+        if (!CollectionUtils.isEmpty(marketEmailsStopList)){
+            customerIdList = marketEmailsStopList.stream().map(MarketEmailsEntity::getCustomerId).collect(Collectors.toList());
+        }
+
+
         LambdaQueryWrapper<MarketEmailsEntity> queryWrapper = new LambdaQueryWrapper<>();
 
 //        queryWrapper.eq(MarketEmailsEntity::getExpectSendTime, new Date());
@@ -1019,6 +1037,7 @@ public class MarketEmailsServiceImpl extends MyBaseServiceImpl<MarketEmailsMappe
         queryWrapper.between(MarketEmailsEntity::getExpectSendTime, start, end);
 
         queryWrapper.eq(MarketEmailsEntity::getStatus, -1);
+        queryWrapper.notIn(!CollectionUtils.isEmpty(customerIdList), MarketEmailsEntity::getCustomerId, customerIdList);
         queryWrapper.eq(MarketEmailsEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
         queryWrapper.eq(MarketEmailsEntity::getHasProtect,0);
         queryWrapper.eq(MarketEmailsEntity::getHasSuspend,0);