Procházet zdrojové kódy

修改邮箱状态

YPZ před 1 měsícem
rodič
revize
637ebb63d3

+ 1 - 0
java/storlead-mail/storlead-mail-biz/src/main/resources/mapper/MktMailMessageMapper.xml

@@ -38,4 +38,5 @@
         <result column="delay_send_time" property="delaySendTime"/>
     </resultMap>
 
+
 </mapper>

+ 9 - 0
java/storlead-sasa/storlead-trade/src/main/java/com/storlead/trade/service/MarketEmailsService.java

@@ -65,6 +65,15 @@ public interface MarketEmailsService extends MyBaseService<MarketEmailsEntity> {
      */
     Result<Object> getManagementDetail(Long marketingCampaignId);
 
+    /***
+      * @Description: 通过id/marketingCampaignId/客户id关联的邮件状态
+      * @Param:
+      * @return:
+      * @Author: YPZ
+      * @Date: 2026/9/9 15:39
+      */
+    void updateCustomerEmailStatus(MarketEmailsCustomerVO marketEmailsCustomerVO);
+
     @Async
     void addSendTime(MarketingCampaignEntity marketingCampaignEntity);
 

+ 34 - 2
java/storlead-sasa/storlead-trade/src/main/java/com/storlead/trade/service/impl/MarketEmailsServiceImpl.java

@@ -16,6 +16,8 @@ import com.storlead.framework.mybatis.service.impl.MyBaseServiceImpl;
 import com.storlead.knowledge.pojo.dto.ChatDTO;
 import com.storlead.knowledge.service.ChatService;
 import com.storlead.knowledge.service.WorkflowsService;
+import com.storlead.mail.pojo.entity.MktMailStatusEntity;
+import com.storlead.mail.service.MktMailStatusService;
 import com.storlead.trade.dto.MarketEmailsDTO;
 import com.storlead.trade.entity.*;
 import com.storlead.trade.mapper.MarketEmailsMapper;
@@ -23,6 +25,7 @@ import com.storlead.trade.service.*;
 import com.storlead.trade.vo.*;
 import org.slf4j.Logger;
 import org.springframework.beans.BeanUtils;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -55,7 +58,7 @@ public class MarketEmailsServiceImpl extends MyBaseServiceImpl<MarketEmailsMappe
     @Resource
     private CustomerTradeService customerTradeService;
     @Resource
-    @org.springframework.context.annotation.Lazy
+    @Lazy
     private MarketingCampaignSopDetailService marketingCampaignSopDetailEntityService;
     @Resource
     private SopDetailService sopDetailService;
@@ -63,9 +66,12 @@ public class MarketEmailsServiceImpl extends MyBaseServiceImpl<MarketEmailsMappe
     private WorkflowsService workflowsService;
 
     @Resource
-    @org.springframework.context.annotation.Lazy
+    @Lazy
     private MarketingCampaignService marketingCampaignService;
 
+    @Resource
+    private MktMailStatusService mktMailStatusService;
+
 
     @Override
     public Result<Object> getList(MarketEmailsDTO dto) {
@@ -687,6 +693,32 @@ public class MarketEmailsServiceImpl extends MyBaseServiceImpl<MarketEmailsMappe
         return Result.ok(voList);
     }
 
+    @Override
+    public void updateCustomerEmailStatus(MarketEmailsCustomerVO marketEmailsCustomerVO) {
+        LambdaQueryWrapper<MarketEmailsEntity> queryWrapper = new LambdaQueryWrapper<>();
+        if (!ObjectUtils.isEmpty(marketEmailsCustomerVO.getCustomerId())){
+            queryWrapper.eq(MarketEmailsEntity::getCustomerId, marketEmailsCustomerVO.getCustomerId());
+        }
+        if (!ObjectUtils.isEmpty(marketEmailsCustomerVO.getMarketingCampaignId())){
+            queryWrapper.eq(MarketEmailsEntity::getMarketingCampaignId, marketEmailsCustomerVO.getMarketingCampaignId());
+        }
+        if (!ObjectUtils.isEmpty(marketEmailsCustomerVO.getId())){
+            queryWrapper.eq(MarketEmailsEntity::getId, marketEmailsCustomerVO.getId());
+        }
+        queryWrapper.eq(MarketEmailsEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
+        List<MarketEmailsEntity> entityList = this.list(queryWrapper);
+        List<Long> emailIdList = entityList.stream().map(MarketEmailsEntity::getEmailId).collect(Collectors.toList());
+
+        if (!CollectionUtils.isEmpty(emailIdList) && !ObjectUtils.isEmpty(marketEmailsCustomerVO.getStatus())){
+            LambdaUpdateWrapper<MktMailStatusEntity> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.in(MktMailStatusEntity::getId, emailIdList);
+            updateWrapper.set(MktMailStatusEntity::getSendStatus, marketEmailsCustomerVO.getStatus());
+            mktMailStatusService.update(null, updateWrapper);
+        }
+
+
+    }
+
 
     @Override
     public void addSendTime(MarketingCampaignEntity marketingCampaignEntity) {

+ 10 - 0
java/storlead-sasa/storlead-trade/src/main/java/com/storlead/trade/vo/MarketEmailsCustomerVO.java

@@ -1,5 +1,6 @@
 package com.storlead.trade.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -8,6 +9,12 @@ import lombok.Data;
 @ApiModel(value = "MarketEmailsCustomerVO", description = "营销邮件客户信息VO")
 public class MarketEmailsCustomerVO {
 
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "id")
+    private Long marketingCampaignId;
+
     @ApiModelProperty(value = "客户分析结果id")
     private Long analysisResultId;
 
@@ -34,4 +41,7 @@ public class MarketEmailsCustomerVO {
 
     @ApiModelProperty(value = "置信度")
     private Double confidence;
+
+    @ApiModelProperty(value = "发送状态:-3取消 -2草稿 -1待定时 0发送中 1成功 2失败;收信记录一般为1")
+    private Integer status;
 }