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
be19cd09
Commit
be19cd09
authored
Nov 04, 2019
by
xiaoguang.xu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改手机号时,修改微信表中手机号.
parent
539adab6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
88 additions
and
11 deletions
+88
-11
CacheEvictPhoneNoUpdateEventListener.java
...roup/xyqb/event/CacheEvictPhoneNoUpdateEventListener.java
+19
-2
WechatPhoneNoUpdateEventListener.java
...antgroup/xyqb/event/WechatPhoneNoUpdateEventListener.java
+33
-0
ISessionService.java
...a/cn/quantgroup/xyqb/service/session/ISessionService.java
+7
-0
SessionServiceImpl.java
...ntgroup/xyqb/service/session/impl/SessionServiceImpl.java
+27
-7
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+2
-2
No files found.
src/main/java/cn/quantgroup/xyqb/event/CacheEvictPhoneNoUpdateEventListener.java
View file @
be19cd09
package
cn
.
quantgroup
.
xyqb
.
event
;
package
cn
.
quantgroup
.
xyqb
.
event
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Slf4j
@Slf4j
@Component
@Component
public
class
CacheEvictPhoneNoUpdateEventListener
implements
ApplicationListener
<
PhoneNoUpdateEvent
>
{
public
class
CacheEvictPhoneNoUpdateEventListener
implements
ApplicationListener
<
PhoneNoUpdateEvent
>
{
...
@@ -14,12 +19,24 @@ public class CacheEvictPhoneNoUpdateEventListener implements ApplicationListener
...
@@ -14,12 +19,24 @@ public class CacheEvictPhoneNoUpdateEventListener implements ApplicationListener
@Autowired
@Autowired
private
IUserService
userService
;
private
IUserService
userService
;
@Autowired
private
ISessionService
sessionService
;
@Override
@Override
public
void
onApplicationEvent
(
PhoneNoUpdateEvent
event
)
{
public
void
onApplicationEvent
(
PhoneNoUpdateEvent
event
)
{
String
oldPhoneNo
=
event
.
getOldPhoneNo
();
String
oldPhoneNo
=
event
.
getOldPhoneNo
();
User
user
=
event
.
getUser
();
User
user
=
event
.
getUser
();
userService
.
userCacheEvict
(
user
.
getUuid
(),
oldPhoneNo
);
//todo session 处理
List
<
SessionStruct
>
sessionStructList
=
sessionService
.
findByUserId
(
user
.
getId
());
for
(
SessionStruct
sessionStruct
:
sessionStructList
)
{
SessionValue
values
=
sessionStruct
.
getValues
();
User
sessionUser
=
values
.
getUser
();
//修改 session 中的手机号
sessionUser
.
setPhoneNo
(
user
.
getPhoneNo
());
values
.
setUser
(
sessionUser
);
}
sessionService
.
persistSession
(
sessionStructList
);
userService
.
userCacheEvict
(
user
.
getUuid
(),
oldPhoneNo
);
}
}
}
}
src/main/java/cn/quantgroup/xyqb/event/
Record
PhoneNoUpdateEventListener.java
→
src/main/java/cn/quantgroup/xyqb/event/
Wechat
PhoneNoUpdateEventListener.java
View file @
be19cd09
package
cn
.
quantgroup
.
xyqb
.
event
;
package
cn
.
quantgroup
.
xyqb
.
event
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
import
lombok.extern.slf4j.Slf4j
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.service.wechat.IWechatService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
/**
import
java.util.Objects
;
* 记录手机号变更情况
*
* @author 徐小光
*/
@Slf4j
@Component
@Component
public
class
RecordPhoneNoUpdateEventListener
implements
ApplicationListener
<
PhoneNoUpdateEvent
>
{
public
class
WechatPhoneNoUpdateEventListener
implements
ApplicationListener
<
PhoneNoUpdateEvent
>
{
@Autowired
private
IWechatService
wechatService
;
@Override
@Override
public
void
onApplicationEvent
(
PhoneNoUpdateEvent
event
)
{
public
void
onApplicationEvent
(
PhoneNoUpdateEvent
event
)
{
String
oldPhoneNo
=
event
.
getOldPhoneNo
();
String
oldPhoneNo
=
event
.
getOldPhoneNo
();
User
user
=
event
.
getUser
();
User
user
=
event
.
getUser
();
//todo 表纪录
WechatUserInfo
userInfo
=
wechatService
.
findWechatUserInfoByPhoneNo
(
oldPhoneNo
);
log
.
info
(
"userId:{},旧手机号:{},新手机号:{}"
,
user
.
getId
(),
oldPhoneNo
,
user
.
getPhoneNo
());
if
(
Objects
.
isNull
(
userInfo
))
{
return
;
}
if
(
Objects
.
isNull
(
userInfo
.
getPhoneNo
()))
{
return
;
}
userInfo
.
setPhoneNo
(
user
.
getPhoneNo
());
wechatService
.
saveWechatUserInfo
(
userInfo
);
}
}
}
}
src/main/java/cn/quantgroup/xyqb/service/session/ISessionService.java
View file @
be19cd09
...
@@ -6,6 +6,8 @@ import cn.quantgroup.xyqb.model.LoginProperties;
...
@@ -6,6 +6,8 @@ import cn.quantgroup.xyqb.model.LoginProperties;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionStruct
;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
java.util.List
;
/**
/**
* Created by 11 on 2016/12/28.
* Created by 11 on 2016/12/28.
*/
*/
...
@@ -29,4 +31,9 @@ public interface ISessionService {
...
@@ -29,4 +31,9 @@ public interface ISessionService {
void
deleteByUserId
(
long
userId
);
void
deleteByUserId
(
long
userId
);
void
deleteUserCatch
(
User
user
);
void
deleteUserCatch
(
User
user
);
List
<
SessionStruct
>
findByUserId
(
long
userId
);
void
persistSession
(
List
<
SessionStruct
>
sessionStructList
);
}
}
src/main/java/cn/quantgroup/xyqb/service/session/impl/SessionServiceImpl.java
View file @
be19cd09
...
@@ -9,14 +9,12 @@ import cn.quantgroup.xyqb.model.session.SessionStruct;
...
@@ -9,14 +9,12 @@ import cn.quantgroup.xyqb.model.session.SessionStruct;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
cn.quantgroup.xyqb.model.session.SessionValue
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.ISessionService
;
import
cn.quantgroup.xyqb.service.session.aspect.UserBtRegisterFill
;
import
cn.quantgroup.xyqb.service.session.aspect.UserBtRegisterFill
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.util.MqUtils
;
import
cn.quantgroup.xyqb.util.MqUtils
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Caching
;
import
org.springframework.cache.annotation.Caching
;
import
org.springframework.context.ApplicationEventPublisher
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
...
@@ -35,10 +33,6 @@ public class SessionServiceImpl implements ISessionService {
...
@@ -35,10 +33,6 @@ public class SessionServiceImpl implements ISessionService {
@Resource
@Resource
private
RedisTemplate
<
String
,
String
>
stringRedisTemplate
;
private
RedisTemplate
<
String
,
String
>
stringRedisTemplate
;
@Resource
private
IUserService
userService
;
@Resource
private
ApplicationEventPublisher
applicationEventPublisher
;
/**
/**
* 更新session
* 更新session
...
@@ -101,7 +95,8 @@ public class SessionServiceImpl implements ISessionService {
...
@@ -101,7 +95,8 @@ public class SessionServiceImpl implements ISessionService {
/**
/**
* 每个渠道都有不同的 session
* 每个渠道都有不同的 session
* @param userId 用户 ID
*
* @param userId 用户 ID
* @param properties baitiao/xyqb/vcc ... + 用户注册来源
* @param properties baitiao/xyqb/vcc ... + 用户注册来源
* @return redisKey. 用来标识这个渠道的用户 Session 是否存在
* @return redisKey. 用来标识这个渠道的用户 Session 是否存在
*/
*/
...
@@ -227,6 +222,31 @@ public class SessionServiceImpl implements ISessionService {
...
@@ -227,6 +222,31 @@ public class SessionServiceImpl implements ISessionService {
}
}
@Override
public
List
<
SessionStruct
>
findByUserId
(
long
userId
)
{
List
<
SessionStruct
>
sessionStructList
=
new
ArrayList
<>();
String
setKey
=
getUserSessionSetKey
(
userId
);
Set
<
String
>
userIdKeys
=
stringRedisTemplate
.
opsForSet
().
members
(
setKey
);
if
(
CollectionUtils
.
isEmpty
(
userIdKeys
))
{
return
sessionStructList
;
}
for
(
String
userIdKey
:
userIdKeys
)
{
String
sessionId
=
stringRedisTemplate
.
opsForValue
().
get
(
userIdKey
);
SessionStruct
sessionStruct
=
findSessionBySessionId
(
sessionId
);
sessionStructList
.
add
(
sessionStruct
);
}
return
sessionStructList
;
}
@Override
public
void
persistSession
(
List
<
SessionStruct
>
sessionStructList
)
{
for
(
SessionStruct
sessionStruct
:
sessionStructList
)
{
String
sid
=
sessionStruct
.
getSid
();
SessionValue
values
=
sessionStruct
.
getValues
();
persistSession
(
sid
,
values
);
}
}
/**
/**
* 获取用户的会话缓存Set的Redis-Key
* 获取用户的会话缓存Set的Redis-Key
*
*
...
...
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
be19cd09
...
@@ -212,13 +212,13 @@ public class UserServiceImpl implements IUserService {
...
@@ -212,13 +212,13 @@ public class UserServiceImpl implements IUserService {
public
User
modifyPhoneNo
(
String
oldPhoneNo
,
String
newPhoneNo
)
{
public
User
modifyPhoneNo
(
String
oldPhoneNo
,
String
newPhoneNo
)
{
//1. 判断新手机号是否存在
//1. 判断新手机号是否存在
User
newPhoneUser
=
userRepository
.
findByPhoneNo
(
newPhoneNo
);
User
newPhoneUser
=
userRepository
.
findByPhoneNo
(
newPhoneNo
);
if
(
Objects
.
is
Null
(
newPhoneUser
))
{
if
(
Objects
.
non
Null
(
newPhoneUser
))
{
//新手机号已存在
//新手机号已存在
return
null
;
return
null
;
}
}
User
oldPhoneUser
=
userRepository
.
findByPhoneNo
(
oldPhoneNo
);
User
oldPhoneUser
=
userRepository
.
findByPhoneNo
(
oldPhoneNo
);
if
(
Objects
.
isNull
(
oldPhoneUser
))
{
if
(
Objects
.
isNull
(
oldPhoneUser
))
{
//这不是扯了.旧手机号
也
不存在.
//这不是扯了.旧手机号不存在.
return
null
;
return
null
;
}
}
//2. 执行修改
//2. 执行修改
...
...
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