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
7bde5dec
Commit
7bde5dec
authored
Dec 01, 2020
by
董建华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
登出接口
parent
65b6c8c7
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
84 additions
and
3 deletions
+84
-3
UserController.java
...n/quantgroup/xyqb/controller/external/UserController.java
+24
-0
ISessionService.java
...a/cn/quantgroup/xyqb/service/session/ISessionService.java
+7
-0
SessionServiceImpl.java
...ntgroup/xyqb/service/session/impl/SessionServiceImpl.java
+27
-0
IUserService.java
...in/java/cn/quantgroup/xyqb/service/user/IUserService.java
+5
-0
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+21
-3
No files found.
src/main/java/cn/quantgroup/xyqb/controller/external/UserController.java
View file @
7bde5dec
...
...
@@ -463,6 +463,30 @@ public class UserController implements IBaseController {
return
JsonResult
.
buildSuccessResult
(
"token校验成功"
,
userModel
);
}
/**
* 登出接口
*
* @param channelId
* @param appChannel
* @param createdFrom
* @param key
* @param phoneNo
* @return
*/
@RequestMapping
(
"/logout"
)
public
JsonResult
logout
(
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
channelId
,
String
appChannel
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
Long
createdFrom
,
@RequestParam
(
required
=
false
,
defaultValue
=
"xyqb"
)
String
key
,
@RequestParam
(
name
=
"phoneNo"
)
String
phoneNo
)
{
Merchant
merchant
=
merchantService
.
findMerchantByName
(
key
);
if
(
merchant
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
"未知的连接"
,
null
);
}
userService
.
logout
(
channelId
,
appChannel
,
createdFrom
,
merchant
,
phoneNo
);
return
JsonResult
.
buildSuccessResult
(
"登出成功"
);
}
private
JsonResult
loginWithHttpBasic
(
Long
channelId
,
String
appChannel
,
Long
createdFrom
,
Merchant
merchant
,
String
dimension
,
HttpServletRequest
request
)
{
User
user
=
verificateUserNameAndPassword
(
request
);
if
(
user
==
null
)
{
...
...
src/main/java/cn/quantgroup/xyqb/service/session/ISessionService.java
View file @
7bde5dec
...
...
@@ -37,4 +37,11 @@ public interface ISessionService {
void
persistSession
(
List
<
SessionStruct
>
sessionStructList
);
/**
* 删除会话
* @param user
* @param loginProperties
*/
void
deleteSession
(
User
user
,
LoginProperties
loginProperties
);
}
src/main/java/cn/quantgroup/xyqb/service/session/impl/SessionServiceImpl.java
View file @
7bde5dec
...
...
@@ -251,6 +251,33 @@ public class SessionServiceImpl implements ISessionService {
}
}
@Override
public
void
deleteSession
(
User
user
,
LoginProperties
loginProperties
)
{
String
sessionId
=
findSessionIdByUserIdLoginProperties
(
user
.
getId
(),
loginProperties
);
SessionStruct
sessionStruct
=
null
;
if
(
null
!=
sessionId
)
{
if
(
StringUtils
.
length
(
sessionId
)
==
Constants
.
TOKEN_LENGTH
)
{
sessionStruct
=
findSessionBySessionId
(
sessionId
);
if
(
null
!=
sessionStruct
)
{
stringRedisTemplate
.
delete
(
Constants
.
Session
.
USER_SESSION_CACHE
+
sessionStruct
.
getSid
());
SessionValue
values
=
sessionStruct
.
getValues
();
String
key
=
generateLoginPropertiesKey
(
values
.
getUser
().
getId
(),
values
.
getLoginProperties
());
stringRedisTemplate
.
delete
(
key
);
}
}
else
{
log
.
warn
(
"真的会有这种情况吗?应该是不存在吧user:{},sessionId:{} "
,
user
,
sessionId
);
}
}
}
/**
* 获取用户的会话缓存Set的Redis-Key
*
...
...
src/main/java/cn/quantgroup/xyqb/service/user/IUserService.java
View file @
7bde5dec
...
...
@@ -95,4 +95,9 @@ public interface IUserService {
* @return
*/
List
<
User
>
findByUuidsOrUserIds
(
List
<
String
>
vals
,
Integer
type
);
/**
* 登出
*/
void
logout
(
Long
channelId
,
String
appChannel
,
Long
createdFrom
,
Merchant
merchant
,
String
phoneNo
);
}
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
7bde5dec
...
...
@@ -92,6 +92,7 @@ public class UserServiceImpl implements IUserService, IBaseController {
private
IContactService
contactService
;
@Resource
private
ILockIpv4Service
lockIpv4Service
;
@Override
// @Cacheable(value = "usercache", key = "'xyqbuser' + #phone", unless = "#result == null", cacheManager = "cacheManager")
public
User
findByPhoneInDb
(
String
phone
)
{
...
...
@@ -258,7 +259,7 @@ public class UserServiceImpl implements IUserService, IBaseController {
userHashMapping
=
userHashMappingRepository
.
findByPhoneNoMd5ShortAndPhoneNoMd5
(
value
,
md5Value
);
}
else
if
(
FindByMd5Enum
.
IDNO
.
getType
()
==
type
)
{
List
<
UserHashMapping
>
userHashMappings
=
userHashMappingRepository
.
findByIdNoMd5AndIdNoMd5Short
(
md5Value
,
value
);
if
(!
CollectionUtils
.
isEmpty
(
userHashMappings
))
{
if
(!
CollectionUtils
.
isEmpty
(
userHashMappings
))
{
//如果多个只返回最新的
userHashMapping
=
userHashMappings
.
stream
().
max
(
Comparator
.
comparing
(
UserHashMapping:
:
getId
)).
get
();
}
...
...
@@ -403,8 +404,8 @@ public class UserServiceImpl implements IUserService, IBaseController {
}
if
(
userExtInfo
!=
null
)
{
userFullResp
.
setIncomeType
(
userExtInfo
.
getIncomeEnum
().
ordinal
());
userFullResp
.
setIncomeRange
(
userExtInfo
.
getIncomeRangeEnum
()
==
null
?
IncomeRangeEnum
.
UNKNOWN
.
ordinal
():
userFullResp
.
setIncomeRange
(
userExtInfo
.
getIncomeRangeEnum
()
==
null
?
IncomeRangeEnum
.
UNKNOWN
.
ordinal
()
:
userExtInfo
.
getIncomeRangeEnum
().
ordinal
());
userFullResp
.
setOccupation
(
userExtInfo
.
getOccupationEnum
().
ordinal
());
userFullResp
.
setEducation
(
userExtInfo
.
getEducationEnum
().
ordinal
());
...
...
@@ -456,4 +457,21 @@ public class UserServiceImpl implements IUserService, IBaseController {
return
userRepository
.
findByUuidIn
(
vals
);
}
}
@Override
public
void
logout
(
Long
channelId
,
String
appChannel
,
Long
createdFrom
,
Merchant
merchant
,
String
phoneNo
)
{
User
user
=
findByPhoneWithCache
(
phoneNo
);
if
(
null
==
user
)
{
throw
new
UserNotExistException
(
"用户未找到"
);
}
LoginProperties
properties
=
LoginProperties
.
builder
()
.
channelId
(
channelId
)
.
createdFrom
(
createdFrom
)
.
appChannel
(
appChannel
)
.
merchantId
(
merchant
.
getId
())
.
merchantName
(
merchant
.
getName
())
.
build
();
sessionService
.
deleteSession
(
user
,
properties
);
}
}
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