diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index d97285ed6..700cedbc4 100755 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -222,33 +222,33 @@ public class WxUserGrantController extends BaseController { String token = null; String session_key = null; - String openId = "opvcM5IEkl0U5pNiHcN49Ens40jU"; + String openId = null; String unionId = null; boolean boolHaveUnionId = false; boolean boolFindByUnionId = false; Long userId = null; -// try { -// WxMaJscode2SessionResult session = wxMaService.jsCode2SessionInfo(code); -// logger.info("sessionResult: " + session); -// if (null != session) { -// logger.info("sessionResultDetail: [openid]" + session.getOpenid()+",[sessionkey]"+session.getSessionKey()+",[unionid]"+session.getUnionid()); + try { + WxMaJscode2SessionResult session = wxMaService.jsCode2SessionInfo(code); + logger.info("sessionResult: " + session); + if (null != session) { + logger.info("sessionResultDetail: [openid]" + session.getOpenid()+",[sessionkey]"+session.getSessionKey()+",[unionid]"+session.getUnionid()); + } + + //获取会话密钥(session_key) + session_key = session.getSessionKey(); + openId = session.getOpenid(); + unionId = session.getUnionid(); +// if (StringUtils.isNotBlank(unionId)) { +// boolHaveUnionId = true; // } -// -// //获取会话密钥(session_key) -// session_key = session.getSessionKey(); -// openId = session.getOpenid(); -// unionId = session.getUnionid(); -//// if (StringUtils.isNotBlank(unionId)) { -//// boolHaveUnionId = true; -//// } -// -// logger.info("session_key: " + session_key + ", openId: " + openId + ", unionId: " + unionId); -// resultMap.put("openId", openId); -// } catch (WxErrorException e) { -// logger.error(e.getMessage(), e); -// return new ResultData(ErrorCode.SESSION_KEY_DECODE_ERR, resultMap); -// } + + logger.info("session_key: " + session_key + ", openId: " + openId + ", unionId: " + unionId); + resultMap.put("openId", openId); + } catch (WxErrorException e) { + logger.error(e.getMessage(), e); + return new ResultData(ErrorCode.SESSION_KEY_DECODE_ERR, resultMap); + } HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String ipaddress = IPUtil.getIpAddr(request); @@ -277,7 +277,7 @@ public class WxUserGrantController extends BaseController { } if (oldUser != null) { // 已有用户 - token = oldUser.createToken(new Date()); + token = oldUser.createToken(new Date(),oldUser.getTenantId()); resultMap.put("token", token); request.setAttribute(Constant.LOGIN_USER_KEY, oldUser.getId()); @@ -357,7 +357,7 @@ public class WxUserGrantController extends BaseController { if(StringUtils.isNotBlank(wxMall.getParentTenantId())){ newUser.setParentTenantId(wxMall.getParentTenantId()); } - token = newUser.createToken(new Date()); + token = newUser.createToken(new Date(),newUser.getTenantId()); newUser.setRegisterIp(ipaddress); if (StringUtils.isNotBlank(sceneAddress) && diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java index dde09c8c0..517852483 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java @@ -134,11 +134,11 @@ public class WxCUser extends BaseCUserEntity { @io.swagger.annotations.ApiModelProperty(value="操作人ID",name="operatorId") private Long operatorId; - public String createToken(Date currentDate) { + public String createToken(Date currentDate,String tenantId) { if (this.getExpireTime() == null || this.getExpireTime().getTime() - Constant.H_EXPIRE < currentDate.getTime()) { //生成一个token - this.setToken(UUID.randomUUID().toString()+Constant.TOKEN_WXC_END); + this.setToken(UUID.randomUUID().toString()+":"+tenantId+Constant.TOKEN_WXC_END); //过期时间 this.setExpireTime(new Date(currentDate.getTime() + Constant.S_D_EXPIRE)); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java index f92554c00..a47553f03 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java @@ -18,7 +18,7 @@ public interface WxCUserMapper extends CommonMapper { WxCUser findByUnionId(WxCUser record); - WxCUser findByToken(String token); + WxCUser findByToken(@Param("id")String token,@Param("tenantId")String tenantId); long findCount(WxCUserBasicInfoDto dto); diff --git a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java index ee6794b58..02f57e438 100644 --- a/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java +++ b/mallinkService/src/main/java/com/iformall/service/cuser/wx/WxCUserServiceAdapter.java @@ -1,5 +1,6 @@ package com.iformall.service.cuser.wx; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,11 +30,19 @@ public class WxCUserServiceAdapter implements CUserServiceApapter{ @Override public BaseCUserEntity getByToken(String token) { - WxCUser wxCUser = wxCUserMapper.findByToken(token); - if (null == wxCUser) { + if ((!StringUtils.isBlank(token))) { + String[] tokens = token.split(":"); + if (null == tokens || tokens.length != 3) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "WxCUserServiceAdapter token失效"); + } + WxCUser wxCUser = wxCUserMapper.findByToken(token,tokens[1]); + if (null == wxCUser) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "WxCUserServiceAdapter token失效"); + } + return generateBaseEntity(wxCUser); + }else { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "WxCUserServiceAdapter token失效"); } - return generateBaseEntity(wxCUser); } @Override diff --git a/mallinkService/src/main/resources/mapper/WxCUserMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserMapper.xml index 26c1f6619..f00ecd981 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserMapper.xml @@ -242,7 +242,7 @@