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
ff894e42
Commit
ff894e42
authored
Sep 22, 2025
by
常学朋
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-202509191033-userSession' into 'master'
Feature 202509191033 user session See merge request
!126
parents
c2ef13e0
2011ee1c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
30 additions
and
0 deletions
+30
-0
Constants.java
src/main/java/cn/quantgroup/xyqb/Constants.java
+2
-0
UserController.java
...n/quantgroup/xyqb/controller/external/UserController.java
+7
-0
IUserRepository.java
...n/java/cn/quantgroup/xyqb/repository/IUserRepository.java
+1
-0
IUserTagRepository.java
...ava/cn/quantgroup/xyqb/repository/IUserTagRepository.java
+2
-0
SessionServiceImpl.java
...ntgroup/xyqb/service/session/impl/SessionServiceImpl.java
+18
-0
No files found.
src/main/java/cn/quantgroup/xyqb/Constants.java
View file @
ff894e42
...
...
@@ -6,6 +6,8 @@ package cn.quantgroup.xyqb;
*/
public
interface
Constants
{
String
BIAN_LI_KA_BA_TOKEN_PREFIX
=
"jr-"
;
// zero fill with 4 chars...
String
ZERO_FILL_TEMPLATE
=
"%04d"
;
String
IMAGE_CAPTCHA_KEY
=
"img_captcha:"
;
...
...
src/main/java/cn/quantgroup/xyqb/controller/external/UserController.java
View file @
ff894e42
...
...
@@ -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
.
error
(
"当前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/repository/IUserRepository.java
View file @
ff894e42
...
...
@@ -54,5 +54,6 @@ public interface IUserRepository extends JpaRepository<User, Long>, JpaSpecifica
*
* @param userId 用户id
*/
@Transactional
void
deleteByIdAndTenantId
(
Long
userId
,
Integer
tenantId
);
}
src/main/java/cn/quantgroup/xyqb/repository/IUserTagRepository.java
View file @
ff894e42
...
...
@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.repository;
import
cn.quantgroup.xyqb.entity.UserTag
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
...
...
@@ -11,5 +12,6 @@ public interface IUserTagRepository extends JpaRepository<UserTag, Long>, JpaSpe
List
<
UserTag
>
findByUserIdInAndTenantId
(
List
<
Long
>
userIds
,
Integer
tenantId
);
@Transactional
void
deleteByUserIdAndTenantId
(
Long
userId
,
Integer
tenantId
);
}
src/main/java/cn/quantgroup/xyqb/service/session/impl/SessionServiceImpl.java
View file @
ff894e42
...
...
@@ -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
.
startsWith
(
Constants
.
BIAN_LI_KA_BA_TOKEN_PREFIX
)){
log
.
info
(
"token={},命中不能续期逻辑 id={}"
,
token
,
JSON
.
toJSONString
(
sessionValue
));
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