Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lakernote
EasyAdmin
提交
ab4cd9dd
E
EasyAdmin
项目概览
lakernote
/
EasyAdmin
10 个月 前同步成功
通知
14
Star
3
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
EasyAdmin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ab4cd9dd
编写于
8月 06, 2022
作者:
lakernote
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化trace
上级
0dae7131
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
69 addition
and
25 deletion
+69
-25
src/main/java/com/laker/admin/framework/aop/trace/Span.java
src/main/java/com/laker/admin/framework/aop/trace/Span.java
+4
-0
src/main/java/com/laker/admin/framework/aop/trace/SpanType.java
...in/java/com/laker/admin/framework/aop/trace/SpanType.java
+4
-0
src/main/java/com/laker/admin/framework/aop/trace/Trace.java
src/main/java/com/laker/admin/framework/aop/trace/Trace.java
+44
-19
src/main/java/com/laker/admin/framework/aop/trace/TraceContext.java
...ava/com/laker/admin/framework/aop/trace/TraceContext.java
+2
-1
src/main/java/com/laker/admin/framework/aop/trace/TracingAspect.java
...va/com/laker/admin/framework/aop/trace/TracingAspect.java
+3
-0
src/main/java/com/laker/admin/module/ext/controller/ExtLeaveController.java
...laker/admin/module/ext/controller/ExtLeaveController.java
+1
-0
src/main/java/com/laker/admin/module/sys/mapper/SysDeptMapper.java
...java/com/laker/admin/module/sys/mapper/SysDeptMapper.java
+5
-2
src/main/java/com/laker/admin/module/sys/service/impl/SysUserServiceImpl.java
...ker/admin/module/sys/service/impl/SysUserServiceImpl.java
+6
-3
未找到文件。
src/main/java/com/laker/admin/framework/aop/trace/Span.java
浏览文件 @
ab4cd9dd
...
...
@@ -6,6 +6,9 @@ import lombok.Data;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author laker
*/
@Data
public
class
Span
{
private
String
id
;
...
...
@@ -19,5 +22,6 @@ public class Span {
private
SpanType
spanType
;
private
int
order
;
private
int
level
=
0
;
private
boolean
max
;
private
List
<
Span
>
childs
=
new
ArrayList
<>();
}
src/main/java/com/laker/admin/framework/aop/trace/SpanType.java
浏览文件 @
ab4cd9dd
package
com.laker.admin.framework.aop.trace
;
/**
* @author laker
*/
public
enum
SpanType
{
Controller
,
Service
,
...
...
src/main/java/com/laker/admin/framework/aop/trace/Trace.java
浏览文件 @
ab4cd9dd
...
...
@@ -6,45 +6,70 @@ import java.util.ArrayList;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* @author laker
*/
@Data
public
class
Trace
{
private
int
depth
;
private
String
tracingId
;
/**
*
*/
private
int
depth
=
0
;
/**
* 存储 span结果
*/
private
List
<
Span
>
spans
=
new
ArrayList
<>();
/**
* 方法调用栈
*/
private
LinkedList
<
Span
>
activeSpanStack
=
new
LinkedList
<>();
private
Span
peek
()
{
if
(
activeSpanStack
.
isEmpty
())
{
return
null
;
}
return
activeSpanStack
.
getLast
();
}
private
Span
pop
()
{
return
activeSpanStack
.
removeLast
();
}
/**
* 添加 span
*
* @param span
*/
public
void
addSpan
(
Span
span
)
{
span
.
setOrder
(++
depth
);
// 查询出栈中最新的span
Span
latest
=
current
();
if
(
latest
!=
null
)
{
span
.
setLevel
(
1
);
// 栈为空设置栈leve为 0
if
(
latest
==
null
)
{
span
.
setLevel
(
0
);
// 栈不为空
}
else
{
// 设置level 为上个level +1
span
.
setLevel
(
latest
.
getLevel
()
+
1
);
// 添加进其 子span列表
latest
.
getChilds
().
add
(
span
);
}
// 入栈
activeSpanStack
.
addLast
(
span
);
}
public
Span
current
()
{
return
peek
();
}
public
boolean
stopSpan
(
Span
current
)
{
// 出栈
Span
pop
=
pop
();
// 栈不为空且是第一层栈 则加入到 trace的spans
if
(
pop
!=
null
&&
pop
.
getLevel
()
==
0
)
{
spans
.
add
(
pop
);
}
return
activeSpanStack
.
isEmpty
();
}
public
Span
current
()
{
return
peek
();
}
private
Span
peek
()
{
if
(
activeSpanStack
.
isEmpty
())
{
return
null
;
}
return
activeSpanStack
.
getLast
();
}
private
Span
pop
()
{
return
activeSpanStack
.
removeLast
();
}
}
src/main/java/com/laker/admin/framework/aop/trace/TraceContext.java
浏览文件 @
ab4cd9dd
...
...
@@ -63,8 +63,9 @@ public class TraceContext {
return
;
}
spans
.
sort
(
Comparator
.
comparing
(
Span:
:
getOrder
));
spans
.
stream
().
max
(
Comparator
.
comparing
(
Span:
:
getCost
)).
get
().
setMax
(
true
);
for
(
Span
span
:
spans
)
{
log
.
warn
(
"{}
({})[{}]:[{}]-{}"
,
append
+
BAR
,
span
.
getOrder
(),
span
.
getCost
(),
span
.
getSpanType
(),
span
.
getId
());
log
.
warn
(
"{}
{}{}{}({})[{}ms]:[{}]-{}"
,
append
+
BAR
,
span
.
isMax
()
?
"【"
:
"["
,
span
.
getLevel
(),
span
.
isMax
()
?
"】"
:
"]"
,
span
.
getOrder
(),
span
.
getCost
(),
span
.
getSpanType
(),
span
.
getId
());
logSpan
(
span
.
getChilds
(),
append
+
BAR
);
}
...
...
src/main/java/com/laker/admin/framework/aop/trace/TracingAspect.java
浏览文件 @
ab4cd9dd
...
...
@@ -8,6 +8,9 @@ import org.aspectj.lang.annotation.Pointcut;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
/**
* @author laker
*/
@Component
@Slf4j
@Aspect
...
...
src/main/java/com/laker/admin/module/ext/controller/ExtLeaveController.java
浏览文件 @
ab4cd9dd
...
...
@@ -69,6 +69,7 @@ public class ExtLeaveController extends BaseFlowController {
this
.
setFlowStatusInfo
(
extLeave
);
});
sysUserService
.
getUserDataPowers
(
StpUtil
.
getLoginIdAsLong
());
return
PageResponse
.
ok
(
records
,
pageList
.
getTotal
());
}
...
...
src/main/java/com/laker/admin/module/sys/mapper/SysDeptMapper.java
浏览文件 @
ab4cd9dd
package
com.laker.admin.module.sys.mapper
;
import
com.laker.admin.module.sys.entity.SysDept
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.laker.admin.framework.aop.trace.LakerTrace
;
import
com.laker.admin.framework.aop.trace.SpanType
;
import
com.laker.admin.module.sys.entity.SysDept
;
/**
* <p>
*
Mapper 接口
* Mapper 接口
* </p>
*
* @author laker
* @since 2021-08-11
*/
@LakerTrace
(
spanType
=
SpanType
.
Mapper
)
public
interface
SysDeptMapper
extends
BaseMapper
<
SysDept
>
{
}
src/main/java/com/laker/admin/module/sys/service/impl/SysUserServiceImpl.java
浏览文件 @
ab4cd9dd
...
...
@@ -2,6 +2,8 @@ package com.laker.admin.module.sys.service.impl;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.laker.admin.framework.aop.trace.LakerTrace
;
import
com.laker.admin.framework.aop.trace.SpanType
;
import
com.laker.admin.framework.aop.trace.TraceCodeBlock
;
import
com.laker.admin.framework.ext.mybatis.UserDataPower
;
import
com.laker.admin.module.sys.entity.SysUser
;
import
com.laker.admin.module.sys.mapper.SysDeptMapper
;
...
...
@@ -20,24 +22,25 @@ import java.util.List;
* @author laker
* @since 2021-08-05
*/
@LakerTrace
(
spanType
=
SpanType
.
Service
)
@Service
public
class
SysUserServiceImpl
extends
ServiceImpl
<
SysUserMapper
,
SysUser
>
implements
ISysUserService
{
@Autowired
SysDeptMapper
deptMapper
;
@LakerTrace
@LakerTrace
(
spanType
=
SpanType
.
Service
)
@Override
public
SysUser
getUserAndDeptById
(
Long
userId
)
{
SysUser
user
=
this
.
getById
(
userId
);
if
(
user
==
null
)
{
return
null
;
}
user
.
setDept
(
deptMapper
.
selectById
(
user
.
getDeptId
(
)));
TraceCodeBlock
.
trace
(
"deptMapper.selectById"
,
value
->
user
.
setDept
(
deptMapper
.
selectById
(
user
.
getDeptId
()
)));
return
user
;
}
@Override
public
List
<
UserDataPower
>
getUserDataPowers
(
Long
userId
)
{
return
this
.
getBaseMapper
().
getUserDataPowers
(
userId
);
return
TraceCodeBlock
.
trace
(
"sysUserMapper.getUserDataPowers"
,
()
->
this
.
getBaseMapper
().
getUserDataPowers
(
userId
)
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录