Commit 9bd10fb3 authored by 董建华's avatar 董建华

修改查询条件

parent ae901acf
...@@ -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")
......
...@@ -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 findByOpenIdAndAppName(String openId, String appName);
WechatUserInfo findByPhoneNo(String phoneNo); WechatUserInfo findByPhoneNoAndAppName(String phoneNo, String appName);
WechatUserInfo findByUserId(Long userId); WechatUserInfo findByUserIdAndAppName(Long userId, String appName);
long countByOpenId(String openId); long countByOpenIdAndAppName(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 dissociateByUserIdAndAppName(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);
} }
...@@ -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.findByOpenIdAndAppName(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.countByOpenIdAndAppName(userInfo.getOpenId(),"xyqb");
if (count > 0) { if (count > 0) {
//注意,这里会抛异常(5000/total),WeChatController中已捕获处理 //注意,这里会抛异常(5000/total),WeChatController中已捕获处理
return weChatUserRepository.findByOpenId(userInfo.getOpenId()); return weChatUserRepository.findByOpenIdAndAppName(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.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); 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.findByPhoneNoAndAppName(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.findByUserIdAndAppName(userId,"xyqb");
} }
@Override @Override
public int forbiddenUserWeChat(Long userId) { public int forbiddenUserWeChat(Long userId) {
return weChatUserRepository.dissociateByUserId(userId); return weChatUserRepository.dissociateByUserIdAndAppName(userId,"xyqb");
} }
} }
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);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment