Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
head_group
xyqb-user2
Commits
266b48c7
Commit
266b48c7
authored
Sep 19, 2025
by
xuepeng.chang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户session
parent
c2ef13e0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
0 deletions
+25
-0
UserController.java
...n/quantgroup/xyqb/controller/external/UserController.java
+7
-0
SessionServiceImpl.java
...ntgroup/xyqb/service/session/impl/SessionServiceImpl.java
+18
-0
No files found.
src/main/java/cn/quantgroup/xyqb/controller/external/UserController.java
View file @
266b48c7
...
...
@@ -620,6 +620,13 @@ public class UserController implements IBaseController {
log
.
info
(
"当前token对应的用户非当前租户,userId:{},用户tenantId:{},入参tenantId:{},token:{}"
,
user
.
getId
(),
user
.
getTenantId
(),
tenantId
,
token
);
return
JsonResult
.
buildSuccessResult
(
null
,
tokenExchange
);
}
if
(
Objects
.
nonNull
(
user
)
&&
Objects
.
nonNull
(
user
.
getId
())){
User
userDb
=
userService
.
findById
(
user
.
getId
(),
tenantId
);
if
(
Objects
.
isNull
(
userDb
)){
log
.
info
(
"当前token对应的用户不存在,userId:{},用户tenantId:{},入参tenantId:{},token:{}"
,
user
.
getId
(),
user
.
getTenantId
(),
tenantId
,
token
);
return
JsonResult
.
buildSuccessResult
(
null
,
tokenExchange
);
}
}
tokenExchange
.
setLoginProperties
(
JSONObject
.
toJSONString
(
sessionStruct
.
getValues
().
getLoginProperties
()));
tokenExchange
.
setUserId
(
user
.
getId
());
...
...
src/main/java/cn/quantgroup/xyqb/service/session/impl/SessionServiceImpl.java
View file @
266b48c7
...
...
@@ -15,6 +15,7 @@ import cn.quantgroup.xyqb.service.http.IHttpService;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.aspect.UserBtRegisterFill
;
import
cn.quantgroup.xyqb.service.user.ILoginRecordService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.util.MqUtils
;
import
cn.quantgroup.xyqb.util.TenantUtil
;
import
com.alibaba.fastjson.JSON
;
...
...
@@ -48,6 +49,8 @@ public class SessionServiceImpl implements ISessionService {
@Resource
private
ILoginRecordService
loginRecordService
;
@Resource
private
IUserService
userService
;
@Value
(
"${token.prefix}"
)
private
String
prefix
;
...
...
@@ -209,6 +212,11 @@ public class SessionServiceImpl implements ISessionService {
@Override
public
void
persistSession
(
String
token
,
SessionValue
sessionValue
,
Long
time
,
Integer
tenantId
)
{
//
if
(!
token
.
contains
(
prefix
)){
log
.
info
(
"token={},命中不能续期逻辑 id={}"
,
token
,
sessionValue
.
getUser
().
getId
());
return
;
}
Timestamp
current
=
new
Timestamp
(
System
.
currentTimeMillis
());
if
(
sessionValue
==
null
)
{
sessionValue
=
new
SessionValue
();
...
...
@@ -235,6 +243,16 @@ public class SessionServiceImpl implements ISessionService {
stringRedisTemplate
.
opsForValue
().
set
(
key
,
json
,
time
,
TimeUnit
.
SECONDS
);
if
(
sessionValue
.
getUser
()
!=
null
)
{
User
user
=
sessionValue
.
getUser
();
// 只缓存存在的用户
if
(
Objects
.
nonNull
(
user
.
getId
())){
User
userDb
=
userService
.
findById
(
user
.
getId
(),
tenantId
);
if
(
Objects
.
isNull
(
userDb
)){
log
.
error
(
"当前token对应的用户不存在,userId:{},用户tenantId:{},入参tenantId:{},token:{}"
,
user
.
getId
(),
user
.
getTenantId
(),
tenantId
,
token
);
}
else
{
log
.
info
(
"[当前token对应的用户存在],userId:{},用户tenantId:{},入参tenantId:{},token:{}"
,
user
.
getId
(),
user
.
getTenantId
(),
tenantId
,
token
);
}
}
String
generateLoginPropertiesKey
=
generateLoginPropertiesKey
(
sessionValue
.
getUser
().
getId
(),
sessionValue
.
getLoginProperties
(),
tenantId
);
stringRedisTemplate
.
opsForValue
().
set
(
generateLoginPropertiesKey
,
token
,
time
,
TimeUnit
.
SECONDS
);
log
.
info
(
"[Session生命期延续],token:{},有效期:[24Hour]"
,
token
);
...
...
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