Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
metersphere
提交
fe019bab
M
metersphere
项目概览
MeterSphere
/
metersphere
上一次同步 3 年多
通知
25
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
metersphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fe019bab
编写于
9月 25, 2020
作者:
C
Captain.B
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: 发送邮件代码重构
上级
c4f1e232
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
42 addition
and
71 deletion
+42
-71
backend/src/main/java/io/metersphere/api/jmeter/APIBackendListenerClient.java
...a/io/metersphere/api/jmeter/APIBackendListenerClient.java
+5
-11
backend/src/main/java/io/metersphere/base/domain/Notice.java
backend/src/main/java/io/metersphere/base/domain/Notice.java
+2
-5
backend/src/main/java/io/metersphere/notice/controller/NoticeController.java
...va/io/metersphere/notice/controller/NoticeController.java
+2
-3
backend/src/main/java/io/metersphere/notice/domain/NoticeDTO.java
...src/main/java/io/metersphere/notice/domain/NoticeDTO.java
+9
-0
backend/src/main/java/io/metersphere/notice/service/MailService.java
.../main/java/io/metersphere/notice/service/MailService.java
+9
-23
backend/src/main/java/io/metersphere/notice/service/NoticeService.java
...ain/java/io/metersphere/notice/service/NoticeService.java
+15
-29
未找到文件。
backend/src/main/java/io/metersphere/api/jmeter/APIBackendListenerClient.java
浏览文件 @
fe019bab
...
...
@@ -3,11 +3,11 @@ package io.metersphere.api.jmeter;
import
io.metersphere.api.service.APIReportService
;
import
io.metersphere.api.service.APITestService
;
import
io.metersphere.base.domain.ApiTestReport
;
import
io.metersphere.base.domain.Notice
;
import
io.metersphere.commons.constants.APITestStatus
;
import
io.metersphere.commons.constants.ApiRunMode
;
import
io.metersphere.commons.utils.CommonBeanFactory
;
import
io.metersphere.commons.utils.LogUtil
;
import
io.metersphere.notice.domain.NoticeDTO
;
import
io.metersphere.notice.service.MailService
;
import
io.metersphere.notice.service.NoticeService
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -16,7 +16,6 @@ import org.apache.jmeter.samplers.SampleResult;
import
org.apache.jmeter.visualizers.backend.AbstractBackendListenerClient
;
import
org.apache.jmeter.visualizers.backend.BackendListenerContext
;
import
javax.annotation.Resource
;
import
java.io.Serializable
;
import
java.util.*
;
...
...
@@ -120,17 +119,12 @@ public class APIBackendListenerClient extends AbstractBackendListenerClient impl
queue
.
clear
();
super
.
teardownTest
(
context
);
NoticeService
noticeService
=
CommonBeanFactory
.
getBean
(
NoticeService
.
class
);
List
<
Notice
>
notice
=
null
;
try
{
notice
=
noticeService
.
queryNotice
(
testResult
.
getTestId
());
List
<
NoticeDTO
>
noticeDTOS
=
noticeService
.
queryNotice
(
testResult
.
getTestId
());
MailService
mailService
=
CommonBeanFactory
.
getBean
(
MailService
.
class
);
mailService
.
sendApiTestNotice
(
report
.
getId
(),
noticeDTOS
,
report
.
getStatus
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
MailService
mailService
=
CommonBeanFactory
.
getBean
(
MailService
.
class
);
try
{
mailService
.
sendHtml
(
report
.
getId
(),
notice
,
report
.
getStatus
(),
"api"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
LogUtil
.
error
(
e
);
}
}
...
...
backend/src/main/java/io/metersphere/base/domain/Notice.java
浏览文件 @
fe019bab
package
io.metersphere.base.domain
;
import
java.io.Serializable
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
Notice
implements
Serializable
{
private
String
event
;
...
...
@@ -15,9 +16,5 @@ public class Notice implements Serializable {
private
String
enable
;
private
String
[]
names
;
private
String
[]
emails
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
backend/src/main/java/io/metersphere/notice/controller/NoticeController.java
浏览文件 @
fe019bab
package
io.metersphere.notice.controller
;
import
io.metersphere.base.domain.Notice
;
import
io.metersphere.notice.controller.request.NoticeRequest
;
import
io.metersphere.notice.
service.MailService
;
import
io.metersphere.notice.
domain.NoticeDTO
;
import
io.metersphere.notice.service.NoticeService
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -21,7 +20,7 @@ public class NoticeController {
}
@GetMapping
(
"/query/{testId}"
)
public
List
<
Notice
>
queryNotice
(
@PathVariable
String
testId
)
{
public
List
<
Notice
DTO
>
queryNotice
(
@PathVariable
String
testId
)
{
return
noticeService
.
queryNotice
(
testId
);
}
...
...
backend/src/main/java/io/metersphere/notice/domain/NoticeDTO.java
0 → 100644
浏览文件 @
fe019bab
package
io.metersphere.notice.domain
;
import
io.metersphere.base.domain.Notice
;
import
lombok.Data
;
@Data
public
class
NoticeDTO
extends
Notice
{
private
String
[]
names
;
}
backend/src/main/java/io/metersphere/notice/service/MailService.java
浏览文件 @
fe019bab
package
io.metersphere.notice.service
;
import
io.metersphere.api.dto.APIReportResult
;
import
io.metersphere.base.domain.Notice
;
import
io.metersphere.base.domain.SystemParameter
;
import
io.metersphere.base.domain.TestCaseWithBLOBs
;
import
io.metersphere.commons.constants.ParamConstants
;
import
io.metersphere.commons.utils.EncryptUtils
;
import
io.metersphere.commons.utils.LogUtil
;
import
io.metersphere.dto.LoadTestDTO
;
import
io.metersphere.i18n.Translator
;
import
io.metersphere.notice.domain.NoticeDTO
;
import
io.metersphere.service.SystemParameterService
;
import
io.metersphere.service.UserService
;
import
io.metersphere.track.request.testreview.SaveCommentRequest
;
...
...
@@ -17,7 +16,6 @@ import org.apache.commons.collections4.MapUtils;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.lang3.RegExUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.mail.MailException
;
import
org.springframework.mail.javamail.JavaMailSenderImpl
;
import
org.springframework.mail.javamail.MimeMessageHelper
;
import
org.springframework.stereotype.Service
;
...
...
@@ -38,27 +36,19 @@ public class MailService {
@Resource
private
SystemParameterService
systemParameterService
;
public
void
sendHtml
(
String
id
,
List
<
Notice
>
notice
,
String
status
,
String
type
)
{
JavaMailSenderImpl
javaMailSender
=
getMailSender
();
MimeMessage
mimeMessage
=
javaMailSender
.
createMimeMessage
();
String
testName
=
""
;
if
(
type
.
equals
(
"api"
))
{
APIReportResult
reportResult
=
apiAndPerformanceHelper
.
getApi
(
id
);
testName
=
reportResult
.
getTestName
();
}
else
if
(
type
.
equals
(
"performance"
))
{
LoadTestDTO
performanceResult
=
apiAndPerformanceHelper
.
getPerformance
(
id
);
testName
=
performanceResult
.
getName
();
status
=
performanceResult
.
getStatus
();
}
public
void
sendApiTestNotice
(
String
id
,
List
<
NoticeDTO
>
notice
,
String
status
)
{
APIReportResult
reportResult
=
apiAndPerformanceHelper
.
getApi
(
id
);
String
testName
=
reportResult
.
getTestName
();
Map
<
String
,
String
>
context
=
new
HashMap
<>();
context
.
put
(
"title"
,
type
+
Translator
.
get
(
"timing_task_result_notification"
));
context
.
put
(
"title"
,
"API"
+
Translator
.
get
(
"timing_task_result_notification"
));
context
.
put
(
"testName"
,
testName
);
try
{
String
failTemplate
=
IOUtils
.
toString
(
this
.
getClass
().
getResource
(
"/mail/fail.html"
),
StandardCharsets
.
UTF_8
);
String
successTemplate
=
IOUtils
.
toString
(
this
.
getClass
().
getResource
(
"/mail/success.html"
),
StandardCharsets
.
UTF_8
);
JavaMailSenderImpl
javaMailSender
=
getMailSender
();
MimeMessage
mimeMessage
=
javaMailSender
.
createMimeMessage
();
MimeMessageHelper
helper
=
new
MimeMessageHelper
(
mimeMessage
,
true
);
helper
.
setFrom
(
javaMailSender
.
getUsername
());
helper
.
setSubject
(
Translator
.
get
(
"timing_task_result_notification"
));
...
...
@@ -66,7 +56,7 @@ public class MailService {
List
<
String
>
successEmailList
=
new
ArrayList
<>();
List
<
String
>
failEmailList
=
new
ArrayList
<>();
if
(
notice
.
size
()
>
0
)
{
for
(
Notice
n
:
notice
)
{
for
(
Notice
DTO
n
:
notice
)
{
if
(
n
.
getEnable
().
equals
(
"true"
)
&&
n
.
getEvent
().
equals
(
"执行成功"
))
{
successEmailList
=
userService
.
queryEmail
(
n
.
getNames
());
}
...
...
@@ -86,12 +76,8 @@ public class MailService {
helper
.
setText
(
getContent
(
failTemplate
,
context
),
true
);
}
helper
.
setTo
(
users
);
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
e
);
}
try
{
javaMailSender
.
send
(
mimeMessage
);
}
catch
(
Mail
Exception
e
)
{
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
e
);
}
}
...
...
backend/src/main/java/io/metersphere/notice/service/NoticeService.java
浏览文件 @
fe019bab
...
...
@@ -4,6 +4,7 @@ import io.metersphere.base.domain.Notice;
import
io.metersphere.base.domain.NoticeExample
;
import
io.metersphere.base.mapper.NoticeMapper
;
import
io.metersphere.notice.controller.request.NoticeRequest
;
import
io.metersphere.notice.domain.NoticeDTO
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
...
...
@@ -16,49 +17,34 @@ public class NoticeService {
private
NoticeMapper
noticeMapper
;
public
void
saveNotice
(
NoticeRequest
noticeRequest
)
{
Notice
notice
=
new
Notice
();
NoticeExample
example
=
new
NoticeExample
();
example
.
createCriteria
().
andTestIdEqualTo
(
noticeRequest
.
getTestId
());
List
<
Notice
>
notices
=
noticeMapper
.
selectByExample
(
example
);
if
(
notices
.
size
()
>
0
)
{
noticeMapper
.
deleteByExample
(
example
);
}
saveNotice
(
noticeRequest
,
notice
);
}
private
void
saveNotice
(
NoticeRequest
noticeRequest
,
Notice
notice
)
{
noticeRequest
.
getNotices
().
forEach
(
n
->
{
if
(
n
.
getNames
().
length
>
0
)
{
for
(
String
x
:
n
.
getNames
())
{
notice
.
setEvent
(
n
.
getEvent
());
notice
.
setEmail
(
n
.
getEmail
());
notice
.
setEnable
(
n
.
getEnable
());
notice
.
setTestId
(
noticeRequest
.
getTestId
());
notice
.
setName
(
x
);
noticeMapper
.
insert
(
notice
);
}
}
else
{
notice
.
setEvent
(
n
.
getEvent
());
notice
.
setEmail
(
n
.
getEmail
());
notice
.
setEnable
(
n
.
getEnable
());
notice
.
setTestId
(
noticeRequest
.
getTestId
());
notice
.
setName
(
""
);
noticeMapper
.
insert
(
notice
);
}
Notice
notice
=
new
Notice
();
notice
.
setEvent
(
n
.
getEvent
());
notice
.
setEmail
(
n
.
getEmail
());
notice
.
setEnable
(
n
.
getEnable
());
notice
.
setTestId
(
noticeRequest
.
getTestId
());
notice
.
setName
(
""
);
noticeMapper
.
insert
(
notice
);
});
}
public
List
<
Notice
>
queryNotice
(
String
id
)
{
public
List
<
Notice
DTO
>
queryNotice
(
String
id
)
{
NoticeExample
example
=
new
NoticeExample
();
example
.
createCriteria
().
andTestIdEqualTo
(
id
);
List
<
Notice
>
notices
=
noticeMapper
.
selectByExample
(
example
);
List
<
Notice
>
notice
=
new
ArrayList
<>();
List
<
Notice
DTO
>
noticeDTOS
=
new
ArrayList
<>();
List
<
String
>
success
=
new
ArrayList
<>();
List
<
String
>
fail
=
new
ArrayList
<>();
String
[]
successArray
;
String
[]
failArray
;
Notice
notice1
=
new
Notice
();
Notice
notice2
=
new
Notice
();
Notice
DTO
notice1
=
new
NoticeDTO
();
Notice
DTO
notice2
=
new
NoticeDTO
();
for
(
Notice
n
:
notices
)
{
if
(
n
.
getEvent
().
equals
(
"执行成功"
))
{
success
.
add
(
n
.
getName
());
...
...
@@ -79,9 +65,9 @@ public class NoticeService {
failArray
=
fail
.
toArray
(
new
String
[
0
]);
notice1
.
setNames
(
successArray
);
notice2
.
setNames
(
failArray
);
notice
.
add
(
notice1
);
notice
.
add
(
notice2
);
return
notice
;
notice
DTOS
.
add
(
notice1
);
notice
DTOS
.
add
(
notice2
);
return
notice
DTOS
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录