Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-email
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-email
Commits
67927463
Commit
67927463
authored
Sep 25, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
测试发送邮件
parent
b82fdaca
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
97 additions
and
41 deletions
+97
-41
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailTaskRecipientsService.java
+3
-0
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailSendServiceImpl.java
+54
-29
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailTaskRecipientsServiceImpl.java
+34
-12
yd-email-feign/src/main/java/com/yd/email/feign/response/ApiSendEmailResponse.java
+6
-0
No files found.
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailTaskRecipientsService.java
View file @
67927463
...
...
@@ -14,4 +14,7 @@ public interface ApiEmailTaskRecipientsService {
Result
<
List
<
EmailTaskRecipients
>>
saveEmailTaskRecipientsBySessionId
(
String
taskBizId
,
String
status
,
String
sessionId
,
Integer
source
);
Result
<
List
<
EmailTaskRecipients
>>
queryEmailTaskRecipientsBySessionId
(
String
taskBizId
,
String
status
,
String
sessionId
,
Integer
source
);
}
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailSendServiceImpl.java
View file @
67927463
...
...
@@ -62,33 +62,7 @@ public class ApiEmailSendServiceImpl implements ApiEmailSendService {
public
Result
<
ApiSendEmailResponse
>
sendEmail
(
ApiSendEmailRequest
request
)
{
ApiSendEmailResponse
response
=
new
ApiSendEmailResponse
();
try
{
//保存邮件任务到数据库
EmailTask
mailTask
=
new
EmailTask
();
//邮件任务唯一业务ID
mailTask
.
setTaskBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_EMAIL_TASK
.
getCode
()));
//任务名称:邮件主题 + 邮件发送任务
mailTask
.
setTaskName
(
request
.
getSubject
()
+
"邮件发送任务"
);
//关联发件人唯一业务ID
mailTask
.
setSenderBizId
(
request
.
getSenderBizId
());
//发件人邮箱
mailTask
.
setSendEmail
(
request
.
getSendEmail
());
//邮件主题
mailTask
.
setSubject
(
request
.
getSubject
());
//邮件内容
mailTask
.
setContent
(
request
.
getContent
());
//发送邮件的附件路径(多个用分号分隔)
mailTask
.
setAttachmentPath
(
request
.
getAttachmentPath
());
//计划发送时间(为空表示立即发送,不为空表示定时发送)
mailTask
.
setScheduleTime
(
request
.
getScheduleTime
());
//任务状态:计划发送时间(为空表示立即发送状态为发送中,不为空表示发送状态为定时发送)
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
());
EmailTask
mailTask
=
buildEmailTask
(
request
);
iEmailTaskService
.
saveOrUpdate
(
mailTask
);
//邮件任务唯一业务ID
...
...
@@ -99,7 +73,7 @@ public class ApiEmailSendServiceImpl implements ApiEmailSendService {
// 保存收件人信息
//根据当前当前会话id和数据来源查询导入数据,保存到邮件任务收件人关联表中,供后续使用
Result
<
List
<
EmailTaskRecipients
>>
result
=
apiEmailTaskRecipientsService
.
saveEmailTaskRecipientsBySessionId
(
taskBizId
,
taskStatus
,
request
.
getSessionId
(),
source
);
.
saveEmailTaskRecipientsBySessionId
(
taskBizId
,
mailTask
.
getStatus
()
,
request
.
getSessionId
(),
source
);
List
<
EmailTaskRecipients
>
recipientsList
=
result
.
getData
();
//计划发送时间(为空表示立即发送,不为空表示定时发送)
...
...
@@ -218,8 +192,59 @@ public class ApiEmailSendServiceImpl implements ApiEmailSendService {
*/
@Override
public
Result
<
ApiSendEmailResponse
>
testSendEmail
(
ApiSendEmailRequest
request
)
{
return
null
;
ApiSendEmailResponse
response
=
new
ApiSendEmailResponse
();
EmailTask
mailTask
=
buildEmailTask
(
request
);
//邮件任务唯一业务ID
String
taskBizId
=
mailTask
.
getTaskBizId
();
//变量分组唯一业务ID不为空,来源是1-excel导入联系人 为空是0-选择联系人导入
Integer
source
=
StringUtils
.
isNotBlank
(
request
.
getVariableGroupBizId
())
?
1
:
0
;
// 保存收件人信息
//根据当前当前会话id和数据来源查询导入数据
Result
<
List
<
EmailTaskRecipients
>>
result
=
apiEmailTaskRecipientsService
.
queryEmailTaskRecipientsBySessionId
(
taskBizId
,
mailTask
.
getStatus
(),
request
.
getSessionId
(),
source
);
List
<
EmailTaskRecipients
>
recipientsList
=
result
.
getData
();
//立即发送
sendImmediatelyEmail
(
mailTask
,
recipientsList
);
response
.
setScheduleTime
(
request
.
getScheduleTime
());
response
.
setTaskBizId
(
taskBizId
);
return
Result
.
success
(
response
);
}
/**
* 构造邮箱任务对象
* @param request
* @return
*/
public
EmailTask
buildEmailTask
(
ApiSendEmailRequest
request
){
//保存邮件任务到数据库
EmailTask
mailTask
=
new
EmailTask
();
//邮件任务唯一业务ID
mailTask
.
setTaskBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_EMAIL_TASK
.
getCode
()));
//任务名称:邮件主题 + 邮件发送任务
mailTask
.
setTaskName
(
request
.
getSubject
()
+
"邮件发送任务"
);
//关联发件人唯一业务ID
mailTask
.
setSenderBizId
(
request
.
getSenderBizId
());
//发件人邮箱
mailTask
.
setSendEmail
(
request
.
getSendEmail
());
//邮件主题
mailTask
.
setSubject
(
request
.
getSubject
());
//邮件内容
mailTask
.
setContent
(
request
.
getContent
());
//发送邮件的附件路径(多个用分号分隔)
mailTask
.
setAttachmentPath
(
request
.
getAttachmentPath
());
//计划发送时间(为空表示立即发送,不为空表示定时发送)
mailTask
.
setScheduleTime
(
request
.
getScheduleTime
());
//任务状态:计划发送时间(为空表示立即发送状态为发送中,不为空表示发送状态为定时发送)
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
());
return
mailTask
;
}
}
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailTaskRecipientsServiceImpl.java
View file @
67927463
...
...
@@ -82,16 +82,38 @@ public class ApiEmailTaskRecipientsServiceImpl implements ApiEmailTaskRecipients
return
Result
.
success
(
saveRecipientsList
);
}
// /**
// * 根据当前当前会话id和数据来源查询导入数据,保存到邮件任务收件人关联表中
// * @param taskBizId 邮件任务唯一业务ID
// * @param status 收件人邮件状态
// * @param sessionId 会话id
// * @param source 数据的来源 0-选择联系人导入 1-excel导入联系人
// * @return
// */
// public Result<List<EmailTaskRecipients>> queryEmailTaskRecipientsBySessionId(String taskBizId,String status,
// String sessionId,Integer source) {
//
// }
/**
* 根据当前当前会话id和数据来源查询导入数据
* @param taskBizId 邮件任务唯一业务ID
* @param status 收件人邮件状态
* @param sessionId 会话id
* @param source 数据的来源 0-选择联系人导入 1-excel导入联系人
* @return
*/
@Override
public
Result
<
List
<
EmailTaskRecipients
>>
queryEmailTaskRecipientsBySessionId
(
String
taskBizId
,
String
status
,
String
sessionId
,
Integer
source
)
{
//根据当前当前会话id和数据来源查询的导入数据
List
<
EmailContactImport
>
emailContactImportList
=
iEmailContactImportService
.
queryList
(
EmailContactImportDto
.
builder
()
.
sessionId
(
sessionId
)
.
source
(
source
)
.
build
());
List
<
EmailTaskRecipients
>
saveRecipientsList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
emailContactImportList
))
{
//不为空,保存到邮件任务收件人关联表中
saveRecipientsList
=
emailContactImportList
.
stream
()
.
map
(
dto
->
{
EmailTaskRecipients
recipient
=
new
EmailTaskRecipients
();
BeanUtils
.
copyProperties
(
dto
,
recipient
);
recipient
.
setTaskBizId
(
taskBizId
);
recipient
.
setStatus
(
status
);
return
recipient
;
}).
collect
(
Collectors
.
toList
());
}
return
Result
.
success
(
saveRecipientsList
);
}
}
yd-email-feign/src/main/java/com/yd/email/feign/response/ApiSendEmailResponse.java
View file @
67927463
...
...
@@ -7,8 +7,14 @@ import java.time.LocalDateTime;
@Data
public
class
ApiSendEmailResponse
{
/**
* xx-job的id
*/
private
String
jobId
;
/**
* 任务业务id
*/
private
String
taskBizId
;
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment