From da3ab1c3089b89913b420cf8532d86e199693114 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 25 八月 2023 13:41:20 +0800 Subject: [PATCH] 修复bug --- server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java b/server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java index d406e58..2990382 100644 --- a/server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java +++ b/server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java @@ -88,7 +88,7 @@ @Override public WxLoginVO wxLogin(String code, HttpServletRequest request) { - WxLoginVO wxLoginVO = new WxLoginVO(); + String appId = systemDictDataBiz.queryByCode(Constants.WX_CONFIG,Constants.APPID).getCode(); String appSecret = systemDictDataBiz.queryByCode(Constants.WX_CONFIG,Constants.APPSECRET).getCode(); String getTokenUrl = GET_ACCESS_TOKEN_URL.replace("CODE", code).replace("APPID", appId).replace("SECRET", appSecret); @@ -100,9 +100,19 @@ String openId = tokenJson.getString("openid"); String getUserInfoUrl = GET_USER_INFO_URL.replace("ACCESS_TOKEN", accessToken).replace("OPENID", openId); JSONObject userInfoJson = JSONObject.parseObject(HttpsUtil.get(getUserInfoUrl,true)); + return loginByUnionIdAndReturn(userInfoJson.getString("unionid"),openId,request); + + } + + private WxLoginVO loginByUnionIdAndReturn(String unionid,String openId,HttpServletRequest request) { + WxLoginVO wxLoginVO = new WxLoginVO(); wxLoginVO.setOpenid(openId); - wxLoginVO.setUnionid(userInfoJson.getString("unionid")); - CompanyUser companyUser = companyUserExtMapper.selectOne(new QueryWrapper<CompanyUser>().eq("openid",openId).last(" limit 1 ")); + wxLoginVO.setUnionid(unionid); + CompanyUser companyUser = companyUserExtMapper.selectOne(new QueryWrapper<CompanyUser>().lambda() + .eq(CompanyUser::getUnionid,wxLoginVO.getUnionid()) + .eq(CompanyUser::getDeleted,Constants.ZERO) + .last(" limit 1 ")); +// CompanyUser companyUser = companyUserExtMapper.selectOne(new QueryWrapper<CompanyUser>().eq("openid",openId).last(" limit 1 ")); if(Objects.isNull(companyUser)){ wxLoginVO.setLoginStatus(Constants.ONE); return wxLoginVO; @@ -164,6 +174,13 @@ systemLoginLogService.create(loginLog); throw ee; } + return wxLoginVO; + } + + @Override + public WxLoginVO wxProgramLogin(String unionId,String openId, HttpServletRequest request) { + return loginByUnionIdAndReturn(unionId,openId,request); + } -- Gitblit v1.9.3