Quellcode durchsuchen

feat: 调整小程序授权登录的用户重复判断

caoliqin vor 1 Tag
Ursprung
Commit
6464aa016a

+ 7 - 1
fs-company-app/src/main/java/com/fs/app/controller/WxH5MpController.java

@@ -16,6 +16,7 @@ import me.chanjar.weixin.common.bean.WxOAuth2UserInfo;
 import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.api.WxMpService;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,7 +62,12 @@ public class WxH5MpController {
             WxOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(param.getCode());
             WxOAuth2UserInfo wxMpUser = wxMpService.getOAuth2Service().getUserInfo(wxMpOAuth2AccessToken, null);
 //            FsUser user = userService.selectFsUserByUnionid(wxMpUser.getUnionId());
-            FsUser user = userService.selectFsUserByMpOpenId(wxMpUser.getOpenid());
+            FsUser user;
+            if(StringUtils.isNotEmpty(wxMpUser.getUnionId())) {
+                user = userService.selectFsUserByUnionId(wxMpUser.getUnionId());
+            } else {
+                user = userService.selectFsUserByMpOpenId(wxMpUser.getOpenid());
+            }
             if (user != null) {
                 //修改
                 FsUser userMap = new FsUser();

+ 6 - 1
fs-user-app/src/main/java/com/fs/app/controller/WxCompanyUserController.java

@@ -75,6 +75,7 @@ public class WxCompanyUserController extends AppBaseController {
             WxMaJscode2SessionResult session = wxService.getUserService().getSessionInfo(param.getCode());
             this.logger.info(session.getSessionKey());
             this.logger.info(session.getOpenid());
+            this.logger.info(session.getUnionid());
             // 解密
             WxMaPhoneNumberInfo phoneNoInfo = wxService.getUserService().getPhoneNoInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
 //            WxMaUserInfo userInfo = wxService.getUserService().getUserInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
@@ -147,7 +148,11 @@ public class WxCompanyUserController extends AppBaseController {
 
             String ip = IpUtil.getRequestIp();
             if (user == null) {
-                user = userService.selectFsUserByMaOpenId(session.getOpenid());
+                if(StringUtils.isNotEmpty(session.getUnionid())){
+                    user = userService.selectFsUserByUnionId(session.getUnionid());
+                } else {
+                    user = userService.selectFsUserByMaOpenId(session.getOpenid());
+                }
                 if (user != null) {
                     //修改
                     FsUser userMap = new FsUser();

+ 8 - 1
fs-user-app/src/main/java/com/fs/app/controller/WxH5MpController.java

@@ -24,6 +24,7 @@ import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.api.WxMpMenuService;
 import me.chanjar.weixin.mp.api.WxMpService;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -77,12 +78,18 @@ public class WxH5MpController {
             // 根据销售后台设置的  是否需要单独注册会员 来判断是否需要设置销售的值
             CompanyUser companyUser = companyUserService.selectCompanyUserById(param.getCompanyUserId());
 
-        FsUser user = userService.selectFsUserByMpOpenId(wxMpUser.getOpenid());
+            FsUser user;
+            if(StringUtils.isNotEmpty(wxMpUser.getUnionId())) {
+                user = userService.selectFsUserByUnionId(wxMpUser.getUnionId());
+            } else {
+                user = userService.selectFsUserByMpOpenId(wxMpUser.getOpenid());
+            }
             if (user != null) {
                 //修改
                 FsUser userMap = new FsUser();
                 userMap.setUserId(user.getUserId());
                 userMap.setMpOpenId(wxMpUser.getOpenid());
+                userMap.setUnionId(wxMpUser.getUnionId());
                 userMap.setUpdateTime(new DateTime());
                 userMap.setAvatar(wxMpUser.getHeadImgUrl());
                 userMap.setNickname(wxMpUser.getNickname());