Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
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
陈天仲
email
Commits
259bd2d5
Commit
259bd2d5
authored
Oct 11, 2023
by
chentianzhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
外部接口
parent
107746a6
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
303 additions
and
215 deletions
+303
-215
src/main/java/com/zq/email/controller/EmailController.java
+0
-1
src/main/java/com/zq/email/feign/AdminFeignClient.java
+17
-0
src/main/java/com/zq/email/feign/fallback/AdminFeignFallbackFactory.java
+10
-0
src/main/java/com/zq/email/service/IEmailContentService.java
+2
-2
src/main/java/com/zq/email/service/IEmailPersonService.java
+7
-1
src/main/java/com/zq/email/service/impl/EmailContentServiceImpl.java
+8
-8
src/main/java/com/zq/email/service/impl/EmailPersonServiceImpl.java
+140
-79
src/main/java/com/zq/email/utils/MsgUtil.java
+19
-0
src/main/java/com/zq/email/utils/SmsUtil.java
+28
-0
src/main/resources/bootstrap.yml
+0
-2
src/main/resources/logback-spring.xml
+72
-122
No files found.
src/main/java/com/zq/email/controller/EmailController.java
View file @
259bd2d5
...
@@ -2,7 +2,6 @@ package com.zq.email.controller;
...
@@ -2,7 +2,6 @@ package com.zq.email.controller;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.zq.common.utils.AssertUtils
;
import
com.zq.common.utils.AssertUtils
;
import
com.zq.common.utils.TokenUtils
;
import
com.zq.common.utils.TokenUtils
;
import
com.zq.common.vo.OnlineUserDto
;
import
com.zq.common.vo.OnlineUserDto
;
...
...
src/main/java/com/zq/email/feign/AdminFeignClient.java
View file @
259bd2d5
...
@@ -2,6 +2,9 @@ package com.zq.email.feign;
...
@@ -2,6 +2,9 @@ package com.zq.email.feign;
import
com.zq.common.annotation.AnonymousAccess
;
import
com.zq.common.annotation.AnonymousAccess
;
import
com.zq.common.annotation.Log
;
import
com.zq.common.annotation.Log
;
import
com.zq.common.annotation.rest.AnonymousGetMapping
;
import
com.zq.common.annotation.rest.AnonymousPostMapping
;
import
com.zq.common.utils.AssertUtils
;
import
com.zq.common.vo.CustomerUserVo
;
import
com.zq.common.vo.CustomerUserVo
;
import
com.zq.common.vo.OnlineUserDto
;
import
com.zq.common.vo.OnlineUserDto
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.common.vo.ResultVo
;
...
@@ -57,4 +60,18 @@ public interface AdminFeignClient {
...
@@ -57,4 +60,18 @@ public interface AdminFeignClient {
@Log
(
"获取指定人员"
)
@ApiOperation
(
"获取指定人员"
)
@AnonymousGetMapping
(
"/users/getUserById/{userId}"
)
CustomerUserVo
getUserById
(
@PathVariable
Long
userId
);
@ApiOperation
(
"根据人员标识查询用户"
)
@AnonymousPostMapping
(
"/getBypCode/{pCode}"
)
ResultVo
<
CustomerUserVo
>
getBypCode
(
@PathVariable
String
pCode
);
}
}
src/main/java/com/zq/email/feign/fallback/AdminFeignFallbackFactory.java
View file @
259bd2d5
...
@@ -74,6 +74,16 @@ public class AdminFeignFallbackFactory implements FallbackFactory<AdminFeignClie
...
@@ -74,6 +74,16 @@ public class AdminFeignFallbackFactory implements FallbackFactory<AdminFeignClie
return
ResultVo
.
fail
(
"admin服务调用异常-->getBySystemTag异常"
);
return
ResultVo
.
fail
(
"admin服务调用异常-->getBySystemTag异常"
);
}
}
@Override
public
CustomerUserVo
getUserById
(
Long
userId
)
{
return
null
;
}
@Override
public
ResultVo
<
CustomerUserVo
>
getBypCode
(
String
pCode
)
{
return
ResultVo
.
fail
(
"admin服务调用异常-->get> getBypCode异常"
);
}
};
};
}
}
...
...
src/main/java/com/zq/email/service/IEmailContentService.java
View file @
259bd2d5
...
@@ -26,9 +26,9 @@ public interface IEmailContentService extends IService<EmailContent> {
...
@@ -26,9 +26,9 @@ public interface IEmailContentService extends IService<EmailContent> {
EmailContent
saveContent
(
EmailEditVo
vo
,
OnlineUserDto
adminContext
);
EmailContent
saveContent
(
EmailEditVo
vo
,
OnlineUserDto
adminContext
);
EmailContent
saveContentApi
(
ApiSendEmailVo
emailVo
,
CustomerUserVo
data
,
List
<
Long
>
receiveIds
);
EmailContent
saveContentApi
(
ApiSendEmailVo
emailVo
,
CustomerUserVo
formVo
,
List
<
Long
>
receiveIds
);
EmailContent
saveContentApi2
(
EmailEditApiVo
vo
,
CustomerUserVo
form
User
);
EmailContent
saveContentApi2
(
EmailEditApiVo
vo
,
CustomerUserVo
form
Vo
);
void
setTaskEmail
(
EmailTaskVo
vo
);
void
setTaskEmail
(
EmailTaskVo
vo
);
...
...
src/main/java/com/zq/email/service/IEmailPersonService.java
View file @
259bd2d5
...
@@ -46,11 +46,17 @@ public interface IEmailPersonService extends IService<EmailPerson> {
...
@@ -46,11 +46,17 @@ public interface IEmailPersonService extends IService<EmailPerson> {
EmailPerson
saveEmailSender
(
OnlineUserDto
userDto
,
EmailContent
content
,
Long
folderId
,
Integer
isSend
);
EmailPerson
saveEmailSender
(
OnlineUserDto
userDto
,
EmailContent
content
,
Long
folderId
,
Integer
isSend
);
//保存发件人2
//保存发件人2
EmailPerson
saveEmailSender
(
CustomerUserVo
userVo
,
EmailContent
content
,
Long
folderId
,
Integer
isSend
);
EmailPerson
saveEmailSender2
(
UserDto
userVo
,
EmailContent
content
,
Long
folderId
,
Integer
isSend
);
//保存发件人3
EmailPerson
saveEmailSender3
(
CustomerUserVo
userVo
,
EmailContent
content
,
Long
folderId
,
Integer
isSend
);
//保存收件人
//保存收件人
void
saveEmailReceiver
(
List
<
UserDto
>
receiverList
,
EmailContent
content
,
Long
folderId
,
Integer
isPerson
,
Integer
isSend
);
void
saveEmailReceiver
(
List
<
UserDto
>
receiverList
,
EmailContent
content
,
Long
folderId
,
Integer
isPerson
,
Integer
isSend
);
//保存收件人2
void
saveEmailReceiver2
(
List
<
CustomerUserVo
>
receiverList
,
EmailContent
content
,
Long
folderId
,
Integer
isPerson
,
Integer
isSend
);
//移动邮件到文件夹
//移动邮件到文件夹
void
moveEmailFolder
(
EmailFolderMoveVo
vo
);
void
moveEmailFolder
(
EmailFolderMoveVo
vo
);
...
...
src/main/java/com/zq/email/service/impl/EmailContentServiceImpl.java
View file @
259bd2d5
...
@@ -96,14 +96,14 @@ public class EmailContentServiceImpl extends ServiceImpl<EmailContentMapper, Ema
...
@@ -96,14 +96,14 @@ public class EmailContentServiceImpl extends ServiceImpl<EmailContentMapper, Ema
}
}
@Override
@Override
public
EmailContent
saveContentApi
(
ApiSendEmailVo
emailVo
,
CustomerUserVo
data
,
List
<
Long
>
receiveIds
)
{
public
EmailContent
saveContentApi
(
ApiSendEmailVo
emailVo
,
CustomerUserVo
formVo
,
List
<
Long
>
receiveIds
)
{
EmailContent
content
=
new
EmailContent
();
EmailContent
content
=
new
EmailContent
();
content
.
setTitle
(
emailVo
.
getSubject
());
content
.
setTitle
(
emailVo
.
getSubject
());
content
.
setContent
(
emailVo
.
getContent
());
content
.
setContent
(
emailVo
.
getContent
());
content
.
setDegree
(
EmailDegreeEnum
.
DEGREE_COMMON
.
getKey
());
content
.
setDegree
(
EmailDegreeEnum
.
DEGREE_COMMON
.
getKey
());
content
.
setSendUserId
(
data
.
getUserId
());
content
.
setSendUserId
(
formVo
.
getUserId
());
content
.
setSendUserEmail
(
data
.
getUsername
());
content
.
setSendUserEmail
(
formVo
.
getUsername
());
content
.
setSendUserName
(
data
.
getNickName
());
content
.
setSendUserName
(
formVo
.
getNickName
());
content
.
setSendTime
(
LocalDateTime
.
now
());
content
.
setSendTime
(
LocalDateTime
.
now
());
content
.
setIsTask
(
WhetherEnum
.
NO
.
getKey
());
content
.
setIsTask
(
WhetherEnum
.
NO
.
getKey
());
...
@@ -122,14 +122,14 @@ public class EmailContentServiceImpl extends ServiceImpl<EmailContentMapper, Ema
...
@@ -122,14 +122,14 @@ public class EmailContentServiceImpl extends ServiceImpl<EmailContentMapper, Ema
}
}
@Override
@Override
public
EmailContent
saveContentApi2
(
EmailEditApiVo
vo
,
CustomerUserVo
form
User
)
{
public
EmailContent
saveContentApi2
(
EmailEditApiVo
vo
,
CustomerUserVo
form
Vo
)
{
EmailContent
content
=
new
EmailContent
();
EmailContent
content
=
new
EmailContent
();
content
.
setTitle
(
vo
.
getTitle
());
content
.
setTitle
(
vo
.
getTitle
());
content
.
setContent
(
vo
.
getContent
());
content
.
setContent
(
vo
.
getContent
());
content
.
setDegree
(
vo
.
getDegree
());
content
.
setDegree
(
vo
.
getDegree
());
content
.
setSendUserId
(
form
User
.
getUserId
());
content
.
setSendUserId
(
form
Vo
.
getUserId
());
content
.
setSendUserEmail
(
form
User
.
getUsername
());
content
.
setSendUserEmail
(
form
Vo
.
getUsername
());
content
.
setSendUserName
(
form
User
.
getNickName
());
content
.
setSendUserName
(
form
Vo
.
getNickName
());
content
.
setSendTime
(
LocalDateTime
.
now
());
content
.
setSendTime
(
LocalDateTime
.
now
());
content
.
setIsTask
(
vo
.
getIsTask
());
content
.
setIsTask
(
vo
.
getIsTask
());
content
.
setSmsRemind
(
vo
.
getIsSmsRemind
());
content
.
setSmsRemind
(
vo
.
getIsSmsRemind
());
...
...
src/main/java/com/zq/email/service/impl/EmailPersonServiceImpl.java
View file @
259bd2d5
...
@@ -2,6 +2,7 @@ package com.zq.email.service.impl;
...
@@ -2,6 +2,7 @@ package com.zq.email.service.impl;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
...
@@ -292,7 +293,28 @@ public class EmailPersonServiceImpl extends ServiceImpl<EmailPersonMapper, Email
...
@@ -292,7 +293,28 @@ public class EmailPersonServiceImpl extends ServiceImpl<EmailPersonMapper, Email
}
}
@Override
@Override
public
EmailPerson
saveEmailSender
(
CustomerUserVo
userVo
,
EmailContent
content
,
Long
folderId
,
Integer
isSend
)
{
public
EmailPerson
saveEmailSender2
(
UserDto
userVo
,
EmailContent
content
,
Long
folderId
,
Integer
isSend
)
{
EmailPerson
sender
=
EmailPerson
.
builder
()
.
emailContentId
(
content
.
getId
())
.
userId
(
userVo
.
getId
())
.
userEmail
(
userVo
.
getUsername
())
.
userName
(
userVo
.
getNickName
())
.
deptId
(
userVo
.
getDeptId
())
.
courtCode
(
userVo
.
getCourtCode
())
.
personType
(
EmailConstant
.
TYPE_EMAIL_SEND
)
.
sendTime
(
content
.
getSendTime
())
.
folderId
(
folderId
)
.
isRead
(
WhetherEnum
.
YES
.
getKey
())
.
isPerson
(
WhetherEnum
.
YES
.
getKey
())
.
isTask
(
content
.
getIsTask
())
.
isSend
(
isSend
)
.
build
();
this
.
save
(
sender
);
return
sender
;
}
@Override
public
EmailPerson
saveEmailSender3
(
CustomerUserVo
userVo
,
EmailContent
content
,
Long
folderId
,
Integer
isSend
)
{
EmailPerson
sender
=
EmailPerson
.
builder
()
EmailPerson
sender
=
EmailPerson
.
builder
()
.
emailContentId
(
content
.
getId
())
.
emailContentId
(
content
.
getId
())
.
userId
(
userVo
.
getUserId
())
.
userId
(
userVo
.
getUserId
())
...
@@ -339,6 +361,31 @@ public class EmailPersonServiceImpl extends ServiceImpl<EmailPersonMapper, Email
...
@@ -339,6 +361,31 @@ public class EmailPersonServiceImpl extends ServiceImpl<EmailPersonMapper, Email
}
}
@Override
@Override
public
void
saveEmailReceiver2
(
List
<
CustomerUserVo
>
receiverList
,
EmailContent
content
,
Long
folderId
,
Integer
isPerson
,
Integer
isSend
)
{
for
(
CustomerUserVo
userVo
:
receiverList
)
{
EmailPerson
receivePerson
=
EmailPerson
.
builder
()
.
emailContentId
(
content
.
getId
())
.
userId
(
userVo
.
getUserId
())
.
userEmail
(
userVo
.
getUsername
())
.
userName
(
userVo
.
getNickName
())
.
deptId
(
userVo
.
getDeptId
())
.
courtCode
(
userVo
.
getCourtCode
())
.
personType
(
EmailConstant
.
TYPE_EMAIL_RECEIVE
)
.
sendTime
(
content
.
getSendTime
())
.
folderId
(
folderId
)
.
isRead
(
WhetherEnum
.
NO
.
getKey
())
.
isPerson
(
isPerson
)
.
isTask
(
content
.
getIsTask
())
.
isSend
(
isSend
)
.
build
();
if
(
isPerson
.
equals
(
WhetherEnum
.
NO
.
getKey
())){
receivePerson
.
setDeptId
(
userVo
.
getDeptId
());
}
this
.
save
(
receivePerson
);
}
}
@Override
public
void
moveEmailFolder
(
EmailFolderMoveVo
vo
)
{
public
void
moveEmailFolder
(
EmailFolderMoveVo
vo
)
{
List
<
EmailPerson
>
list
=
List
<
EmailPerson
>
list
=
this
.
lambdaQuery
()
this
.
lambdaQuery
()
...
@@ -853,97 +900,111 @@ public class EmailPersonServiceImpl extends ServiceImpl<EmailPersonMapper, Email
...
@@ -853,97 +900,111 @@ public class EmailPersonServiceImpl extends ServiceImpl<EmailPersonMapper, Email
SystemInfo
systemInfo
=
bySystemTag
.
getData
();
SystemInfo
systemInfo
=
bySystemTag
.
getData
();
AssertUtils
.
notNull
(
systemInfo
,
"调用admin服务异常,获取业务系统为空"
);
AssertUtils
.
notNull
(
systemInfo
,
"调用admin服务异常,获取业务系统为空"
);
Set
<
UserDt
o
>
toUserSet
=
new
LinkedHashSet
<>();
Set
<
CustomerUserV
o
>
toUserSet
=
new
LinkedHashSet
<>();
Set
<
Long
>
toUserIds
=
new
LinkedHashSet
<>();
Set
<
Long
>
toUserIds
=
new
LinkedHashSet
<>();
ResultVo
<
UserDto
>
fromVo
=
adminFeignClient
.
findByPCode
(
emailVo
.
getFrom_id
());
ResultVo
<
CustomerUserVo
>
bypCode
=
adminFeignClient
.
getBypCode
(
emailVo
.
getFrom_id
());
AssertUtils
.
isTrue
(
fromVo
.
isSuccess
()
||
fromVo
.
getData
()!=
null
,
"找不到发件人的门户信息"
);
AssertUtils
.
isTrue
(
bypCode
.
isSuccess
()
||
bypCode
.
getData
()!=
null
,
"找不到发件人的门户信息"
);
CustomerUserVo
fromVo
=
bypCode
.
getData
();
ResultVo
<
UserDto
>
toVo
=
adminFeignClient
.
findByPCode
(
emailVo
.
getTo_id
());
ResultVo
<
CustomerUserVo
>
bypCode2
=
adminFeignClient
.
getBypCode
(
emailVo
.
getTo_id
());
AssertUtils
.
isTrue
(
toVo
.
isSuccess
()
||
toVo
.
getData
()!=
null
,
"找不到收件人1的门户信息"
);
AssertUtils
.
isTrue
(
bypCode2
.
isSuccess
()
||
bypCode2
.
getData
()!=
null
,
"找不到收件人1的门户信息"
);
toUserIds
.
add
(
toVo
.
getData
().
getId
());
CustomerUserVo
toVo
=
bypCode2
.
getData
();
toUserSet
.
add
(
toVo
.
getData
());
toUserIds
.
add
(
toVo
.
getUserId
());
toUserSet
.
add
(
toVo
);
if
(
StrUtil
.
isNotBlank
(
emailVo
.
getTo_id2
())){
if
(
StrUtil
.
isNotBlank
(
emailVo
.
getTo_id2
())){
ResultVo
<
UserDto
>
toVo2
=
adminFeignClient
.
findByPCode
(
emailVo
.
getTo_id2
());
ResultVo
<
CustomerUserVo
>
bypCode1
=
adminFeignClient
.
getBypCode
(
emailVo
.
getTo_id2
());
AssertUtils
.
isTrue
(
toVo2
.
isSuccess
()
||
toVo2
.
getData
()!=
null
,
"找不到收件人2的门户信息"
);
AssertUtils
.
isTrue
(
bypCode1
.
isSuccess
()
||
bypCode1
.
getData
()!=
null
,
"找不到收件人2的门户信息"
);
toUserIds
.
add
(
toVo2
.
getData
().
getId
());
CustomerUserVo
toVo2
=
bypCode2
.
getData
();
toUserSet
.
add
(
toVo2
.
getData
());
toUserIds
.
add
(
toVo2
.
getUserId
());
toUserSet
.
add
(
toVo2
);
}
}
// EmailContent content = emailContentService.saveContentApi(emailVo, fromVo.getData(), new ArrayList<>(toUserIds));
EmailContent
content
=
emailContentService
.
saveContentApi
(
emailVo
,
fromVo
,
new
ArrayList
<>(
toUserIds
));
//
// this.saveEmailSender(fromVo.getData(), content, EmailFolderEnum.FOLDER_ALREADY_SEND.getKey().longValue(), WhetherEnum.YES.getKey());
this
.
saveEmailSender3
(
fromVo
,
content
,
EmailFolderEnum
.
FOLDER_ALREADY_SEND
.
getKey
().
longValue
(),
WhetherEnum
.
YES
.
getKey
());
// //增加收件人
//增加收件人
// ArrayList<CustomerUserVo> toUserList = new ArrayList<>(toUserSet);
ArrayList
<
CustomerUserVo
>
toUserList
=
ListUtil
.
toList
(
toUserSet
);
// this.saveEmailReceiver(toUserList, content, EmailFolderEnum.FOLDER_INBOX.getKey().longValue(), WhetherEnum.YES.getKey(), WhetherEnum.YES.getKey());
this
.
saveEmailReceiver2
(
toUserList
,
content
,
EmailFolderEnum
.
FOLDER_INBOX
.
getKey
().
longValue
(),
WhetherEnum
.
YES
.
getKey
(),
WhetherEnum
.
YES
.
getKey
());
// //短信
//短信
// //smsUtil.sendBatchSms(toUserList, "您有一封新的邮件,标题为《" + content.getTitle() + "》。请及时查收。", content.getId());
smsUtil
.
sendBatchSms2
(
toUserList
,
"您有一封新的邮件,标题为《"
+
content
.
getTitle
()
+
"》。请及时查收。"
,
content
.
getId
());
// //代办
//代办
// msgUtil.sendMsg(fromVo.getData().getNickName(), content, toUserList, systemInfo, EmailFolderEnum.FOLDER_INBOX.getKey());
msgUtil
.
sendMsg3
(
fromVo
.
getNickName
(),
content
,
toUserList
,
systemInfo
,
EmailFolderEnum
.
FOLDER_INBOX
.
getKey
());
// return content;
return
content
;
return
null
;
}
}
@Override
@Override
public
EmailContent
sendEmailApi2
(
EmailEditApiVo
vo
)
{
public
EmailContent
sendEmailApi2
(
EmailEditApiVo
vo
)
{
// ResultVo<SystemInfo> bySystemTag = this.adminFeignClient.getBySystemTag(EmailConstant.SYSTEM_TAG);
ResultVo
<
SystemInfo
>
bySystemTag
=
this
.
adminFeignClient
.
getBySystemTag
(
EmailConstant
.
SYSTEM_TAG
);
// AssertUtils.isTrue(bySystemTag.isSuccess(), "调用admin服务,获取业务系统异常");
AssertUtils
.
isTrue
(
bySystemTag
.
isSuccess
(),
"调用admin服务,获取业务系统异常"
);
// SystemInfo systemInfo = bySystemTag.getData();
SystemInfo
systemInfo
=
bySystemTag
.
getData
();
// AssertUtils.notNull(systemInfo, "调用admin服务异常,获取业务系统为空");
AssertUtils
.
notNull
(
systemInfo
,
"调用admin服务异常,获取业务系统为空"
);
//
// CustomerUserVo formUser = adminFeignClient.getUserById(vo.getSender());
CustomerUserVo
byId
=
adminFeignClient
.
getUserById
(
vo
.
getSender
());
// AssertUtils.notNull(formUser, "获取发送人失败:(sender="+vo.getSender()+")");
AssertUtils
.
isTrue
(
byId
!=
null
,
"获取发送人失败:(sender="
+
vo
.
getSender
()+
")"
);
// //邮件
//邮件
// EmailContent content = emailContentService.saveContentApi2(vo, formUser);
EmailContent
content
=
emailContentService
.
saveContentApi2
(
vo
,
byId
);
// if (content !=null) {
if
(
content
!=
null
)
{
// //person,先删除
//person,先删除
// this.lambdaUpdate().eq(EmailPerson::getEmailContentId, content.getId()).remove();
this
.
lambdaUpdate
().
eq
(
EmailPerson:
:
getEmailContentId
,
content
.
getId
()).
remove
();
// //发件人
//发件人
// this.saveEmailSender(formUser, content,EmailFolderEnum.FOLDER_ALREADY_SEND.getKey().longValue(), WhetherEnum.YES.getKey());
this
.
saveEmailSender3
(
byId
,
content
,
EmailFolderEnum
.
FOLDER_ALREADY_SEND
.
getKey
().
longValue
(),
WhetherEnum
.
YES
.
getKey
());
// //收件人
//收件人
// if (CollectionUtil.isNotEmpty(vo.getReceiver())) {
if
(
CollectionUtil
.
isNotEmpty
(
vo
.
getReceiver
()))
{
// List<CustomerUserVo> receiverList = new ArrayList<>();
List
<
CustomerUserVo
>
receiverList
=
new
ArrayList
<>();
// for (Long userId : vo.getReceiver()) {
for
(
Long
userId
:
vo
.
getReceiver
())
{
// CustomerUserVo receiver = this.adminFeignClient.getUserById(userId);
CustomerUserVo
receiver
=
this
.
adminFeignClient
.
getUserById
(
userId
);
// AssertUtils.notNull(receiver, "调用admin失败,根据userId获取人员接口异常");
AssertUtils
.
isTrue
(
receiver
!=
null
,
"调用admin失败,根据userId获取人员接口异常"
);
// receiverList.add(receiver);
receiverList
.
add
(
receiver
);
// }
}
// if (CollectionUtil.isNotEmpty(receiverList)){
if
(
CollectionUtil
.
isNotEmpty
(
receiverList
)){
// this.saveEmailReceiver(receiverList, content, EmailFolderEnum.FOLDER_INBOX.getKey().longValue(), WhetherEnum.YES.getKey(), WhetherEnum.YES.getKey());
this
.
saveEmailReceiver2
(
receiverList
,
content
,
EmailFolderEnum
.
FOLDER_INBOX
.
getKey
().
longValue
(),
WhetherEnum
.
YES
.
getKey
(),
WhetherEnum
.
YES
.
getKey
());
// if (vo.getIsSend().equals(WhetherEnum.YES.getKey()) && content.getSmsRemind().equals(WhetherEnum.YES.getKey())) {
if
(
vo
.
getIsSend
().
equals
(
WhetherEnum
.
YES
.
getKey
())
&&
content
.
getSmsRemind
().
equals
(
WhetherEnum
.
YES
.
getKey
()))
{
// smsUtil.sendBatchSms(receiverList, "您有一封新的邮件,标题为《" + content.getTitle() + "》。请及时查收。", content.getId());
smsUtil
.
sendBatchSms2
(
receiverList
,
"您有一封新的邮件,标题为《"
+
content
.
getTitle
()
+
"》。请及时查收。"
,
content
.
getId
());
// }
}
// if (vo.getIsSend().equals(WhetherEnum.YES.getKey()) && content.getMessageRemind().equals(WhetherEnum.YES.getKey())) {
if
(
vo
.
getIsSend
().
equals
(
WhetherEnum
.
YES
.
getKey
())
&&
content
.
getMessageRemind
().
equals
(
WhetherEnum
.
YES
.
getKey
()))
{
// msgUtil.sendMsg(formUser.getNickName(), content, receiverList, systemInfo, EmailFolderEnum.FOLDER_INBOX.getKey());
msgUtil
.
sendMsg3
(
byId
.
getNickName
(),
content
,
receiverList
,
systemInfo
,
EmailFolderEnum
.
FOLDER_INBOX
.
getKey
());
// }
}
// }
}
// }
}
//
// //收件部门人员
//收件部门人员
//
// if (CollectionUtil.isNotEmpty(vo.getReceiveDeptList())) {
if
(
CollectionUtil
.
isNotEmpty
(
vo
.
getReceiveDeptList
()))
{
// List<CustomerUserVo> deptUserList = new ArrayList<>();
List
<
CustomerUserVo
>
deptUserList
=
new
ArrayList
<>();
// for (Long deptId : vo.getReceiveDeptList()) {
for
(
Long
deptId
:
vo
.
getReceiveDeptList
())
{
// ResultVo<List<CustomerUserVo>> userByDeptId = adminFeignClient.getUserByDeptId(deptId);
ResultVo
<
List
<
CustomerUserVo
>>
userByDeptId
=
adminFeignClient
.
getUserByDeptId
(
deptId
);
// AssertUtils.isTrue(userByDeptId.isSuccess(), "调用admin失败,根据deptId获取人员接口异常");
AssertUtils
.
isTrue
(
userByDeptId
.
isSuccess
(),
"调用admin失败,根据deptId获取人员接口异常"
);
// deptUserList.addAll(userByDeptId.getData());
// deptUserList.add()
// }
// for (CustomerUserVo userVo : userByDeptId.getData()) {
//
// UserDto userDto = new UserDto();
// if (CollectionUtil.isNotEmpty(deptUserList)){
// userDto.setId(userVo.getUserId());
// this.saveEmailReceiver(deptUserList, content, EmailFolderEnum.FOLDER_DEPT_INBOX.getKey().longValue(), WhetherEnum.NO.getKey(), WhetherEnum.YES.getKey());
// userDto.setUsername(userVo.getUsername());
// if (vo.getIsSend().equals(WhetherEnum.YES.getKey()) && content.getSmsRemind().equals(WhetherEnum.YES.getKey())) {
// userDto.setNickName(userVo.getNickName());
// smsUtil.sendBatchSms(deptUserList, "您有一封新的邮件,标题为《" + content.getTitle() + "》。请及时查收。", content.getId());
// userDto.setDeptId(userVo.getDeptId());
// }
// userDto.setCourtCode(userVo.getCourtCode());
// if (vo.getIsSend().equals(WhetherEnum.YES.getKey()) && content.getMessageRemind().equals(WhetherEnum.YES.getKey())) {
// deptUserList.add(userDto);
// msgUtil.sendMsg(formUser.getNickName(), content, deptUserList, systemInfo, EmailFolderEnum.FOLDER_DEPT_INBOX.getKey());
// }
// }
// }
// }
// }
// return content;
deptUserList
.
addAll
(
userByDeptId
.
getData
());
return
null
;
}
if
(
CollectionUtil
.
isNotEmpty
(
deptUserList
)){
this
.
saveEmailReceiver2
(
deptUserList
,
content
,
EmailFolderEnum
.
FOLDER_DEPT_INBOX
.
getKey
().
longValue
(),
WhetherEnum
.
NO
.
getKey
(),
WhetherEnum
.
YES
.
getKey
());
if
(
vo
.
getIsSend
().
equals
(
WhetherEnum
.
YES
.
getKey
())
&&
content
.
getSmsRemind
().
equals
(
WhetherEnum
.
YES
.
getKey
()))
{
smsUtil
.
sendBatchSms2
(
deptUserList
,
"您有一封新的邮件,标题为《"
+
content
.
getTitle
()
+
"》。请及时查收。"
,
content
.
getId
());
}
if
(
vo
.
getIsSend
().
equals
(
WhetherEnum
.
YES
.
getKey
())
&&
content
.
getMessageRemind
().
equals
(
WhetherEnum
.
YES
.
getKey
()))
{
msgUtil
.
sendMsg3
(
byId
.
getNickName
(),
content
,
deptUserList
,
systemInfo
,
EmailFolderEnum
.
FOLDER_DEPT_INBOX
.
getKey
());
}
}
}
}
return
content
;
}
}
@Override
@Override
...
...
src/main/java/com/zq/email/utils/MsgUtil.java
View file @
259bd2d5
...
@@ -48,6 +48,25 @@ public class MsgUtil {
...
@@ -48,6 +48,25 @@ public class MsgUtil {
}
}
//发送消息和代办
@Async
public
void
sendMsg3
(
String
sender
,
EmailContent
content
,
List
<
CustomerUserVo
>
userVoList
,
SystemInfo
systemInfo
,
Integer
folderId
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"systemTag"
,
EmailConstant
.
SYSTEM_TAG
);
params
.
put
(
"sender"
,
sender
);
params
.
put
(
"senderId"
,
content
.
getSendUserId
());
params
.
put
(
"nickName"
,
sender
);
params
.
put
(
"title"
,
"您有一封新邮件提醒"
);
params
.
put
(
"content"
,
"请查收我的邮件!主题:"
+
content
.
getTitle
()+
"。"
);
params
.
put
(
"userIdList"
,
userVoList
.
stream
().
map
(
e
->
e
.
getUserId
()).
collect
(
Collectors
.
toList
()));
params
.
put
(
"businessId"
,
content
.
getId
());
params
.
put
(
"jumpUrl"
,
systemInfo
.
getHomeUrl
()
+
"/#/detail?folderId="
+
folderId
+
"&contentId="
+
content
.
getId
());
log
.
warn
(
"---发送内部消息打印内容: {}"
,
JSONUtil
.
toJsonStr
(
params
));
messageFeignClient
.
sendApi
(
params
);
messageFeignClient
.
addToDoApi
(
params
);
}
@Async
@Async
public
void
sendMsg2
(
String
sender
,
EmailContent
content
,
List
<
Long
>
userIds
,
SystemInfo
systemInfo
,
Integer
folderId
)
{
public
void
sendMsg2
(
String
sender
,
EmailContent
content
,
List
<
Long
>
userIds
,
SystemInfo
systemInfo
,
Integer
folderId
)
{
...
...
src/main/java/com/zq/email/utils/SmsUtil.java
View file @
259bd2d5
...
@@ -59,6 +59,34 @@ public class SmsUtil {
...
@@ -59,6 +59,34 @@ public class SmsUtil {
}
}
}
}
/**
* 发送批量短信
*
* @return
*/
@Async
public
void
sendBatchSms2
(
List
<
CustomerUserVo
>
userVoList
,
String
content
,
Long
contentId
)
{
String
regex
=
"^1[3-9]\\d{9}"
;
StringBuffer
sb
=
new
StringBuffer
();
for
(
CustomerUserVo
userVo
:
userVoList
)
{
if
(
userVo
!=
null
&&
StrUtil
.
isNotBlank
(
userVo
.
getPhone
())
&&
userVo
.
getPhone
().
matches
(
regex
)){
sb
.
append
(
userVo
.
getPhone
()).
append
(
","
);
}
}
if
(
sb
.
length
()
>
0
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"phones"
,
Base64
.
encode
(
sb
.
toString
().
getBytes
()));
map
.
put
(
"fromId"
,
Base64
.
encode
(
"oa_email"
.
getBytes
()));
map
.
put
(
"content"
,
Base64
.
encode
(
content
.
getBytes
()));
map
.
put
(
"isReply"
,
Base64
.
encode
(
"0"
.
getBytes
()));
String
param
=
JSONUtil
.
toJsonStr
(
map
);
sendRequest
(
Base64
.
encode
(
param
.
getBytes
()),
contentId
);
}
}
private
void
sendRequest
(
String
content
,
Long
contentId
)
{
private
void
sendRequest
(
String
content
,
Long
contentId
)
{
log
.
debug
(
"发送短信请求 => 邮件标识:{},请求地址:{}"
,
contentId
,
smsProperties
.
getUrl
());
log
.
debug
(
"发送短信请求 => 邮件标识:{},请求地址:{}"
,
contentId
,
smsProperties
.
getUrl
());
...
...
src/main/resources/bootstrap.yml
View file @
259bd2d5
...
@@ -14,8 +14,6 @@ spring:
...
@@ -14,8 +14,6 @@ spring:
eureka
:
eureka
:
instance
:
instance
:
prefer-ip-address
:
true
prefer-ip-address
:
true
lease-renewal-interval-in-seconds
:
30
#服务续约(renew)的间隔,默认为30秒
lease-expiration-duration-in-seconds
:
90
#服务失效时间,默认值90秒
instance-id
:
${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
instance-id
:
${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
client
:
client
:
serviceUrl
:
serviceUrl
:
...
...
src/main/resources/logback-spring.xml
View file @
259bd2d5
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configuration>
<!--<include resource="org/springframework/boot/logging/logback/base.xml"/>-->
<include
resource=
"org/springframework/boot/logging/logback/defaults.xml"
/>
<include
resource=
"org/springframework/boot/logging/logback/console-appender.xml"
/>
<!-- 项目名称也是主要日志文件名 -->
<property
name=
"PROJECT_NAME"
value=
"email"
/>
<!-- 日志目录 -->
<property
name=
"LOG_PATH"
value=
"/data/logs/${LOG_PATH:-${PROJECT_NAME}}"
/>
<!-- 日志格式 -->
<property
name=
"LOG_PATTERN"
value=
"%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:-} [%15.15t] %-40.40logger{39} : %m%n"
/>
<!-- the name of the application's logging context -->
<!-- by default each JMXConfigurator instance will be registered under the same name in the same JVM -->
<!-- we need to set the contextName for different apps, so that the jmxconfigurator won't collide -->
<contextName>
${PROJECT_NAME}
</contextName>
<jmxConfigurator/>
<!--主要日志配置 开始-->
<contextName>
logback
</contextName>
<appender
name=
"SIZED_ROLLING_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<property
name=
"log.path"
value=
"/data/logs/${LOG_PATH:-${PROJECT_NAME}}"
/>
<!--主要日志文件名-->
<property
name=
"default_log_file"
value=
"email"
/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule
conversionWord=
"clr"
converterClass=
"org.springframework.boot.logging.logback.ColorConverter"
/>
<conversionRule
conversionWord=
"wex"
converterClass=
"org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"
/>
<conversionRule
conversionWord=
"wEx"
converterClass=
"org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"
/>
<!-- 彩色日志格式 -->
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<!--输出到控制台-->
<appender
name=
"CONSOLE"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
debug
</level>
</filter>
<encoder>
<encoder>
<pattern>
${LOG_PATTERN}
</pattern>
<Pattern>
${CONSOLE_LOG_PATTERN}
</Pattern>
<!-- 设置字符集 -->
<charset>
UTF-8
</charset>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
<file>
${LOG_PATH}/${PROJECT_NAME}.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
${LOG_PATH}/${PROJECT_NAME}/${PROJECT_NAME}.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
50MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 日志文档保留天数 -->
<maxHistory>
15
</maxHistory>
</rollingPolicy>
</appender>
</appender>
<!-- 异步输出 -->
<appender
name=
"MAIN-LOGGER-APPENDER"
class=
"ch.qos.logback.classic.AsyncAppender"
>
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>
0
</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>
512
</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref
ref=
"SIZED_ROLLING_FILE"
/>
</appender>
<!--主要日志配置 结束-->
<!--DEBUG日志配置 开始-->
<!--输出到文件-->
<!-- 时间滚动输出 level为 DEBUG 日志 -->
<appender
name=
"DEBUG_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"DEBUG_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${log.path}/log_debug.log
</file>
<!--日志文件输出格式-->
<encoder>
<encoder>
<pattern>
${LOG_PATTERN}
</pattern>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>
UTF-8
</charset>
<charset>
UTF-8
</charset>
<!-- 设置字符集 -->
</encoder>
</encoder>
<
file>
${LOG_PATH}/debug.log
</file
>
<
!-- 日志记录器的滚动策略,按日期,按大小记录 --
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
${LOG_PATH}/debug/debug.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<!-- 日志归档 -->
<fileNamePattern>
${log.path}/debug/${default_log_file}-debug-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
5
0MB
</maxFileSize>
<maxFileSize>
10
0MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</timeBasedFileNamingAndTriggeringPolicy>
<!--
日志文档保留天数
-->
<!--
日志文件保留天数
-->
<maxHistory>
15
</maxHistory>
<maxHistory>
15
</maxHistory>
</rollingPolicy>
</rollingPolicy>
<!-- 此日志文件只记录
ERROR
级别的 -->
<!-- 此日志文件只记录
debug
级别的 -->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
DEBUG
</level>
<level>
debug
</level>
<onMatch>
ACCEPT
</onMatch>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</filter>
</appender>
</appender>
<!-- 异步输出 -->
<appender
name=
"DEBUG-APPENDER"
class=
"ch.qos.logback.classic.AsyncAppender"
>
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>
0
</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>
512
</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref
ref=
"DEBUG_FILE"
/>
</appender>
<!--DEBUG日志配置 结束-->
<!--
INFO日志配置 开始
-->
<!--
时间滚动输出 level为 INFO 日志
-->
<appender
name=
"INFO_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"INFO_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${log.path}/log_info.log
</file>
<!--日志文件输出格式-->
<encoder>
<encoder>
<pattern>
${LOG_PATTERN}
</pattern>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>
UTF-8
</charset>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
<
file>
${LOG_PATH}/info.log
</file
>
<
!-- 日志记录器的滚动策略,按日期,按大小记录 --
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
${LOG_PATH}/info/info.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>
${log.path}/info/${default_log_file}-info-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
5
0MB
</maxFileSize>
<maxFileSize>
10
0MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</timeBasedFileNamingAndTriggeringPolicy>
<!--
日志文档保留天数
-->
<!--
日志文件保留天数
-->
<maxHistory>
15
</maxHistory>
<maxHistory>
15
</maxHistory>
</rollingPolicy>
</rollingPolicy>
<!-- 此日志文件只记录
ERROR
级别的 -->
<!-- 此日志文件只记录
info
级别的 -->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
INFO
</level>
<level>
info
</level>
<onMatch>
ACCEPT
</onMatch>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</filter>
</appender>
</appender>
<!-- 异步输出 -->
<appender
name=
"INFO-APPENDER"
class=
"ch.qos.logback.classic.AsyncAppender"
>
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>
0
</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>
512
</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref
ref=
"INFO_FILE"
/>
</appender>
<!--INFO日志配置 结束-->
<!--
WARN日志配置 开始
-->
<!--
时间滚动输出 level为 WARN 日志
-->
<appender
name=
"WARN_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"WARN_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${log.path}/log_warn.log
</file>
<!--日志文件输出格式-->
<encoder>
<encoder>
<pattern>
${LOG_PATTERN}
</pattern>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>
UTF-8
</charset>
<charset>
UTF-8
</charset>
<!-- 此处设置字符集 -->
</encoder>
</encoder>
<
file>
${LOG_PATH}/warn.log
</file
>
<
!-- 日志记录器的滚动策略,按日期,按大小记录 --
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
${
LOG_PATH}/warn/warn.
%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<fileNamePattern>
${
log.path}/warn/${default_log_file}-warn-
%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
5
0MB
</maxFileSize>
<maxFileSize>
10
0MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</timeBasedFileNamingAndTriggeringPolicy>
<!--
日志文档保留天数
-->
<!--
日志文件保留天数
-->
<maxHistory>
15
</maxHistory>
<maxHistory>
15
</maxHistory>
</rollingPolicy>
</rollingPolicy>
<!-- 此日志文件只记录
ERROR
级别的 -->
<!-- 此日志文件只记录
warn
级别的 -->
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<level>
WARN
</level>
<level>
warn
</level>
<onMatch>
ACCEPT
</onMatch>
<onMatch>
ACCEPT
</onMatch>
<onMismatch>
DENY
</onMismatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</filter>
</appender>
</appender>
<!-- 异步输出 -->
<appender
name=
"WARN-APPENDER"
class=
"ch.qos.logback.classic.AsyncAppender"
>
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>
0
</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>
512
</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref
ref=
"WARN_FILE"
/>
</appender>
<!--WARN日志配置 结束-->
<!--ERROR错误日志配置 开始-->
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender
name=
"ERROR_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<appender
name=
"ERROR_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
${
LOG_PATH}/
error.log
</file>
<file>
${
log.path}/log_
error.log
</file>
<!--日志文件输出格式-->
<!--日志文件输出格式-->
<encoder>
<encoder>
<pattern>
${LOG_PATTERN}
</pattern>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>
UTF-8
</charset>
<!-- 此处设置字符集 -->
<charset>
UTF-8
</charset>
<!-- 此处设置字符集 -->
</encoder>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
${
LOG_PATH}/error/error.
%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<fileNamePattern>
${
log.path}/error/${default_log_file}-error-
%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
5
0MB
</maxFileSize>
<maxFileSize>
10
0MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<!--日志文件保留天数-->
<maxHistory>
15
</maxHistory>
<maxHistory>
15
</maxHistory>
...
@@ -169,33 +134,18 @@
...
@@ -169,33 +134,18 @@
<onMismatch>
DENY
</onMismatch>
<onMismatch>
DENY
</onMismatch>
</filter>
</filter>
</appender>
</appender>
<!-- 异步输出 -->
<appender
name=
"ERROR-APPENDER"
class=
"ch.qos.logback.classic.AsyncAppender"
>
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>
0
</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>
512
</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref
ref=
"ERROR_FILE"
/>
</appender>
<!--ERROR错误日志配置 结束-->
<root
level=
"INFO"
>
<root
level=
"info"
>
<!-- 控制台日志输出 -->
<appender-ref
ref=
"CONSOLE"
/>
<appender-ref
ref=
"CONSOLE"
/>
<!-- 全部日志不区分级别 -->
<appender-ref
ref=
"DEBUG_FILE"
/>
<appender-ref
ref=
"MAIN-LOGGER-APPENDER"
/>
<appender-ref
ref=
"INFO_FILE"
/>
<!-- 区分日志级别 -->
<appender-ref
ref=
"WARN_FILE"
/>
<appender-ref
ref=
"DEBUG-APPENDER"
/>
<appender-ref
ref=
"ERROR_FILE"
/>
<appender-ref
ref=
"INFO-APPENDER"
/>
<appender-ref
ref=
"WARN-APPENDER"
/>
<appender-ref
ref=
"ERROR-APPENDER"
/>
</root>
</root>
<logger
name=
"com.zq.message"
level=
"DEBUG"
/>
<!--开发环境:打印控制台-->
<springProfile
name=
"!dev"
>
<springProfile
name=
"!dev"
>
<logger
name=
"com.zq
.message.mapper"
level=
"INFO
"
/>
<logger
name=
"com.zq
"
level=
"info
"
/>
</springProfile>
</springProfile>
</configuration>
</configuration>
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