Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
kt-keystone
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
kt-keystone
Commits
200471e8
提交
200471e8
authored
7月 08, 2022
作者:
黄承天
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(user):新增静态方法findNowUserId()获取当前登录用户id(只要id而不用整个信息对象) 静态方法无需依赖注入 避免循环依赖
上级
c99571aa
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
35 行增加
和
20 行删除
+35
-20
MetaFieldHandler.java
...ase/src/main/java/org/matrix/config/MetaFieldHandler.java
+2
-6
UserService.java
.../main/java/org/matrix/local/service/impl/UserService.java
+33
-14
没有找到文件。
kt-base/src/main/java/org/matrix/config/MetaFieldHandler.java
浏览文件 @
200471e8
...
@@ -3,7 +3,6 @@ package org.matrix.config;
...
@@ -3,7 +3,6 @@ package org.matrix.config;
import
com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
;
import
com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
;
import
org.apache.ibatis.reflection.MetaObject
;
import
org.apache.ibatis.reflection.MetaObject
;
import
org.matrix.local.service.impl.UserService
;
import
org.matrix.local.service.impl.UserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.RequestContextHolder
;
...
@@ -30,8 +29,7 @@ public class MetaFieldHandler implements MetaObjectHandler {
...
@@ -30,8 +29,7 @@ public class MetaFieldHandler implements MetaObjectHandler {
this
.
strictInsertFill
(
metaObject
,
"createTime"
,
LocalDateTime
.
class
,
LocalDateTime
.
now
());
this
.
strictInsertFill
(
metaObject
,
"createTime"
,
LocalDateTime
.
class
,
LocalDateTime
.
now
());
this
.
strictInsertFill
(
metaObject
,
"updateTime"
,
LocalDateTime
.
class
,
LocalDateTime
.
now
());
this
.
strictInsertFill
(
metaObject
,
"updateTime"
,
LocalDateTime
.
class
,
LocalDateTime
.
now
());
//插入创建用户 与 更新用户id
//插入创建用户 与 更新用户id
String
sessionId
=
RequestContextHolder
.
currentRequestAttributes
().
getSessionId
();
Long
loginUserId
=
UserService
.
findNowUserId
();
Long
loginUserId
=
UserService
.
getSessionMap
().
getOrDefault
(
sessionId
,
0L
);
this
.
strictInsertFill
(
metaObject
,
"createUserId"
,
Long
.
class
,
loginUserId
);
this
.
strictInsertFill
(
metaObject
,
"createUserId"
,
Long
.
class
,
loginUserId
);
this
.
strictInsertFill
(
metaObject
,
"updateUserId"
,
Long
.
class
,
loginUserId
);
this
.
strictInsertFill
(
metaObject
,
"updateUserId"
,
Long
.
class
,
loginUserId
);
}
}
...
@@ -45,9 +43,7 @@ public class MetaFieldHandler implements MetaObjectHandler {
...
@@ -45,9 +43,7 @@ public class MetaFieldHandler implements MetaObjectHandler {
// 修改 更新时间
// 修改 更新时间
this
.
strictUpdateFill
(
metaObject
,
"updateTime"
,
LocalDateTime
.
class
,
LocalDateTime
.
now
());
this
.
strictUpdateFill
(
metaObject
,
"updateTime"
,
LocalDateTime
.
class
,
LocalDateTime
.
now
());
// 修改 更新用户
// 修改 更新用户
String
sessionId
=
RequestContextHolder
.
currentRequestAttributes
().
getSessionId
();
Long
loginUserId
=
UserService
.
findNowUserId
();
Long
loginUserId
=
UserService
.
getSessionMap
().
getOrDefault
(
sessionId
,
0L
);
this
.
strictUpdateFill
(
metaObject
,
"updateUserId"
,
Long
.
class
,
loginUserId
);
this
.
strictUpdateFill
(
metaObject
,
"updateUserId"
,
Long
.
class
,
loginUserId
);
}
}
}
}
kt-user/src/main/java/org/matrix/local/service/impl/UserService.java
浏览文件 @
200471e8
...
@@ -59,19 +59,21 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
...
@@ -59,19 +59,21 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
* @param user 用户信息对象
* @param user 用户信息对象
*/
*/
public
void
create
(
User
user
)
{
public
void
create
(
User
user
)
{
//检查是否附带了id
if
(
nonNull
(
user
))
{
Optional
.
ofNullable
(
user
).
map
(
User:
:
getId
)
//检查是否附带了id
.
ifPresent
(
id
->
{
Optional
.
of
(
user
).
map
(
User:
:
getId
)
throw
new
RuntimeException
(
"新增数据不可附带id"
);
.
ifPresent
(
id
->
{
});
throw
new
RuntimeException
(
"新增数据不可附带id"
);
//检查该账号是否已存在
});
Optional
.
ofNullable
(
userMapper
.
selectOne
(
Wrappers
.<
User
>
lambdaQuery
().
eq
(
User:
:
getAccount
,
user
.
getAccount
())))
//检查该账号是否已存在
.
ifPresent
(
id
->
{
Optional
.
ofNullable
(
userMapper
.
selectOne
(
Wrappers
.<
User
>
lambdaQuery
().
eq
(
User:
:
getAccount
,
user
.
getAccount
())))
throw
new
RuntimeException
(
format
(
"该账号已存在 : %s"
,
user
.
getAccount
()));
.
ifPresent
(
id
->
{
});
throw
new
RuntimeException
(
format
(
"该账号已存在 : %s"
,
user
.
getAccount
()));
//保存
});
userMapper
.
insert
(
user
);
//保存
log
.
info
(
"[用户] 新增用户 : {}"
,
user
.
getAccount
());
userMapper
.
insert
(
user
);
log
.
info
(
"[用户] 新增用户 : {}"
,
user
.
getAccount
());
}
}
}
/**
/**
...
@@ -167,7 +169,6 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
...
@@ -167,7 +169,6 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
@Getter
@Getter
private
static
Map
<
String
,
Long
>
sessionMap
=
new
HashMap
<>();
private
static
Map
<
String
,
Long
>
sessionMap
=
new
HashMap
<>();
/**
/**
* 用户登录
* 用户登录
* 用户登录成功后 缓存其对应的sessionId到Map中
* 用户登录成功后 缓存其对应的sessionId到Map中
...
@@ -238,6 +239,24 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
...
@@ -238,6 +239,24 @@ public class UserService extends ServiceImpl<UserMapper, User> implements IUserS
return
findNow
(
sessionId
);
return
findNow
(
sessionId
);
}
}
/**
* 查询当前登录的用户id
* 根据sessionId查出其当前登录的user的id
* sessionId从上下文中取 无需输入
* 如果没有session信息则返回0
* 该方法为静态方法 无需依赖注入
*
* @return 当前登录的user的信息
*/
public
static
Long
findNowUserId
()
{
try
{
String
sessionId
=
RequestContextHolder
.
currentRequestAttributes
().
getSessionId
();
return
sessionMap
.
getOrDefault
(
sessionId
,
0L
);
}
catch
(
Exception
e
)
{
return
0L
;
}
}
/**
/**
* 登出用户
* 登出用户
* 输入sessionId 清除其在Map中的信息
* 输入sessionId 清除其在Map中的信息
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论