Ver Fonte

首付款 denglu

姜永辉 há 2 anos atrás
pai
commit
9bbbcbcab3

+ 12 - 7
src/main/java/com/dk/oauth/service/impl/AuthAccessTokenServiceImpl.java

@@ -300,10 +300,10 @@ public class AuthAccessTokenServiceImpl extends ServiceImpl<AuthAccessTokenMappe
             }
         }
 
-        Map<String, Object> mapReturn  = new HashMap<>();
-        mapReturn.put("userId",userWxLogin.getUserId());
-        mapReturn.put("userName",userWxLogin.getUserName());
-        mapReturn.put("userPhone",userWxLogin.getUserPhone());
+        Map<String, Object> mapReturn = new HashMap<>();
+        mapReturn.put("userId", userWxLogin.getUserId());
+        mapReturn.put("userName", userWxLogin.getUserName());
+        mapReturn.put("userPhone", userWxLogin.getUserPhone());
         return ResponseResultUtil.success(mapReturn);
 
     }
@@ -335,7 +335,7 @@ public class AuthAccessTokenServiceImpl extends ServiceImpl<AuthAccessTokenMappe
         }
 
         //用户无法通过openid或手机号查到 或 通过手机号查到了,但openid不同
-        if (userLogin == null || !userWxLogin.getUserWxid().equals(userLogin.getUserWxid())) {
+        if (userLogin == null) {
             //将其他微信用户的相同电话清空
             userMapper.cleanPhone(userWxLogin.getUserPhone());
             //注册
@@ -343,6 +343,11 @@ public class AuthAccessTokenServiceImpl extends ServiceImpl<AuthAccessTokenMappe
 
             userLogin = userMapper.getByWxid(userWxLogin.getUserWxid());
         }
+        if (!userWxLogin.getUserWxid().equals(userLogin.getUserWxid())) {
+            //通过手机号查到了用户,但是openid是空,更新上当前的openid
+            userMapper.updateWxid(userLogin.getUserId(), userWxLogin.getUserWxid());
+            userLogin.setUserWxid(userWxLogin.getUserWxid());
+        }
 
         userLogin.checkUserLogin();
         try {
@@ -562,7 +567,7 @@ public class AuthAccessTokenServiceImpl extends ServiceImpl<AuthAccessTokenMappe
      * @date : 2024-02-20 17:00
      */
     public ResponseResultVO<?> getWxQrCode(Map<String, Object> map) {
-        log.info("getWxQrCode=",map);
+        log.info("getWxQrCode=", map);
         //获取access token
         String accessToken = stringRedisTemplate.opsForValue().get(Constant.RedisConstant.REDIS_WECHAT_QRCODE_ACCESS_TOKEN.getName());
         if (accessToken == null) {
@@ -583,7 +588,7 @@ public class AuthAccessTokenServiceImpl extends ServiceImpl<AuthAccessTokenMappe
         param.put("page", "pages/welcome/welcome");
         param.put("scene", "s=" + map.get("openid").toString());
         param.put("check_path", false);
-        log.info("二维码参数=",param);
+        log.info("二维码参数=", param);
         //生成二维码接口地址
         String url = config.getUnlimitedQRCode() + accessToken;
         //文件名称