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
d272bb74
Commit
d272bb74
authored
Dec 29, 2021
by
killer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
销户
parent
58dbc884
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
102 additions
and
25 deletions
+102
-25
IWeChatUserRepository.java
.../cn/quantgroup/xyqb/repository/IWeChatUserRepository.java
+11
-1
UserServiceImpl.java
...cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
+1
-1
IWechatService.java
...ava/cn/quantgroup/xyqb/service/wechat/IWechatService.java
+10
-1
WechatServiceImpl.java
...uantgroup/xyqb/service/wechat/impl/WechatServiceImpl.java
+25
-22
xyqb-user2.log
xyqb-user2.log
+55
-0
No files found.
src/main/java/cn/quantgroup/xyqb/repository/IWeChatUserRepository.java
View file @
d272bb74
...
@@ -12,7 +12,6 @@ import static org.springframework.transaction.annotation.Propagation.MANDATORY;
...
@@ -12,7 +12,6 @@ import static org.springframework.transaction.annotation.Propagation.MANDATORY;
/**
/**
* Created by 11 on 2017/1/18.
* Created by 11 on 2017/1/18.
* modify by djh 20200527 http://confluence.quantgroup.cn/pages/viewpage.action?pageId=30657427
* modify by djh 20200527 http://confluence.quantgroup.cn/pages/viewpage.action?pageId=30657427
*
*/
*/
public
interface
IWeChatUserRepository
extends
JpaRepository
<
WechatUserInfo
,
Long
>
{
public
interface
IWeChatUserRepository
extends
JpaRepository
<
WechatUserInfo
,
Long
>
{
WechatUserInfo
findByOpenIdAndAppName
(
String
openId
,
String
appName
);
WechatUserInfo
findByOpenIdAndAppName
(
String
openId
,
String
appName
);
...
@@ -37,6 +36,17 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
...
@@ -37,6 +36,17 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
@Query
(
value
=
"update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1 and app_name=?2"
,
nativeQuery
=
true
)
@Query
(
value
=
"update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1 and app_name=?2"
,
nativeQuery
=
true
)
int
dissociateByUserIdAndAppName
(
Long
userId
,
String
appName
);
int
dissociateByUserIdAndAppName
(
Long
userId
,
String
appName
);
/**
* 解除商城用户与小程序和公众号关联关系
*
* @param userId 用户id
* @return 结果
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Query
(
value
=
"update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1 and app_name in ('xyqb', 'wuxi')"
,
nativeQuery
=
true
)
int
forbiddenXyqbAndWuxiUserByUserId
(
Long
userId
);
/**
/**
* 关联用户
* 关联用户
*
*
...
...
src/main/java/cn/quantgroup/xyqb/service/user/impl/UserServiceImpl.java
View file @
d272bb74
...
@@ -549,6 +549,6 @@ public class UserServiceImpl implements IUserService, IBaseController {
...
@@ -549,6 +549,6 @@ public class UserServiceImpl implements IUserService, IBaseController {
/* 清空缓存 */
/* 清空缓存 */
sessionService
.
deleteUserCatch
(
user
);
sessionService
.
deleteUserCatch
(
user
);
/* 禁用微信 */
/* 禁用微信 */
wechatService
.
forbidden
UserWeChat
(
user
.
getId
());
wechatService
.
forbidden
XyqbAndWuxiUserByUserId
(
user
.
getId
());
}
}
}
}
src/main/java/cn/quantgroup/xyqb/service/wechat/IWechatService.java
View file @
d272bb74
...
@@ -35,7 +35,16 @@ public interface IWechatService {
...
@@ -35,7 +35,16 @@ public interface IWechatService {
* @return
* @return
*/
*/
WechatUserInfo
queryByUserId
(
Long
userId
);
WechatUserInfo
queryByUserId
(
Long
userId
);
WechatUserInfo
queryByUserId
(
Long
userId
,
String
appName
);
WechatUserInfo
queryByUserId
(
Long
userId
,
String
appName
);
int
forbiddenUserWeChat
(
Long
userId
);
int
forbiddenUserWeChat
(
Long
userId
);
/**
* 通过userId解除商城用户与小程序和公众号关联关系
*
* @param userId 用户id
* @return 禁用结果
*/
int
forbiddenXyqbAndWuxiUserByUserId
(
Long
userId
);
}
}
src/main/java/cn/quantgroup/xyqb/service/wechat/impl/WechatServiceImpl.java
View file @
d272bb74
...
@@ -117,20 +117,20 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -117,20 +117,20 @@ public class WechatServiceImpl implements IWechatService {
@Override
@Override
public
WechatUserInfo
findWechatUserInfoFromDb
(
String
openId
)
{
public
WechatUserInfo
findWechatUserInfoFromDb
(
String
openId
)
{
return
weChatUserRepository
.
findByOpenIdAndAppName
(
openId
,
"xyqb"
);
return
weChatUserRepository
.
findByOpenIdAndAppName
(
openId
,
"xyqb"
);
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
WechatUserInfo
saveWechatUserInfo
(
WechatUserInfo
userInfo
)
{
public
WechatUserInfo
saveWechatUserInfo
(
WechatUserInfo
userInfo
)
{
log
.
info
(
"微信信息保存开始:{}"
,
JSON
.
toJSONString
(
userInfo
));
log
.
info
(
"微信信息保存开始:{}"
,
JSON
.
toJSONString
(
userInfo
));
if
(
Objects
.
isNull
(
userInfo
)
||
Objects
.
isNull
(
userInfo
.
getOpenId
()))
{
if
(
Objects
.
isNull
(
userInfo
)
||
Objects
.
isNull
(
userInfo
.
getOpenId
()))
{
return
null
;
return
null
;
}
}
long
count
=
weChatUserRepository
.
countByOpenIdAndAppName
(
userInfo
.
getOpenId
(),
"xyqb"
);
long
count
=
weChatUserRepository
.
countByOpenIdAndAppName
(
userInfo
.
getOpenId
(),
"xyqb"
);
if
(
count
>
0
)
{
if
(
count
>
0
)
{
//注意,这里会抛异常(5000/total),WeChatController中已捕获处理
//注意,这里会抛异常(5000/total),WeChatController中已捕获处理
return
weChatUserRepository
.
findByOpenIdAndAppName
(
userInfo
.
getOpenId
(),
"xyqb"
);
return
weChatUserRepository
.
findByOpenIdAndAppName
(
userInfo
.
getOpenId
(),
"xyqb"
);
}
}
if
(
null
==
userInfo
.
getPhoneNo
())
{
if
(
null
==
userInfo
.
getPhoneNo
())
{
userInfo
.
setPhoneNo
(
""
);
userInfo
.
setPhoneNo
(
""
);
...
@@ -151,9 +151,9 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -151,9 +151,9 @@ public class WechatServiceImpl implements IWechatService {
userInfo
=
userInfo
.
convertEmoji
();
userInfo
=
userInfo
.
convertEmoji
();
WechatUserInfo
wechatUserInfo
=
weChatUserRepository
.
save
(
userInfo
);
WechatUserInfo
wechatUserInfo
=
weChatUserRepository
.
save
(
userInfo
);
WechatEventMsg
wechatEventMsg
=
WechatEventMsg
.
builder
()
WechatEventMsg
wechatEventMsg
=
WechatEventMsg
.
builder
()
.
userId
(
wechatUserInfo
.
getUserId
())
.
userId
(
wechatUserInfo
.
getUserId
())
.
openId
(
wechatUserInfo
.
getOpenId
())
.
openId
(
wechatUserInfo
.
getOpenId
())
.
build
();
.
build
();
applicationEventPublisher
.
publishEvent
(
new
WechatBindEvent
(
this
,
wechatEventMsg
));
applicationEventPublisher
.
publishEvent
(
new
WechatBindEvent
(
this
,
wechatEventMsg
));
return
wechatUserInfo
;
return
wechatUserInfo
;
}
}
...
@@ -166,27 +166,27 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -166,27 +166,27 @@ public class WechatServiceImpl implements IWechatService {
return
0
;
return
0
;
}
}
// Old - 当前openId的WechatUserInfo
// Old - 当前openId的WechatUserInfo
WechatUserInfo
wechatUserInfo
=
weChatUserRepository
.
findByOpenIdAndAppName
(
openId
,
"xyqb"
);
WechatUserInfo
wechatUserInfo
=
weChatUserRepository
.
findByOpenIdAndAppName
(
openId
,
"xyqb"
);
if
(
Objects
.
nonNull
(
wechatUserInfo
)
&&
Objects
.
equals
(
userId
,
wechatUserInfo
.
getUserId
())
&&
Objects
.
equals
(
openId
,
wechatUserInfo
.
getOpenId
()))
{
if
(
Objects
.
nonNull
(
wechatUserInfo
)
&&
Objects
.
equals
(
userId
,
wechatUserInfo
.
getUserId
())
&&
Objects
.
equals
(
openId
,
wechatUserInfo
.
getOpenId
()))
{
log
.
info
(
"微信关联成功:重复关联:跳过:[service]:userId:{},phoneNo:{},openId:{}"
,
userId
,
phoneNo
,
openId
);
log
.
info
(
"微信关联成功:重复关联:跳过:[service]:userId:{},phoneNo:{},openId:{}"
,
userId
,
phoneNo
,
openId
);
return
1
;
return
1
;
}
}
// 强制解除关联
// 强制解除关联
int
dissociate
=
weChatUserRepository
.
dissociateUser
(
openId
,
userId
,
"xyqb"
);
int
dissociate
=
weChatUserRepository
.
dissociateUser
(
openId
,
userId
,
"xyqb"
);
if
(
dissociate
<
1
)
{
if
(
dissociate
<
1
)
{
log
.
error
(
"微信关联失败:解绑条数<1:[service]:userId:{},phoneNo:{},openId:{}"
,
userId
,
phoneNo
,
openId
);
log
.
error
(
"微信关联失败:解绑条数<1:[service]:userId:{},phoneNo:{},openId:{}"
,
userId
,
phoneNo
,
openId
);
throw
new
WechatRelateUserException
(
"微信关联失败"
);
throw
new
WechatRelateUserException
(
"微信关联失败"
);
}
}
int
relate
=
weChatUserRepository
.
relateUser
(
userId
,
Optional
.
ofNullable
(
phoneNo
).
orElse
(
""
),
openId
,
"xyqb"
);
int
relate
=
weChatUserRepository
.
relateUser
(
userId
,
Optional
.
ofNullable
(
phoneNo
).
orElse
(
""
),
openId
,
"xyqb"
);
if
(
relate
<
1
)
{
if
(
relate
<
1
)
{
log
.
error
(
"微信关联失败:绑定条数<1:[service]:userId:{},phoneNo:{},openId:{}"
,
userId
,
phoneNo
,
openId
);
log
.
error
(
"微信关联失败:绑定条数<1:[service]:userId:{},phoneNo:{},openId:{}"
,
userId
,
phoneNo
,
openId
);
throw
new
WechatRelateUserException
(
"微信关联失败"
);
throw
new
WechatRelateUserException
(
"微信关联失败"
);
}
}
WechatEventMsg
wechatEventMsg
=
WechatEventMsg
.
builder
()
WechatEventMsg
wechatEventMsg
=
WechatEventMsg
.
builder
()
.
userId
(
userId
)
.
userId
(
userId
)
.
openId
(
openId
)
.
openId
(
openId
)
.
build
();
.
build
();
applicationEventPublisher
.
publishEvent
(
new
WechatBindEvent
(
this
,
wechatEventMsg
));
applicationEventPublisher
.
publishEvent
(
new
WechatBindEvent
(
this
,
wechatEventMsg
));
// Todo : 如果当前openId已关联其他用户,则解绑成功后要注销其登录session -- 考虑后暂时不执行,影响太大
// Todo : 如果当前openId已关联其他用户,则解绑成功后要注销其登录session -- 考虑后暂时不执行,影响太大
log
.
info
(
"微信关联成功:[service]:userId:{},phoneNo:{},openId:{},dissociate:{},relate:{},Old-WechatUserInfo:{}"
,
userId
,
phoneNo
,
openId
,
dissociate
,
relate
,
wechatUserInfo
);
log
.
info
(
"微信关联成功:[service]:userId:{},phoneNo:{},openId:{},dissociate:{},relate:{},Old-WechatUserInfo:{}"
,
userId
,
phoneNo
,
openId
,
dissociate
,
relate
,
wechatUserInfo
);
return
relate
;
return
relate
;
...
@@ -197,7 +197,7 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -197,7 +197,7 @@ public class WechatServiceImpl implements IWechatService {
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
return
null
;
return
null
;
}
}
return
weChatUserRepository
.
findByPhoneNoAndAppName
(
phoneNo
,
"xyqb"
);
return
weChatUserRepository
.
findByPhoneNoAndAppName
(
phoneNo
,
"xyqb"
);
}
}
private
String
getTokenFromWechatServer
(
String
code
)
{
private
String
getTokenFromWechatServer
(
String
code
)
{
...
@@ -222,30 +222,33 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -222,30 +222,33 @@ public class WechatServiceImpl implements IWechatService {
* @param userId - 用户标识
* @param userId - 用户标识
* @return
* @return
* @TODO 2021-10-14 修改 findByUserIdAndAppName 为 findFirstByUserIdAndAppNameOrderByCreatedAtDesc, 原因是存在有多个数据情况
* @TODO 2021-10-14 修改 findByUserIdAndAppName 为 findFirstByUserIdAndAppNameOrderByCreatedAtDesc, 原因是存在有多个数据情况
*
*/
*/
@Override
@Override
public
WechatUserInfo
queryByUserId
(
Long
userId
)
{
public
WechatUserInfo
queryByUserId
(
Long
userId
)
{
return
weChatUserRepository
.
findFirstByUserIdAndAppNameOrderByCreatedAtDesc
(
userId
,
"xyqb"
);
return
weChatUserRepository
.
findFirstByUserIdAndAppNameOrderByCreatedAtDesc
(
userId
,
"xyqb"
);
}
}
/**
/**
*
* @param userId
* @param userId
* @param appName
* @param appName
* @return
* @return
* @TODO 2021-10-14 修改 findByUserIdAndAppName 为 findFirstByUserIdAndAppNameOrderByCreatedAtDesc, 原因是存在有多个数据情况
* @TODO 2021-10-14 修改 findByUserIdAndAppName 为 findFirstByUserIdAndAppNameOrderByCreatedAtDesc, 原因是存在有多个数据情况
*/
*/
public
WechatUserInfo
queryByUserId
(
Long
userId
,
String
appName
)
{
public
WechatUserInfo
queryByUserId
(
Long
userId
,
String
appName
)
{
if
(
appName
==
null
||
""
.
equals
(
appName
.
trim
()))
{
if
(
appName
==
null
||
""
.
equals
(
appName
.
trim
()))
{
appName
=
"xyqb"
;
appName
=
"xyqb"
;
}
}
return
weChatUserRepository
.
findFirstByUserIdAndAppNameOrderByCreatedAtDesc
(
userId
,
appName
);
return
weChatUserRepository
.
findFirstByUserIdAndAppNameOrderByCreatedAtDesc
(
userId
,
appName
);
}
}
@Override
@Override
public
int
forbiddenUserWeChat
(
Long
userId
)
{
public
int
forbiddenUserWeChat
(
Long
userId
)
{
return
weChatUserRepository
.
dissociateByUserIdAndAppName
(
userId
,
"xyqb"
);
return
weChatUserRepository
.
dissociateByUserIdAndAppName
(
userId
,
"xyqb"
);
}
@Override
public
int
forbiddenXyqbAndWuxiUserByUserId
(
Long
userId
)
{
return
weChatUserRepository
.
forbiddenXyqbAndWuxiUserByUserId
(
userId
);
}
}
}
}
xyqb-user2.log
View file @
d272bb74
This diff is collapsed.
Click to expand it.
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