From c25dbf2de3a7498ea6f6f3abaaf25531c902a77d Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Mon, 15 Apr 2019 11:20:30 +0800 Subject: [PATCH] =?UTF-8?q?[user=20login][=E4=BF=AE=E6=94=B9]:unionId?= =?UTF-8?q?=E4=BC=98=E5=85=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxUserGrantController.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index 8982c188e..2093d10e9 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -154,6 +154,7 @@ public class WxUserGrantController extends BaseController { String session_key = null; String openId = null; String unionId = null; + boolean bHaveUnionId = false; try { WxMaJscode2SessionResult session = wxMaService.jsCode2SessionInfo(code); @@ -161,6 +162,9 @@ public class WxUserGrantController extends BaseController { session_key = session.getSessionKey(); openId = session.getOpenid(); unionId = session.getUnionid(); + if(StringUtils.isNotBlank(unionId)) { + bHaveUnionId = true; + } logger.info("session_key: " + session_key + ", openId: " + openId + ", unionId: " + unionId); resultMap.put("openId", openId); @@ -176,22 +180,22 @@ public class WxUserGrantController extends BaseController { user.setTenantId(wxAuthorizerInfo.getTenantId()); user.setAppId(appId); user.setOpenId(openId); - if(StringUtils.isNotBlank(unionId)) { + if(bHaveUnionId) { user.setUnionId(unionId); } int score = 0; int credit = 0; try { - WxCUser user1 = wxCUserService.getByOpenId(user); - boolean bFoundByUnionId = false; - if(user1 == null && StringUtils.isNotBlank(unionId)) { + WxCUser user1 = null; + if(bHaveUnionId) { + // 优先根据unionId查询 WxCUser userQ = new WxCUser(); userQ.setTenantId(wxAuthorizerInfo.getTenantId()); userQ.setUnionId(unionId); user1 = wxCUserService.getByObject(userQ); - if(user1 != null) { - bFoundByUnionId = true; - } + } + if(user1 == null) { + user1 = wxCUserService.getByOpenId(user); } if (user1 != null) { token = user1.createToken(new Date()); @@ -202,10 +206,8 @@ public class WxUserGrantController extends BaseController { user1.setRegisterIp(ipaddress); user1.setSessionKey(session_key); - if(bFoundByUnionId) { - user1.setOpenId(openId); - } - if(StringUtils.isNotBlank(unionId)) { + user1.setOpenId(openId); + if(bHaveUnionId) { user1.setUnionId(unionId); } if(StringUtils.isNotBlank(wxAuthorizerInfo.getOpenAppid())) {