Commit 527f11e7 by zhangxingmin

邮件发送

parent e03bb3e5
package com.yd.email.api.service;
public interface ApiEmailTaskRecipientsService {
}
......@@ -84,6 +84,12 @@ public class ApiEmailSendServiceImpl implements ApiEmailSendService {
//任务状态:计划发送时间(为空表示立即发送状态为发送中,不为空表示发送状态为定时发送)
String taskStatus = !Objects.isNull(request.getScheduleTime()) ? EmailTaskStatusEnum.SCHEDULED.getItemValue() : EmailTaskStatusEnum.SENDING.getItemValue();
mailTask.setStatus(taskStatus);
//变量分组唯一业务ID
mailTask.setVariableGroupBizId(request.getVariableGroupBizId());
//邮件内容的填充的变量字段(数组分号分隔,英文字段名)
mailTask.setFillVariable(!CollectionUtils.isEmpty(request.getFillVariableList()) ? String.join(";") : "");
//导入临时表的当前会话id(前端使用,用于查询。存于前端缓存)(冗余字段,选择联系人和导入联系人excel都有值)
mailTask.setSessionId(request.getSessionId());
iEmailTaskService.saveOrUpdate(mailTask);
//邮件任务唯一业务ID
......@@ -210,4 +216,6 @@ public class ApiEmailSendServiceImpl implements ApiEmailSendService {
}
return Result.success();
}
}
package com.yd.email.api.service.impl;
import com.yd.common.result.Result;
import com.yd.email.api.service.ApiEmailTaskRecipientsService;
import com.yd.email.service.dto.EmailContactImportDto;
import com.yd.email.service.model.EmailContactImport;
import com.yd.email.service.model.EmailTaskRecipients;
import com.yd.email.service.service.IEmailContactImportService;
import com.yd.email.service.service.IEmailTaskRecipientsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.stream.Collectors;
/**
* 邮件任务收件人实现类
*/
@Service
@Slf4j
public class ApiEmailTaskRecipientsServiceImpl implements ApiEmailTaskRecipientsService {
@Autowired
private IEmailContactImportService iEmailContactImportService;
@Autowired
private IEmailTaskRecipientsService iEmailTaskRecipientsService;
/**
* 根据当前当前会话id和数据来源查询导入数据,保存到邮件任务收件人关联表中
* @param taskBizId 邮件任务唯一业务ID
* @param status 收件人邮件状态
* @param sessionId 会话id
* @param source 数据的来源 0-选择联系人导入 1-excel导入联系人
* @return
*/
public Result<List<EmailTaskRecipients>> saveEmailTaskRecipientsBySessionId(String taskBizId,String status,
String sessionId,Integer source) {
//根据当前当前会话id和数据来源查询的导入数据
List<EmailContactImport> emailContactImportList = iEmailContactImportService.queryList(EmailContactImportDto
.builder()
.sessionId(sessionId)
.source(source)
.build());
if (!CollectionUtils.isEmpty(emailContactImportList)) {
//不为空,保存到邮件任务收件人关联表中
List<EmailTaskRecipients> saveRecipientsList = emailContactImportList
.stream()
.map(dto -> {
EmailTaskRecipients recipient = new EmailTaskRecipients();
BeanUtils.copyProperties(dto,recipient);
recipient.setTaskBizId(taskBizId);
recipient.setStatus(status);
return recipient;
}).collect(Collectors.toList());
//保存到邮件任务收件人关联表中
iEmailTaskRecipientsService.saveOrUpdateBatch(saveRecipientsList);
}
return Result.success();
}
}
......@@ -46,4 +46,21 @@ public class ApiSendEmailRequest {
* 收件人列表信息
*/
private List<ApiEmailTaskRecipientsDto> recipientsDtoList;
//===========以下是附加传入字段=============
/**
* 变量分组唯一业务ID
*/
private String variableGroupBizId;
/**
* 导入临时表的当前会话id(前端使用,用于查询。存于前端缓存)(冗余字段,选择联系人和导入联系人excel都有值)
*/
private String sessionId;
/**
* 邮件内容的填充的变量字段(数组,英文字段名)
*/
private List<String> fillVariableList;
}
......@@ -26,6 +26,11 @@ public class EmailContactImportDto {
*/
private String receiveEmail;
/**
* 导入数据的来源 0-选择联系人导入 1-excel导入联系人
*/
private Integer source;
@Builder.Default
private Boolean isExcludeMy = false;
}
......@@ -67,6 +67,19 @@ public class EmailContactImport implements Serializable {
private String bccEmail;
/**
* 导入数据的来源 0-选择联系人导入 1-excel导入联系人
*/
@TableField("source")
private Integer source;
/**
* 变量和收件人数据json串(导入变量excel时插入)
* [{cn_key: 中文变量字段名,en_key: 英文变量字段名,content: 占位符内容}]
*/
@TableField("variables")
private String variables;
/**
* 通用备注
*/
@TableField("remark")
......
......@@ -97,6 +97,24 @@ public class EmailTask implements Serializable {
private String attachmentPath;
/**
* 变量分组唯一业务ID
*/
@TableField("variable_group_biz_id")
private String variableGroupBizId;
/**
* 邮件内容的填充的变量字段(数组分号分隔,英文字段名)
*/
@TableField("fill_variable")
private String fillVariable;
/**
* 导入临时表的当前会话id(前端使用,用于查询。存于前端缓存)(冗余字段,选择联系人和导入联系人excel都有值)
*/
@TableField("session_id")
private String sessionId;
/**
* 通用备注
*/
@TableField("remark")
......
......@@ -79,6 +79,19 @@ public class EmailTaskRecipients implements Serializable {
private String errorMsg;
/**
* 数据的来源 0-选择联系人导入 1-excel导入联系人
*/
@TableField("source")
private Integer source;
/**
* 变量和收件人数据json串(导入变量excel时插入)
* [{cn_key: 中文变量字段名,en_key: 英文变量字段名,content: 占位符内容}]
*/
@TableField("variables")
private String variables;
/**
* 通用备注
*/
@TableField("remark")
......
......@@ -15,6 +15,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
/**
* <p>
......@@ -54,6 +55,7 @@ public class EmailContactImportServiceImpl extends ServiceImpl<EmailContactImpor
.eq(StringUtils.isNotBlank(dto.getImportBizId()) && !dto.getIsExcludeMy(),EmailContactImport::getImportBizId,dto.getImportBizId())
.eq(StringUtils.isNotBlank(dto.getSessionId()),EmailContactImport::getSessionId,dto.getSessionId())
.eq(StringUtils.isNotBlank(dto.getReceiveEmail()),EmailContactImport::getReceiveEmail,dto.getReceiveEmail())
.eq(!Objects.isNull(dto.getSource()),EmailContactImport::getSource,dto.getSource())
.ne(dto.getIsExcludeMy(),EmailContactImport::getImportBizId,dto.getImportBizId())
);
return list;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment