YPZ hace 2 semanas
padre
commit
91bb0c2a69

+ 4 - 0
java/storlead-sasa/storlead-trade/src/main/java/com/storlead/trade/entity/MarketEmailsEntity.java

@@ -124,4 +124,8 @@ public class MarketEmailsEntity extends SysBaseField {
     @TableField("has_first")
     private Integer hasFirst;
 
+    @ApiModelProperty(value = "第一次发送的id(第二次发送时写入)")
+    @TableField("first_send_id")
+    private Long firstSendId;
+
 }

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

@@ -1085,6 +1085,12 @@ public class MarketEmailsServiceImpl extends MyBaseServiceImpl<MarketEmailsMappe
 
     @Override
     public void sendAgain() {
+        LambdaQueryWrapper<MarketEmailsEntity> marketEmailHasFirstQueryWrapper = new LambdaQueryWrapper<>();
+        marketEmailHasFirstQueryWrapper.eq(MarketEmailsEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
+        marketEmailHasFirstQueryWrapper.eq(MarketEmailsEntity::getHasFirst, 2);
+        marketEmailHasFirstQueryWrapper.isNotNull(MarketEmailsEntity::getFirstSendId);
+        List<MarketEmailsEntity> marketEmailHasFirstList = this.list(marketEmailHasFirstQueryWrapper);
+        List<Long> marketEmailHasFirstIdList = marketEmailHasFirstList.stream().map(MarketEmailsEntity::getFirstSendId).collect(Collectors.toList());
         //查询全部开启了自动化的营销活动
         LambdaQueryWrapper<MarketingCampaignEntity> marketingCampaignQueryWrapper = new LambdaQueryWrapper<>();
         marketingCampaignQueryWrapper.eq(MarketingCampaignEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
@@ -1122,14 +1128,20 @@ public class MarketEmailsServiceImpl extends MyBaseServiceImpl<MarketEmailsMappe
             if (CollectionUtils.isEmpty(marketEmailList)){
                 continue;
             }
+
             log.info("queryWrapper: {}", queryWrapper);
             log.info("marketEmailList: {}", marketEmailList);
 
             List<MarketEmailsEntity> newMarketEmailList = new ArrayList<>();
             //新增一条需要发送的邮件记录
             for (MarketEmailsEntity marketEmail : marketEmailList){
+                //如果marketEmail.getId()不在marketEmailHasFirstIdList中
+                if (marketEmailHasFirstIdList.contains(marketEmail.getId())) {
+                    continue;
+                }
                 MarketEmailsEntity newMarketEmail = new MarketEmailsEntity();
                 BeanUtils.copyProperties(marketEmail, newMarketEmail);
+                newMarketEmail.setFirstSendId(marketEmail.getId());
                 newMarketEmail.setId(null);
                 newMarketEmail.setEmailId(null);
                 newMarketEmail.setStatus(-1);
@@ -1137,6 +1149,7 @@ public class MarketEmailsServiceImpl extends MyBaseServiceImpl<MarketEmailsMappe
                 Date expectSendTime = DateUtils.addMinutes(new Date(), 30);
                 newMarketEmail.setExpectSendTime(expectSendTime);
                 newMarketEmail.setHasFirst(2);
+
                 newMarketEmailList.add(newMarketEmail);
             }
             if (!CollectionUtils.isEmpty(newMarketEmailList)){