From 9448782f451790beb05b2e6717683dc0a59d6a24 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期二, 20 六月 2023 15:00:16 +0800
Subject: [PATCH] update 优化 !pr370 完成三方登录授权功能

---
 ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java |   50 +++++++++++++++++++++++---------------------------
 1 files changed, 23 insertions(+), 27 deletions(-)

diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
index e4aec24..d944a5a 100644
--- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
+++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
@@ -6,7 +6,6 @@
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import jakarta.servlet.http.HttpServletRequest;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import me.zhyd.oauth.model.AuthResponse;
@@ -33,20 +32,18 @@
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.common.web.config.properties.CaptchaProperties;
 import org.dromara.system.domain.SysUser;
-import org.dromara.system.domain.bo.SocialUserBo;
-import org.dromara.system.domain.vo.SocialUserVo;
+import org.dromara.system.domain.bo.SysSocialBo;
+import org.dromara.system.domain.vo.SysSocialVo;
 import org.dromara.system.domain.vo.SysTenantVo;
 import org.dromara.system.domain.vo.SysUserVo;
 import org.dromara.system.mapper.SysUserMapper;
-import org.dromara.system.service.ISocialUserService;
+import org.dromara.system.service.ISysSocialService;
 import org.dromara.system.service.ISysPermissionService;
 import org.dromara.system.service.ISysTenantService;
-import org.dromara.system.service.ISysUserService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.io.IOException;
 import java.time.Duration;
 import java.util.Date;
 import java.util.List;
@@ -63,7 +60,7 @@
 public class SysLoginService {
 
     private final SysUserMapper userMapper;
-    private final ISocialUserService socialUserService;
+    private final ISysSocialService sysSocialService;
     private final CaptchaProperties captchaProperties;
     private final ISysPermissionService permissionService;
     private final ISysTenantService tenantService;
@@ -170,47 +167,46 @@
      *
      * @param source   鐧诲綍鏉ユ簮
      * @param authUser 鎺堟潈鍝嶅簲瀹炰綋
-     * @param request  Http璇锋眰瀵硅薄
      * @return 缁熶竴鍝嶅簲瀹炰綋
      */
-    public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser, HttpServletRequest request) {
+    public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser) {
         // 鍒ゆ柇鎺堟潈鍝嶅簲鏄惁鎴愬姛
         if (!authUser.ok()) {
             return R.fail("瀵逛笉璧凤紝鎺堟潈淇℃伅楠岃瘉涓嶉�氳繃锛岃閫�鍑洪噸璇曪紒");
         }
         AuthUser authUserData = authUser.getData();
-        SocialUserVo user = socialUserService.selectSocialUserByAuthId(authUserData.getSource() + authUserData.getUuid());
+        SysSocialVo user = sysSocialService.selectByAuthId(authUserData.getSource() + authUserData.getUuid());
         if (ObjectUtil.isNotNull(user)) {
-            //鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣�
+            // 鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣�
             return loginAndRecord(user.getTenantId(), user.getUserName(), authUserData);
         } else {
             // 鍒ゆ柇鏄惁宸茬櫥褰�
             if (LoginHelper.getUserId() == null) {
                 return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曟墠鑳界粦瀹�");
             }
-            SocialUserBo socialUserBo = new SocialUserBo();
-            socialUserBo.setUserId(LoginHelper.getUserId());
-            socialUserBo.setAuthId(authUserData.getSource() + authUserData.getUuid());
-            socialUserBo.setSource(authUserData.getSource());
-            socialUserBo.setUserName(authUserData.getUsername());
-            socialUserBo.setNickName(authUserData.getNickname());
-            socialUserBo.setAvatar(authUserData.getAvatar());
-            socialUserBo.setOpenId(authUserData.getUuid());
-            BeanUtils.copyProperties(authUserData.getToken(), socialUserBo);
+            SysSocialBo bo = new SysSocialBo();
+            bo.setUserId(LoginHelper.getUserId());
+            bo.setAuthId(authUserData.getSource() + authUserData.getUuid());
+            bo.setSource(authUserData.getSource());
+            bo.setUserName(authUserData.getUsername());
+            bo.setNickName(authUserData.getNickname());
+            bo.setAvatar(authUserData.getAvatar());
+            bo.setOpenId(authUserData.getUuid());
+            BeanUtils.copyProperties(authUserData.getToken(), bo);
 
-            socialUserService.insertByBo(socialUserBo);
-            SysUserVo lodingData = loadUserByUsername(LoginHelper.getTenantId(), LoginHelper.getUsername());
-            //鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣�
-            return loginAndRecord(lodingData.getTenantId(), socialUserBo.getUserName(), authUserData);
+            sysSocialService.insertByBo(bo);
+            SysUserVo sysUser = loadUserByUsername(LoginHelper.getTenantId(), LoginHelper.getUsername());
+            // 鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣�
+            return loginAndRecord(sysUser.getTenantId(), sysUser.getUserName(), authUserData);
         }
     }
 
     /**
      * 鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣�
      *
-     * @param tenantId  绉熸埛ID
-     * @param userName  鐢ㄦ埛鍚�
-     * @param authUser  鎺堟潈鐢ㄦ埛淇℃伅
+     * @param tenantId 绉熸埛ID
+     * @param userName 鐢ㄦ埛鍚�
+     * @param authUser 鎺堟潈鐢ㄦ埛淇℃伅
      * @return 缁熶竴鍝嶅簲瀹炰綋
      */
     private R<String> loginAndRecord(String tenantId, String userName, AuthUser authUser) {

--
Gitblit v1.9.3