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
9bd10fb3
Commit
9bd10fb3
authored
May 27, 2020
by
董建华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改查询条件
parent
ae901acf
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
66 additions
and
19 deletions
+66
-19
WechatUserInfo.java
src/main/java/cn/quantgroup/xyqb/entity/WechatUserInfo.java
+4
-0
IWeChatUserRepository.java
.../cn/quantgroup/xyqb/repository/IWeChatUserRepository.java
+12
-10
WechatServiceImpl.java
...uantgroup/xyqb/service/wechat/impl/WechatServiceImpl.java
+9
-9
WechatTest.java
src/test/java/wechat/WechatTest.java
+41
-0
No files found.
src/main/java/cn/quantgroup/xyqb/entity/WechatUserInfo.java
View file @
9bd10fb3
...
@@ -24,6 +24,10 @@ public class WechatUserInfo extends BaseEntity implements Serializable {
...
@@ -24,6 +24,10 @@ public class WechatUserInfo extends BaseEntity implements Serializable {
private
String
openId
;
private
String
openId
;
@Column
(
name
=
"phone_no"
)
@Column
(
name
=
"phone_no"
)
private
String
phoneNo
=
""
;
private
String
phoneNo
=
""
;
@Column
(
name
=
"app_name"
)
private
String
appName
;
@Column
(
name
=
"union_id"
)
private
String
unionId
;
@Column
(
name
=
"nick_name"
)
@Column
(
name
=
"nick_name"
)
private
String
nickName
;
private
String
nickName
;
@Column
(
name
=
"sex"
)
@Column
(
name
=
"sex"
)
...
...
src/main/java/cn/quantgroup/xyqb/repository/IWeChatUserRepository.java
View file @
9bd10fb3
...
@@ -11,15 +11,17 @@ import static org.springframework.transaction.annotation.Propagation.MANDATORY;
...
@@ -11,15 +11,17 @@ 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
*
*/
*/
public
interface
IWeChatUserRepository
extends
JpaRepository
<
WechatUserInfo
,
Long
>
{
public
interface
IWeChatUserRepository
extends
JpaRepository
<
WechatUserInfo
,
Long
>
{
WechatUserInfo
findByOpenId
(
String
openId
);
WechatUserInfo
findByOpenId
AndAppName
(
String
openId
,
String
appName
);
WechatUserInfo
findByPhoneNo
(
String
phoneNo
);
WechatUserInfo
findByPhoneNo
AndAppName
(
String
phoneNo
,
String
appName
);
WechatUserInfo
findByUserId
(
Long
userId
);
WechatUserInfo
findByUserId
AndAppName
(
Long
userId
,
String
appName
);
long
countByOpenId
(
String
openId
);
long
countByOpenId
AndAppName
(
String
openId
,
String
appName
);
/**
/**
* 解除关联关系 -- 当前用户的已关联微信
* 解除关联关系 -- 当前用户的已关联微信
...
@@ -30,8 +32,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
...
@@ -30,8 +32,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1"
,
nativeQuery
=
true
)
@Query
(
value
=
"update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1
and app_name=?2
"
,
nativeQuery
=
true
)
int
dissociateByUserId
(
Long
userId
);
int
dissociateByUserId
AndAppName
(
Long
userId
,
String
appName
);
/**
/**
* 关联用户
* 关联用户
...
@@ -43,8 +45,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
...
@@ -43,8 +45,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
*/
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update wechat_userinfo set user_id=?1,phone_no=?2 where open_id=?3 and user_id is null"
,
nativeQuery
=
true
)
@Query
(
value
=
"update wechat_userinfo set user_id=?1,phone_no=?2 where open_id=?3 and user_id is null
and app_name=?4
"
,
nativeQuery
=
true
)
int
relateUser
(
Long
userId
,
String
phoneNo
,
String
openId
);
int
relateUser
(
Long
userId
,
String
phoneNo
,
String
openId
,
String
appName
);
/**
/**
* 解除关联关系 -- 包括:1、当前微信旧的关联用户;2、当前用户旧的关联微信
* 解除关联关系 -- 包括:1、当前微信旧的关联用户;2、当前用户旧的关联微信
...
@@ -56,6 +58,6 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
...
@@ -56,6 +58,6 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
*/
*/
@Transactional
(
propagation
=
MANDATORY
,
rollbackFor
=
Exception
.
class
)
@Transactional
(
propagation
=
MANDATORY
,
rollbackFor
=
Exception
.
class
)
@Modifying
@Modifying
@Query
(
value
=
"update wechat_userinfo set user_id=null,phone_no='*' where
open_id=?1 or user_id=?2
"
,
nativeQuery
=
true
)
@Query
(
value
=
"update wechat_userinfo set user_id=null,phone_no='*' where
(open_id=?1 or user_id=?2) and app_name=?3
"
,
nativeQuery
=
true
)
int
dissociateUser
(
String
openId
,
Long
userId
);
int
dissociateUser
(
String
openId
,
Long
userId
,
String
appName
);
}
}
src/main/java/cn/quantgroup/xyqb/service/wechat/impl/WechatServiceImpl.java
View file @
9bd10fb3
...
@@ -116,7 +116,7 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -116,7 +116,7 @@ public class WechatServiceImpl implements IWechatService {
@Override
@Override
public
WechatUserInfo
findWechatUserInfoFromDb
(
String
openId
)
{
public
WechatUserInfo
findWechatUserInfoFromDb
(
String
openId
)
{
return
weChatUserRepository
.
findByOpenId
(
openId
);
return
weChatUserRepository
.
findByOpenId
AndAppName
(
openId
,
"xyqb"
);
}
}
@Override
@Override
...
@@ -125,10 +125,10 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -125,10 +125,10 @@ public class WechatServiceImpl implements IWechatService {
if
(
Objects
.
isNull
(
userInfo
)
||
Objects
.
isNull
(
userInfo
.
getOpenId
()))
{
if
(
Objects
.
isNull
(
userInfo
)
||
Objects
.
isNull
(
userInfo
.
getOpenId
()))
{
return
null
;
return
null
;
}
}
long
count
=
weChatUserRepository
.
countByOpenId
(
userInfo
.
getOpenId
()
);
long
count
=
weChatUserRepository
.
countByOpenId
AndAppName
(
userInfo
.
getOpenId
(),
"xyqb"
);
if
(
count
>
0
)
{
if
(
count
>
0
)
{
//注意,这里会抛异常(5000/total),WeChatController中已捕获处理
//注意,这里会抛异常(5000/total),WeChatController中已捕获处理
return
weChatUserRepository
.
findByOpenId
(
userInfo
.
getOpenId
()
);
return
weChatUserRepository
.
findByOpenId
AndAppName
(
userInfo
.
getOpenId
(),
"xyqb"
);
}
}
if
(
null
==
userInfo
.
getPhoneNo
())
{
if
(
null
==
userInfo
.
getPhoneNo
())
{
userInfo
.
setPhoneNo
(
""
);
userInfo
.
setPhoneNo
(
""
);
...
@@ -164,18 +164,18 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -164,18 +164,18 @@ public class WechatServiceImpl implements IWechatService {
return
0
;
return
0
;
}
}
// Old - 当前openId的WechatUserInfo
// Old - 当前openId的WechatUserInfo
WechatUserInfo
wechatUserInfo
=
weChatUserRepository
.
findByOpenId
(
openId
);
WechatUserInfo
wechatUserInfo
=
weChatUserRepository
.
findByOpenId
AndAppName
(
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
);
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
);
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
(
"微信关联失败"
);
...
@@ -195,7 +195,7 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -195,7 +195,7 @@ public class WechatServiceImpl implements IWechatService {
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
if
(!
ValidationUtil
.
validatePhoneNo
(
phoneNo
))
{
return
null
;
return
null
;
}
}
return
weChatUserRepository
.
findByPhoneNo
(
phoneNo
);
return
weChatUserRepository
.
findByPhoneNo
AndAppName
(
phoneNo
,
"xyqb"
);
}
}
private
String
getTokenFromWechatServer
(
String
code
)
{
private
String
getTokenFromWechatServer
(
String
code
)
{
...
@@ -222,12 +222,12 @@ public class WechatServiceImpl implements IWechatService {
...
@@ -222,12 +222,12 @@ public class WechatServiceImpl implements IWechatService {
*/
*/
@Override
@Override
public
WechatUserInfo
queryByUserId
(
Long
userId
)
{
public
WechatUserInfo
queryByUserId
(
Long
userId
)
{
return
weChatUserRepository
.
findByUserId
(
userId
);
return
weChatUserRepository
.
findByUserId
AndAppName
(
userId
,
"xyqb"
);
}
}
@Override
@Override
public
int
forbiddenUserWeChat
(
Long
userId
)
{
public
int
forbiddenUserWeChat
(
Long
userId
)
{
return
weChatUserRepository
.
dissociateByUserId
(
userId
);
return
weChatUserRepository
.
dissociateByUserId
AndAppName
(
userId
,
"xyqb"
);
}
}
}
}
src/test/java/wechat/WechatTest.java
0 → 100644
View file @
9bd10fb3
package
wechat
;
import
cn.quantgroup.xyqb.Bootstrap
;
import
cn.quantgroup.xyqb.entity.WechatUserInfo
;
import
cn.quantgroup.xyqb.repository.IWeChatUserRepository
;
import
com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runners.Parameterized
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
/**
* @author :dongjianhua
* @date :Created in 2020/5/27 10:55
* @description:微信测试类
* @modified By:
* @version: 1.0
*/
@Slf4j
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
Bootstrap
.
class
)
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
public
class
WechatTest
{
@Resource
private
IWeChatUserRepository
weChatUserRepository
;
@Test
public
void
test
(){
WechatUserInfo
xyqb
=
weChatUserRepository
.
findByOpenIdAndAppName
(
"ou5l71eY3oO0oM88I-fp3pfC9sQg"
,
"xyqb"
);
log
.
info
(
"xyqb:{} "
,
xyqb
);
}
}
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