| @@ -154,6 +154,7 @@ public class WxUserGrantController extends BaseController { | |||||
| String session_key = null; | String session_key = null; | ||||
| String openId = null; | String openId = null; | ||||
| String unionId = null; | String unionId = null; | ||||
| boolean bHaveUnionId = false; | |||||
| try { | try { | ||||
| WxMaJscode2SessionResult session = wxMaService.jsCode2SessionInfo(code); | WxMaJscode2SessionResult session = wxMaService.jsCode2SessionInfo(code); | ||||
| @@ -161,6 +162,9 @@ public class WxUserGrantController extends BaseController { | |||||
| session_key = session.getSessionKey(); | session_key = session.getSessionKey(); | ||||
| openId = session.getOpenid(); | openId = session.getOpenid(); | ||||
| unionId = session.getUnionid(); | unionId = session.getUnionid(); | ||||
| if(StringUtils.isNotBlank(unionId)) { | |||||
| bHaveUnionId = true; | |||||
| } | |||||
| logger.info("session_key: " + session_key + ", openId: " + openId + ", unionId: " + unionId); | logger.info("session_key: " + session_key + ", openId: " + openId + ", unionId: " + unionId); | ||||
| resultMap.put("openId", openId); | resultMap.put("openId", openId); | ||||
| @@ -176,22 +180,22 @@ public class WxUserGrantController extends BaseController { | |||||
| user.setTenantId(wxAuthorizerInfo.getTenantId()); | user.setTenantId(wxAuthorizerInfo.getTenantId()); | ||||
| user.setAppId(appId); | user.setAppId(appId); | ||||
| user.setOpenId(openId); | user.setOpenId(openId); | ||||
| if(StringUtils.isNotBlank(unionId)) { | |||||
| if(bHaveUnionId) { | |||||
| user.setUnionId(unionId); | user.setUnionId(unionId); | ||||
| } | } | ||||
| int score = 0; | int score = 0; | ||||
| int credit = 0; | int credit = 0; | ||||
| try { | 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(); | WxCUser userQ = new WxCUser(); | ||||
| userQ.setTenantId(wxAuthorizerInfo.getTenantId()); | userQ.setTenantId(wxAuthorizerInfo.getTenantId()); | ||||
| userQ.setUnionId(unionId); | userQ.setUnionId(unionId); | ||||
| user1 = wxCUserService.getByObject(userQ); | user1 = wxCUserService.getByObject(userQ); | ||||
| if(user1 != null) { | |||||
| bFoundByUnionId = true; | |||||
| } | |||||
| } | |||||
| if(user1 == null) { | |||||
| user1 = wxCUserService.getByOpenId(user); | |||||
| } | } | ||||
| if (user1 != null) { | if (user1 != null) { | ||||
| token = user1.createToken(new Date()); | token = user1.createToken(new Date()); | ||||
| @@ -202,10 +206,8 @@ public class WxUserGrantController extends BaseController { | |||||
| user1.setRegisterIp(ipaddress); | user1.setRegisterIp(ipaddress); | ||||
| user1.setSessionKey(session_key); | user1.setSessionKey(session_key); | ||||
| if(bFoundByUnionId) { | |||||
| user1.setOpenId(openId); | |||||
| } | |||||
| if(StringUtils.isNotBlank(unionId)) { | |||||
| user1.setOpenId(openId); | |||||
| if(bHaveUnionId) { | |||||
| user1.setUnionId(unionId); | user1.setUnionId(unionId); | ||||
| } | } | ||||
| if(StringUtils.isNotBlank(wxAuthorizerInfo.getOpenAppid())) { | if(StringUtils.isNotBlank(wxAuthorizerInfo.getOpenAppid())) { | ||||