Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
byit-myth-job
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liyuan
byit-myth-job
Commits
deb0e4e8
Commit
deb0e4e8
authored
Dec 30, 2019
by
huangfusuper
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【邮件发送集成】集成发送邮件,测试完成
parent
897264e8
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
342 additions
and
26 deletions
+342
-26
EmailController.java
...in/src/main/java/com/byit/controller/EmailController.java
+38
-0
application.yml
byit-myth-admin/src/main/resources/application.yml
+9
-4
logback-spring.xml
byit-myth-admin/src/main/resources/logback-spring.xml
+3
-3
pom.xml
byit-myth-core/myth-admin-core/pom.xml
+0
-11
AdminEnums.java
...h-admin-core/src/main/java/com/byit/enums/AdminEnums.java
+2
-1
EmailAlarmMapper.java
...-core/src/main/java/com/byit/mapper/EmailAlarmMapper.java
+31
-4
EmailAlarmVo.java
...in-core/src/main/java/com/byit/model/vo/EmailAlarmVo.java
+108
-0
EmailAlarmService.java
...ore/src/main/java/com/byit/service/EmailAlarmService.java
+45
-0
EmailAlarmServiceImpl.java
...ain/java/com/byit/service/impl/EmailAlarmServiceImpl.java
+103
-0
EmailAlarmMapper.xml
...admin-core/src/main/resources/mapper/EmailAlarmMapper.xml
+3
-3
No files found.
byit-myth-admin/src/main/java/com/byit/controller/EmailController.java
0 → 100644
View file @
deb0e4e8
package
com
.
byit
.
controller
;
import
com.byit.exception.DataValidationException
;
import
com.byit.model.vo.EmailAlarmVo
;
import
com.byit.service.EmailAlarmService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.UUID
;
/**
* @program: byit-myth-job->EmailController
* @description: TODO
* @author: huangfu
* @date: 2019/12/30 11:46
**/
@RestController
public
class
EmailController
{
private
final
EmailAlarmService
emailAlarmService
;
@Autowired
public
EmailController
(
EmailAlarmService
emailAlarmService
)
{
this
.
emailAlarmService
=
emailAlarmService
;
}
@RequestMapping
(
"send"
)
public
String
send
(){
EmailAlarmVo
emailAlarmVo
=
new
EmailAlarmVo
();
emailAlarmVo
.
setFlowId
(
1
);
emailAlarmVo
.
setFlowName
(
"测试工作流"
);
emailAlarmVo
.
setRunId
(
UUID
.
randomUUID
(
).
toString
());
emailAlarmVo
.
setVersionName
(
"V1"
);
emailAlarmVo
.
setAlarmEmail
(
"huangfukexing@byitgroup.com"
);
emailAlarmService
.
sendEmail
(
emailAlarmVo
);
return
"success"
;
}
}
byit-myth-admin/src/main/resources/application.yml
View file @
deb0e4e8
...
@@ -4,10 +4,15 @@ spring:
...
@@ -4,10 +4,15 @@ spring:
url
:
jdbc:mysql://10.0.10.118:3306/myth-job?Unicode=true&characterEncoding=UTF-8&useSSL=true
url
:
jdbc:mysql://10.0.10.118:3306/myth-job?Unicode=true&characterEncoding=UTF-8&useSSL=true
username
:
root
username
:
root
password
:
123456
password
:
123456
# jpa:
# hibernate:
mail
:
# ddl-auto: none
host
:
smtp.163.com
#我自己的SMTP服务器地址
# show-sql: false
username
:
huangfusuper@163.com
#登录用户名
password
:
huangfu0110
#授权密码
default-encoding
:
UTF-8
protocol
:
smtp
#协议
properties
:
from
:
huangfusuper@163.com
#真实邮箱
mybatis
:
mybatis
:
mapper-locations
:
/mapper/*.xml
mapper-locations
:
/mapper/*.xml
...
...
byit-myth-admin/src/main/resources/logback-spring.xml
View file @
deb0e4e8
...
@@ -2,9 +2,6 @@
...
@@ -2,9 +2,6 @@
<configuration>
<configuration>
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>-->
<encoder>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</encoder>
</encoder>
...
@@ -64,6 +61,9 @@
...
@@ -64,6 +61,9 @@
<logger
name=
"com.byit.thread"
level=
"debug"
additivity=
"false"
>
<logger
name=
"com.byit.thread"
level=
"debug"
additivity=
"false"
>
<appender-ref
ref=
"console"
/>
<appender-ref
ref=
"console"
/>
</logger>
</logger>
<logger
name=
"com.byit.selector"
level=
"debug"
additivity=
"false"
>
<appender-ref
ref=
"console"
/>
</logger>
<logger
name=
"org.springframework.web"
level=
"debug"
/>
<logger
name=
"org.springframework.web"
level=
"debug"
/>
...
...
byit-myth-core/myth-admin-core/pom.xml
View file @
deb0e4e8
...
@@ -45,17 +45,6 @@
...
@@ -45,17 +45,6 @@
<artifactId>
mysql-connector-java
</artifactId>
<artifactId>
mysql-connector-java
</artifactId>
</dependency>
</dependency>
<!--自动装载配置-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-autoconfigure
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-configuration-processor
</artifactId>
</dependency>
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-jdbc
</artifactId>
<artifactId>
spring-boot-starter-jdbc
</artifactId>
...
...
byit-myth-core/myth-admin-core/src/main/java/com/byit/enums/AdminEnums.java
View file @
deb0e4e8
...
@@ -11,7 +11,8 @@ import lombok.AllArgsConstructor;
...
@@ -11,7 +11,8 @@ import lombok.AllArgsConstructor;
**/
**/
@AllArgsConstructor
@AllArgsConstructor
public
enum
AdminEnums
implements
IEnum
{
public
enum
AdminEnums
implements
IEnum
{
TEST
(
"2132131"
,
"滚犊子"
)
SEND_EMAIL_FAILURE
(
"100500"
,
"邮件发送失败"
),
SEND_EMAIL_SUCCESS
(
"100200"
,
"邮件发送成功"
)
;
;
String
code
;
String
code
;
String
msg
;
String
msg
;
...
...
byit-myth-core/myth-admin-core/src/main/java/com/byit/mapper/EmailAlarmMapper.java
View file @
deb0e4e8
package
com
.
byit
.
mapper
;
package
com
.
byit
.
mapper
;
import
com.byit.model.EmailAlarm
;
import
com.byit.model.EmailAlarm
;
import
com.byit.model.vo.EmailAlarmVo
;
import
org.springframework.stereotype.Repository
;
/**
* @author huangfu
*/
@Repository
public
interface
EmailAlarmMapper
{
public
interface
EmailAlarmMapper
{
int
deleteById
(
Integer
id
);
/**
* 根据id查询邮件
* @param id
* @return
*/
EmailAlarm
findEmailAlarmById
(
Integer
id
);
int
insertSelective
(
EmailAlarm
record
);
/**
* 删除一个邮件
* @param id
* @return
*/
int
deleteById
(
Integer
id
);
EmailAlarm
getById
(
Integer
id
);
/**
* 保存邮件
* @param record
* @return
*/
int
saveEmailAlarm
(
EmailAlarm
record
);
int
updateByIdSelective
(
EmailAlarm
record
);
/**
* 修改邮件发送情况
* @param record
* @return
*/
int
updateEmailAlarm
(
EmailAlarm
record
);
}
}
\ No newline at end of file
byit-myth-core/myth-admin-core/src/main/java/com/byit/model/vo/EmailAlarmVo.java
0 → 100644
View file @
deb0e4e8
package
com
.
byit
.
model
.
vo
;
import
com.byit.annotation.annotationselector.EmailValidation
;
import
com.byit.annotation.annotationselector.NotBank
;
import
com.byit.annotation.annotationselector.NotNull
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.File
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 邮箱告警
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
EmailAlarmVo
implements
Serializable
{
/**
* 主键
*/
@ApiModelProperty
(
"主键"
)
private
Integer
id
;
/**
* 工作流Id
*/
@ApiModelProperty
(
"工作流Id"
)
@NotNull
(
errorMessage
=
"工作流id不能为空"
)
private
Integer
flowId
;
/**
* 工作流名称
*/
@ApiModelProperty
(
"工作流名称"
)
@NotBank
(
errorMessage
=
"工作流名称不能为空"
)
private
String
flowName
;
/**
* 运行标识
*/
@ApiModelProperty
(
"运行标识"
)
@NotBank
(
errorMessage
=
"运行标识不能为空"
)
private
String
runId
;
/**
* 版本名称
*/
@ApiModelProperty
(
"版本名称"
)
@NotBank
(
errorMessage
=
"版本名称不能为空"
)
private
String
versionName
;
/**
* 告警邮箱
*/
@ApiModelProperty
(
"告警邮箱"
)
@NotBank
(
errorMessage
=
"告警邮箱不能为空,多个联系人可用,分割"
)
@EmailValidation
private
String
alarmEmail
;
/**
* 当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)
*/
@ApiModelProperty
(
"当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)"
)
private
String
alarmAction
;
/**
* 告警结果(0, 未告警 1,告警成功 2,告警失败)
*/
@ApiModelProperty
(
"告警结果(0, 未告警 1,告警成功 2,告警失败)"
)
private
String
alarmResult
;
/**
* 发送时间
*/
@ApiModelProperty
(
"发送时间"
)
private
Date
sendTime
;
/**
* 告警内容
*/
@ApiModelProperty
(
"告警内容"
)
private
String
alarmContent
;
@ApiModelProperty
(
"告警主题"
)
private
String
alarmTitle
;
@ApiModelProperty
(
"附件"
)
@JsonIgnore
private
List
<
File
>
fileList
;
/**
*/
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
byit-myth-core/myth-admin-core/src/main/java/com/byit/service/EmailAlarmService.java
0 → 100644
View file @
deb0e4e8
package
com
.
byit
.
service
;
import
com.byit.model.EmailAlarm
;
import
com.byit.model.vo.EmailAlarmVo
;
/**
* @program: byit-myth-job->EmailAlarmService
* @description: 邮件发送的业务接口
* @author: huangfu
* @date: 2019/12/30 10:59
**/
public
interface
EmailAlarmService
{
/**
* 根据id查询邮件
* @param id
* @return
*/
EmailAlarm
findEmailAlarmById
(
Integer
id
);
/**
* 删除一个邮件
* @param id
* @return
*/
int
deleteById
(
Integer
id
);
/**
* 保存邮件
* @param record
* @return
*/
int
saveEmailAlarm
(
EmailAlarm
record
);
/**
* 发送邮件
* @param record
*/
void
sendEmail
(
EmailAlarmVo
record
);
/**
* 修改邮件发送情况
* @param record
* @return
*/
int
updateEmailAlarm
(
EmailAlarm
record
);
}
byit-myth-core/myth-admin-core/src/main/java/com/byit/service/impl/EmailAlarmServiceImpl.java
0 → 100644
View file @
deb0e4e8
package
com
.
byit
.
service
.
impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.byit.annotation.DataValidation
;
import
com.byit.annotation.ParamValidation
;
import
com.byit.enums.AdminEnums
;
import
com.byit.job.exceptions.BusinessException
;
import
com.byit.mapper.EmailAlarmMapper
;
import
com.byit.model.EmailAlarm
;
import
com.byit.model.vo.EmailAlarmVo
;
import
com.byit.service.EmailAlarmService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.mail.javamail.JavaMailSenderImpl
;
import
org.springframework.mail.javamail.MimeMessageHelper
;
import
org.springframework.stereotype.Service
;
import
javax.mail.MessagingException
;
import
java.util.Date
;
/**
* @program: byit-myth-job->EmailAlarmServiceImpl
* @description: 邮件发送的业务接口
* @author: huangfu
* @date: 2019/12/30 11:00
**/
@Service
@Slf4j
public
class
EmailAlarmServiceImpl
implements
EmailAlarmService
{
private
final
EmailAlarmMapper
emailAlarmMapper
;
private
final
JavaMailSenderImpl
javaMailSender
;
@Autowired
public
EmailAlarmServiceImpl
(
EmailAlarmMapper
emailAlarmMapper
,
JavaMailSenderImpl
javaMailSender
)
{
this
.
emailAlarmMapper
=
emailAlarmMapper
;
this
.
javaMailSender
=
javaMailSender
;
}
@Override
public
EmailAlarm
findEmailAlarmById
(
Integer
id
)
{
return
emailAlarmMapper
.
findEmailAlarmById
(
id
);
}
@Override
public
int
deleteById
(
Integer
id
)
{
return
emailAlarmMapper
.
deleteById
(
id
);
}
@Override
public
int
saveEmailAlarm
(
EmailAlarm
record
)
{
return
emailAlarmMapper
.
saveEmailAlarm
(
record
);
}
@Override
@DataValidation
public
void
sendEmail
(
@ParamValidation
EmailAlarmVo
record
)
{
record
.
setSendTime
(
new
Date
());
record
.
setAlarmTitle
(
"测试邮件"
);
record
.
setAlarmContent
(
"<div style='color:#F00;font-size:1000px'>测试邮件</div>"
);
try
{
//发送一个支持复杂类型的邮件
MimeMessageHelper
messageHelper
=
new
MimeMessageHelper
(
javaMailSender
.
createMimeMessage
(),
true
);
//邮件发信人
messageHelper
.
setFrom
(
javaMailSender
.
getJavaMailProperties
().
getProperty
(
"from"
));
//邮件收信人
messageHelper
.
setTo
(
record
.
getAlarmEmail
().
split
(
","
));
//邮件主题
messageHelper
.
setSubject
(
record
.
getAlarmTitle
());
//邮件内容
messageHelper
.
setText
(
record
.
getAlarmContent
(),
true
);
if
(
CollectionUtil
.
isNotEmpty
(
record
.
getFileList
())){
record
.
getFileList
().
forEach
(
file
->{
try
{
messageHelper
.
addAttachment
(
file
.
getName
(),
file
);
}
catch
(
MessagingException
e
)
{
record
.
setAlarmResult
(
"2"
);
log
.
error
(
"-----------添加附件失败【{}】--------------"
,
e
.
getMessage
());
}
});
}
//正式发送邮件
javaMailSender
.
send
(
messageHelper
.
getMimeMessage
());
record
.
setAlarmResult
(
"1"
);
}
catch
(
Exception
e
){
record
.
setAlarmResult
(
"2"
);
log
.
error
(
"-----------邮件发送失败【{}】--------------"
,
e
.
getMessage
());
throw
new
BusinessException
(
AdminEnums
.
SEND_EMAIL_FAILURE
);
}
EmailAlarm
emailAlarm
=
new
EmailAlarm
(
);
BeanUtils
.
copyProperties
(
record
,
emailAlarm
);
//保存邮件
saveEmailAlarm
(
emailAlarm
);
}
@Override
public
int
updateEmailAlarm
(
EmailAlarm
record
)
{
return
emailAlarmMapper
.
updateEmailAlarm
(
record
);
}
}
byit-myth-core/myth-admin-core/src/main/resources/mapper/EmailAlarmMapper.xml
View file @
deb0e4e8
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
<!-- generated @mbg.generated date: 2019-12-25 -->
<!-- generated @mbg.generated date: 2019-12-25 -->
alarm_content
alarm_content
</sql>
</sql>
<select
id=
"
get
ById"
parameterType=
"java.lang.Integer"
resultMap=
"ResultMapWithBLOBs"
>
<select
id=
"
findEmailAlarm
ById"
parameterType=
"java.lang.Integer"
resultMap=
"ResultMapWithBLOBs"
>
<!-- generated @mbg.generated date: 2019-12-25 -->
<!-- generated @mbg.generated date: 2019-12-25 -->
select
select
<include
refid=
"Base_Column_List"
/>
<include
refid=
"Base_Column_List"
/>
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
delete from email_alarm
delete from email_alarm
where id = #{id,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</delete>
</delete>
<insert
id=
"
insertSelective
"
parameterType=
"com.byit.model.EmailAlarm"
>
<insert
id=
"
saveEmailAlarm
"
parameterType=
"com.byit.model.EmailAlarm"
>
<!-- generated @mbg.generated date: 2019-12-25 -->
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into email_alarm
insert into email_alarm
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
...
@@ -108,7 +108,7 @@
...
@@ -108,7 +108,7 @@
</if>
</if>
</trim>
</trim>
</insert>
</insert>
<update
id=
"update
ByIdSelective
"
parameterType=
"com.byit.model.EmailAlarm"
>
<update
id=
"update
EmailAlarm
"
parameterType=
"com.byit.model.EmailAlarm"
>
<!-- generated @mbg.generated date: 2019-12-25 -->
<!-- generated @mbg.generated date: 2019-12-25 -->
update email_alarm
update email_alarm
<set>
<set>
...
...
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