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
527f11e7
Commit
527f11e7
authored
Sep 25, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
邮件发送
parent
e03bb3e5
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
145 additions
and
0 deletions
+145
-0
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailTaskRecipientsService.java
+4
-0
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailSendServiceImpl.java
+8
-0
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailTaskRecipientsServiceImpl.java
+65
-0
yd-email-feign/src/main/java/com/yd/email/feign/request/ApiSendEmailRequest.java
+17
-0
yd-email-service/src/main/java/com/yd/email/service/dto/EmailContactImportDto.java
+5
-0
yd-email-service/src/main/java/com/yd/email/service/model/EmailContactImport.java
+13
-0
yd-email-service/src/main/java/com/yd/email/service/model/EmailTask.java
+18
-0
yd-email-service/src/main/java/com/yd/email/service/model/EmailTaskRecipients.java
+13
-0
yd-email-service/src/main/java/com/yd/email/service/service/impl/EmailContactImportServiceImpl.java
+2
-0
No files found.
yd-email-api/src/main/java/com/yd/email/api/service/ApiEmailTaskRecipientsService.java
0 → 100644
View file @
527f11e7
package
com
.
yd
.
email
.
api
.
service
;
public
interface
ApiEmailTaskRecipientsService
{
}
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailSendServiceImpl.java
View file @
527f11e7
...
...
@@ -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
();
}
}
yd-email-api/src/main/java/com/yd/email/api/service/impl/ApiEmailTaskRecipientsServiceImpl.java
0 → 100644
View file @
527f11e7
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
();
}
}
yd-email-feign/src/main/java/com/yd/email/feign/request/ApiSendEmailRequest.java
View file @
527f11e7
...
...
@@ -46,4 +46,21 @@ public class ApiSendEmailRequest {
* 收件人列表信息
*/
private
List
<
ApiEmailTaskRecipientsDto
>
recipientsDtoList
;
//===========以下是附加传入字段=============
/**
* 变量分组唯一业务ID
*/
private
String
variableGroupBizId
;
/**
* 导入临时表的当前会话id(前端使用,用于查询。存于前端缓存)(冗余字段,选择联系人和导入联系人excel都有值)
*/
private
String
sessionId
;
/**
* 邮件内容的填充的变量字段(数组,英文字段名)
*/
private
List
<
String
>
fillVariableList
;
}
yd-email-service/src/main/java/com/yd/email/service/dto/EmailContactImportDto.java
View file @
527f11e7
...
...
@@ -26,6 +26,11 @@ public class EmailContactImportDto {
*/
private
String
receiveEmail
;
/**
* 导入数据的来源 0-选择联系人导入 1-excel导入联系人
*/
private
Integer
source
;
@Builder
.
Default
private
Boolean
isExcludeMy
=
false
;
}
yd-email-service/src/main/java/com/yd/email/service/model/EmailContactImport.java
View file @
527f11e7
...
...
@@ -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"
)
...
...
yd-email-service/src/main/java/com/yd/email/service/model/EmailTask.java
View file @
527f11e7
...
...
@@ -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"
)
...
...
yd-email-service/src/main/java/com/yd/email/service/model/EmailTaskRecipients.java
View file @
527f11e7
...
...
@@ -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"
)
...
...
yd-email-service/src/main/java/com/yd/email/service/service/impl/EmailContactImportServiceImpl.java
View file @
527f11e7
...
...
@@ -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
;
...
...
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