Toggle navigation
Toggle navigation
This project
Loading...
Sign in
ops
/
monitor-service
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
zhengyouwei
9 years ago
Commit
3eb3c20894801353bc5e518c5fcc4684b700e13a
1 parent
732423a3
mail
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
256 additions
and
16 deletions
monitor-service-common/pom.xml
monitor-service-common/src/main/java/com/monitor/common/util/MailUtil.java
monitor-service-model/src/main/java/com/monitor/model/domain/Mail.java
monitor-service-other/src/main/java/com/monitor/other/worksystem/service/impl/ReleaseServiceImpl.java
monitor-service-other/src/main/java/com/monitor/other/worksystem/service/impl/WorkSystemSupport.java
pom.xml
monitor-service-common/pom.xml
View file @
3eb3c20
...
...
@@ -112,7 +112,18 @@
<groupId>
commons-net
</groupId>
<artifactId>
commons-net
</artifactId>
</dependency>
<dependency>
<groupId>
javax.mail
</groupId>
<artifactId>
mail
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-email
</artifactId>
</dependency>
<dependency>
<groupId>
javax.activation
</groupId>
<artifactId>
activation
</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
...
...
monitor-service-common/src/main/java/com/monitor/common/util/MailUtil.java
0 → 100644
View file @
3eb3c20
package
com
.
monitor
.
common
.
util
;
import
com.monitor.model.domain.Mail
;
import
org.apache.commons.mail.EmailException
;
import
org.apache.commons.mail.HtmlEmail
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
/**
* Created by zhengyouwei on 2016/9/9.
*/
public
class
MailUtil
{
protected
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
MailUtil
.
class
);
private
static
final
String
MAIL_SENDER
=
"YOHO-OPERATION@yoho.cn"
;
private
static
final
String
MAIL_PWD
=
"Yoho@9646"
;
private
static
final
String
MAIL_HOST
=
"smtp.exmail.qq.com"
;
private
static
final
String
MAIL_ENCODE
=
"utf-8"
;
public
static
void
sendMail
(
Mail
mail
)
{
try
{
HtmlEmail
htmlEmail
=
new
HtmlEmail
();
htmlEmail
.
setHostName
(
MAIL_HOST
);
htmlEmail
.
setCharset
(
MAIL_ENCODE
);
htmlEmail
.
addTo
(
mail
.
getReceivers
());
if
(
mail
.
getCc
()
!=
null
&&
mail
.
getCc
().
length
>
0
){
htmlEmail
.
addCc
(
mail
.
getCc
());
}
htmlEmail
.
setFrom
(
MAIL_SENDER
);
htmlEmail
.
setAuthentication
(
MAIL_SENDER
,
MAIL_PWD
);
htmlEmail
.
setSubject
(
mail
.
getSubject
());
htmlEmail
.
setMsg
(
mail
.
getMessage
());
htmlEmail
.
send
();
}
catch
(
EmailException
e
)
{
logger
.
error
(
"send email failed"
,
e
);
}
}
public
static
void
main
(
String
[]
args
)
{
Mail
mail
=
new
Mail
();
mail
.
setSubject
(
"test"
);
mail
.
setMessage
(
" <div style=\"margin-left:20%;\">sdasdas</br>sdasdas</div>"
);
mail
.
setReceivers
(
new
String
[]{
"youwei.zheng@yoho.cn"
});
sendMail
(
mail
);
}
}
...
...
monitor-service-model/src/main/java/com/monitor/model/domain/Mail.java
0 → 100644
View file @
3eb3c20
package
com
.
monitor
.
model
.
domain
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
/**
* Created by zhengyouwei on 2016/9/9.
*/
@Data
public
class
Mail
{
private
String
[]
receivers
;
private
String
subject
;
//主题
private
String
message
;
//消息
private
String
[]
cc
;
//抄送
public
static
Builder
Builder
(
String
subject
)
{
return
new
Builder
(
subject
);
}
public
static
class
Builder
{
private
String
TEXT_DIV_START
=
"<div style=\"margin-left:10%;margin-top: 50px;font-size: large;\">"
;
private
String
SIGN_DIV_START
=
"<div style=\"margin-left:5%;font-size: large;\">"
;
private
String
DIV_END
=
"</div>"
;
Set
<
String
>
receivers
=
new
HashSet
<>();
String
subject
;
//主题
List
<
String
>
messages
=
new
ArrayList
<>();
//消息
Set
<
String
>
ccs
=
new
HashSet
<>();
public
Builder
(
String
subject
)
{
this
.
subject
=
subject
;
}
public
void
receiver
(
String
receiver
)
{
receivers
.
add
(
receiver
);
}
public
void
message
(
String
message
)
{
messages
.
add
(
message
);
}
public
void
cc
(
String
cc
)
{
ccs
.
add
(
cc
);
}
public
Mail
build
()
{
Mail
mail
=
new
Mail
();
mail
.
setMessage
(
buildMessage
());
mail
.
setSubject
(
this
.
subject
);
String
[]
receiverArray
=
new
String
[
receivers
.
size
()];
mail
.
setReceivers
(
receivers
.
toArray
(
receiverArray
));
String
[]
ccArray
=
new
String
[
ccs
.
size
()];
mail
.
setCc
(
ccs
.
toArray
(
ccArray
));
return
mail
;
}
/**
* 编辑正文
* @return
*/
private
String
buildMessage
()
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
stringBuilder
.
append
(
SIGN_DIV_START
);
stringBuilder
.
append
(
"<strong>工单系统有您的待办:</strong>"
);
stringBuilder
.
append
(
DIV_END
);
//邮件正文
stringBuilder
.
append
(
TEXT_DIV_START
);
for
(
String
str
:
messages
)
{
stringBuilder
.
append
(
str
);
stringBuilder
.
append
(
"</br>"
);
}
stringBuilder
.
append
(
DIV_END
);
//邮件签名
stringBuilder
.
append
(
"</br></br></br>"
);
stringBuilder
.
append
(
"<hr>"
);
stringBuilder
.
append
(
SIGN_DIV_START
);
stringBuilder
.
append
(
"<span style=\"font-size: xx-large;\"><strong>YOHO!运维系统</strong></span></br>"
);
stringBuilder
.
append
(
"<a href=\"http://www.yohops.com/\">www.yohops.com</a></br>"
);
stringBuilder
.
append
(
"<a href=\"http://dev.yohops.com/\">dev.yohops.com/</a>"
);
stringBuilder
.
append
(
DIV_END
);
return
stringBuilder
.
toString
();
}
}
}
...
...
monitor-service-other/src/main/java/com/monitor/other/worksystem/service/impl/ReleaseServiceImpl.java
View file @
3eb3c20
...
...
@@ -122,7 +122,7 @@ public class ReleaseServiceImpl implements ReleaseService {
//插入用户待处理工单表
PendingJob
pendingJob
=
new
PendingJob
(
WorkType
.
RELEASE_PROJECT
,
releaseWorkJob
.
getId
(),
releaseWorkJob
.
getTitle
(),
releaseWorkJob
.
getTest
(),
HandlerRole
.
TEST
,
WorkStatus
.
PUBLISH
);
workSystemSupport
.
addPending
(
pendingJob
);
workSystemSupport
.
addPending
(
pendingJob
,
true
);
return
result
;
}
...
...
@@ -151,7 +151,7 @@ public class ReleaseServiceImpl implements ReleaseService {
releaseWorkJob
.
setStatus
(
WorkStatus
.
CLOSE
);
releaseWorkJob
.
setOperator
(
handledJob
.
getHandler
());
releaseWorkJobMapper
.
updateResult
(
releaseWorkJob
);
//关闭工单
workSystemSupport
.
workend
(
releaseWorkJob
.
getId
(),
WorkStatus
.
getCstatus
(
WorkStatus
.
CLOSE
));
workSystemSupport
.
workend
(
releaseWorkJob
.
getId
(),
Work
Type
.
RELEASE_PROJECT
,
releaseWorkJob
.
getTitle
(),
Work
Status
.
getCstatus
(
WorkStatus
.
CLOSE
));
return
1
;
}
int
currentStatus
=
pendingJob
.
getCurrentStatus
();
...
...
@@ -160,29 +160,29 @@ public class ReleaseServiceImpl implements ReleaseService {
releaseWorkJob
.
setStatus
(
WorkStatus
.
PUBLISH
);
releaseWorkJobMapper
.
updateStatus
(
releaseWorkJob
);
PendingJob
newPendingJob
=
new
PendingJob
(
WorkType
.
RELEASE_PROJECT
,
releaseWorkJob
.
getId
(),
releaseWorkJob
.
getTitle
(),
releaseWorkJob
.
getTest
(),
HandlerRole
.
TEST
,
WorkStatus
.
PUBLISH
);
workSystemSupport
.
addPendingByRole
(
newPendingJob
);
workSystemSupport
.
addPendingByRole
(
newPendingJob
,
false
);
}
}
else
if
(
currentStatus
==
WorkStatus
.
PUBLISH
)
{
//发布状态
if
(
handleType
==
HandleType
.
PASS
){
//通过测试
releaseWorkJob
.
setStatus
(
WorkStatus
.
TEST_PASS
);
releaseWorkJobMapper
.
updateStatus
(
releaseWorkJob
);
PendingJob
newPendingJob
=
new
PendingJob
(
WorkType
.
RELEASE_PROJECT
,
releaseWorkJob
.
getId
(),
releaseWorkJob
.
getTitle
(),
null
,
HandlerRole
.
OPERATOR
,
WorkStatus
.
TEST_PASS
);
workSystemSupport
.
addPendingByRole
(
newPendingJob
);
workSystemSupport
.
addPendingByRole
(
newPendingJob
,
false
);
}
else
{
//未通过测试
releaseWorkJob
.
setStatus
(
WorkStatus
.
CREATED
);
//置为初始状态
releaseWorkJobMapper
.
updateStatus
(
releaseWorkJob
);
//插入用户待处理工单表
PendingJob
newPendingJob
=
new
PendingJob
(
WorkType
.
RELEASE_PROJECT
,
releaseWorkJob
.
getId
(),
releaseWorkJob
.
getTitle
(),
releaseWorkJob
.
getDevelop
(),
HandlerRole
.
DEVELOP
,
WorkStatus
.
CREATED
);
workSystemSupport
.
addPending
(
newPendingJob
);
workSystemSupport
.
addPending
(
newPendingJob
,
false
);
}
}
else
if
(
currentStatus
==
WorkStatus
.
TEST_PASS
)
{
//测试通过的工单
releaseWorkJob
.
setOperator
(
handledJob
.
getHandler
());
if
(
handleType
==
HandleType
.
PASS
){
//发布成功
releaseWorkJob
.
setStatus
(
WorkStatus
.
EXE_SUCCESS
);
workSystemSupport
.
workend
(
releaseWorkJob
.
getId
(),
WorkStatus
.
getCstatus
(
WorkStatus
.
EXE_SUCCESS
));
workSystemSupport
.
workend
(
releaseWorkJob
.
getId
(),
Work
Type
.
RELEASE_PROJECT
,
releaseWorkJob
.
getTitle
(),
Work
Status
.
getCstatus
(
WorkStatus
.
EXE_SUCCESS
));
}
else
{
//发布失败
releaseWorkJob
.
setStatus
(
WorkStatus
.
EXE_FAILE
);
workSystemSupport
.
workend
(
releaseWorkJob
.
getId
(),
WorkStatus
.
getCstatus
(
WorkStatus
.
EXE_FAILE
));
workSystemSupport
.
workend
(
releaseWorkJob
.
getId
(),
Work
Type
.
RELEASE_PROJECT
,
releaseWorkJob
.
getTitle
(),
Work
Status
.
getCstatus
(
WorkStatus
.
EXE_FAILE
));
}
releaseWorkJobMapper
.
updateResult
(
releaseWorkJob
);
//填写工单结果
}
...
...
monitor-service-other/src/main/java/com/monitor/other/worksystem/service/impl/WorkSystemSupport.java
View file @
3eb3c20
...
...
@@ -5,10 +5,13 @@ import com.model.PendingJob;
import
com.model.ReleaseWorkJob
;
import
com.model.User
;
import
com.monitor.common.service.AlarmMsgService
;
import
com.monitor.common.util.MailUtil
;
import
com.monitor.model.domain.Mail
;
import
com.monitor.mysql.mapper.HandledJobMapper
;
import
com.monitor.mysql.mapper.PendingJobMapper
;
import
com.monitor.mysql.mapper.ReleaseWorkJobMapper
;
import
com.monitor.mysql.mapper.UserMapper
;
import
com.monitor.other.worksystem.contants.HandlerRole
;
import
com.monitor.other.worksystem.contants.WorkType
;
import
com.monitor.other.worksystem.service.HandledService
;
import
org.apache.commons.lang.StringUtils
;
...
...
@@ -46,36 +49,49 @@ public class WorkSystemSupport {
*
* @param pendingJob
*/
public
void
addPending
(
PendingJob
pendingJob
)
{
public
void
addPending
(
PendingJob
pendingJob
,
boolean
sendLeader
)
{
pendingJobMapper
.
insert
(
pendingJob
);
User
user
=
userMapper
.
selectByName
(
pendingJob
.
getHandler
());
Mail
.
Builder
builder
=
buildtoDoMail
(
pendingJob
);
if
(
StringUtils
.
isNotBlank
(
user
.
getMobile
()))
{
alarmMsgService
.
sendSms
(
"work_system"
,
buildSms
(
pendingJob
),
user
.
getMobile
());
builder
.
receiver
(
user
.
getEmail
());
}
//抄送给leader
if
(
sendLeader
)
{
addLeader
(
builder
);
}
//发送邮件
MailUtil
.
sendMail
(
builder
.
build
());
}
/**
* 处理结束发短信
*
* @param workid
* @param result
*/
public
void
workend
(
String
workid
,
String
result
)
{
public
void
workend
(
String
workid
,
String
type
,
String
title
,
String
result
)
{
List
<
HandledJob
>
list
=
handledJobMapper
.
selectByworkId
(
workid
);
Set
<
String
>
mobileSet
=
new
HashSet
<
String
>();
for
(
HandledJob
handledJob
:
list
){
Mail
.
Builder
builder
=
buildResultMail
(
type
,
workid
,
title
,
result
);
for
(
HandledJob
handledJob
:
list
)
{
User
user
=
userMapper
.
selectByName
(
handledJob
.
getHandler
());
if
(
StringUtils
.
isNotBlank
(
user
.
getMobile
()))
{
mobileSet
.
add
(
user
.
getMobile
());
}
builder
.
receiver
(
user
.
getEmail
());
}
StringBuilder
mobileBuilder
=
new
StringBuilder
();
for
(
String
str
:
mobileSet
){
for
(
String
str
:
mobileSet
)
{
mobileBuilder
.
append
(
str
).
append
(
","
);
}
String
sms
=
"您处理过的工单:"
+
workid
+
" 已经处理完毕,处理结果:"
+
result
;
alarmMsgService
.
sendSms
(
"work_system"
,
sms
,
mobileBuilder
.
toString
());
String
sms
=
"您处理过的工单:"
+
workid
+
" 已经处理完毕,处理结果:"
+
result
;
alarmMsgService
.
sendSms
(
"work_system"
,
sms
,
mobileBuilder
.
toString
());
//发送邮件
addLeader
(
builder
);
MailUtil
.
sendMail
(
builder
.
build
());
}
/**
...
...
@@ -83,19 +99,27 @@ public class WorkSystemSupport {
*
* @param pendingJob
*/
public
void
addPendingByRole
(
PendingJob
pendingJob
)
{
public
void
addPendingByRole
(
PendingJob
pendingJob
,
boolean
sendLeader
)
{
String
sms
=
buildSms
(
pendingJob
);
String
role
=
pendingJob
.
getHandlerRole
();
List
<
User
>
list
=
userMapper
.
selectUsersByRole
(
role
);
StringBuilder
mobileBuilder
=
new
StringBuilder
();
Mail
.
Builder
builder
=
buildtoDoMail
(
pendingJob
);
for
(
User
user
:
list
)
{
pendingJob
.
setHandler
(
user
.
getName
());
pendingJobMapper
.
insert
(
pendingJob
);
if
(
StringUtils
.
isNotBlank
(
user
.
getMobile
()))
{
mobileBuilder
.
append
(
user
.
getMobile
()).
append
(
","
);
builder
.
receiver
(
user
.
getEmail
());
}
}
alarmMsgService
.
sendSms
(
"work_system"
,
sms
,
mobileBuilder
.
toString
().
substring
(
0
,
mobileBuilder
.
toString
().
toString
().
length
()
-
1
));
//抄送给leader
if
(
sendLeader
)
{
addLeader
(
builder
);
}
//发送邮件
MailUtil
.
sendMail
(
builder
.
build
());
}
/**
...
...
@@ -118,5 +142,43 @@ public class WorkSystemSupport {
return
stringBuilder
.
toString
();
}
/**
* 组建待办邮件
*/
public
Mail
.
Builder
buildtoDoMail
(
PendingJob
pendingJob
)
{
Mail
.
Builder
builder
=
Mail
.
Builder
(
pendingJob
.
getType
()
+
"_工单待办"
);
builder
.
message
(
"<span style=\"display: inline-block;width: 100px\">工单ID:</span>"
+
pendingJob
.
getWorkId
());
builder
.
message
(
"<span style=\"display: inline-block;width: 100px\">工单类型:</span>"
+
pendingJob
.
getType
());
builder
.
message
(
"<span style=\"display: inline-block;width: 100px\">工单标题:</span>"
+
pendingJob
.
getTitle
());
return
builder
;
}
/**
* 组建结果邮件
*/
public
Mail
.
Builder
buildResultMail
(
String
type
,
String
workid
,
String
title
,
String
reulut
)
{
Mail
.
Builder
builder
=
Mail
.
Builder
(
type
+
"_工单结果"
);
builder
.
message
(
"<span style=\"display: inline-block;width: 100px\">工单ID:</span>"
+
workid
);
builder
.
message
(
"<span style=\"display: inline-block;width: 100px\">工单类型:</span>"
+
type
);
builder
.
message
(
"<span style=\"display: inline-block;width: 100px\">工单标题:</span>"
+
title
);
builder
.
message
(
"<span style=\"display: inline-block;width: 100px\">处理结果:</span>"
+
reulut
);
return
builder
;
}
/**
* 抄送给leader
*
* @param builder
*/
public
void
addLeader
(
Mail
.
Builder
builder
)
{
List
<
User
>
list
=
userMapper
.
selectUsersByRole
(
HandlerRole
.
LEADER
);
for
(
User
u
:
list
)
{
builder
.
cc
(
u
.
getEmail
());
}
}
}
...
...
pom.xml
View file @
3eb3c20
...
...
@@ -64,6 +64,21 @@
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
javax.mail
</groupId>
<artifactId>
mail
</artifactId>
<version>
1.4.7
</version>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-email
</artifactId>
<version>
1.4
</version>
</dependency>
<dependency>
<groupId>
javax.activation
</groupId>
<artifactId>
activation
</artifactId>
<version>
1.1
</version>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
jstl
</artifactId>
<version>
1.2
</version>
...
...
Please
register
or
login
to post a comment