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