From 6b147786912eeaa62350610b7ee9235ff156e3ba Mon Sep 17 00:00:00 2001
From: 三个三 <2029364173@qq.com>
Date: 星期日, 02 七月 2023 15:24:14 +0800
Subject: [PATCH] !382 统一登录,授权

---
 ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java |   77 +++++++++-----------------------------
 1 files changed, 18 insertions(+), 59 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 88500b2..4da2bb0 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
@@ -1,14 +1,12 @@
 package org.dromara.web.service;
 
 import cn.dev33.satoken.exception.NotLoginException;
-import cn.dev33.satoken.stp.SaLoginModel;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import me.zhyd.oauth.model.AuthResponse;
 import me.zhyd.oauth.model.AuthUser;
 import org.dromara.common.core.constant.Constants;
 import org.dromara.common.core.constant.GlobalConstants;
@@ -16,12 +14,14 @@
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.domain.dto.RoleDTO;
 import org.dromara.common.core.domain.model.LoginUser;
-import org.dromara.common.core.enums.DeviceType;
 import org.dromara.common.core.enums.LoginType;
 import org.dromara.common.core.enums.TenantStatus;
 import org.dromara.common.core.enums.UserStatus;
 import org.dromara.common.core.exception.user.UserException;
-import org.dromara.common.core.utils.*;
+import org.dromara.common.core.utils.DateUtils;
+import org.dromara.common.core.utils.MessageUtils;
+import org.dromara.common.core.utils.ServletUtils;
+import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.log.event.LogininforEvent;
 import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
@@ -29,13 +29,13 @@
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.system.domain.SysUser;
 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.ISysPermissionService;
 import org.dromara.system.service.ISysSocialService;
 import org.dromara.system.service.ISysTenantService;
+import org.dromara.web.domain.vo.LoginVo;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -66,67 +66,26 @@
     private final ISysSocialService sysSocialService;
     private final SysUserMapper userMapper;
 
-    /**
-     * 绀句氦鐧诲綍
-     *
-     * @param source   鐧诲綍鏉ユ簮
-     * @param authUser 鎺堟潈鍝嶅簲瀹炰綋
-     * @return 缁熶竴鍝嶅簲瀹炰綋
-     */
-    public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser) {
-        // 鍒ゆ柇鎺堟潈鍝嶅簲鏄惁鎴愬姛
-        if (!authUser.ok()) {
-            return R.fail("瀵逛笉璧凤紝鎺堟潈淇℃伅楠岃瘉涓嶉�氳繃锛岃閫�鍑洪噸璇曪紒");
-        }
-        AuthUser authUserData = authUser.getData();
-        SysSocialVo social = sysSocialService.selectByAuthId(authUserData.getSource() + authUserData.getUuid());
-        if (ObjectUtil.isNotNull(social)) {
-            SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>()
-                .eq(SysUser::getUserId, social.getUserId()));
-            // 鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣�
-            return loginAndRecord(user.getTenantId(), user.getUserName(), authUserData);
-        } else {
-            // 鍒ゆ柇鏄惁宸茬櫥褰�
-            if (!StpUtil.isLogin()) {
-                return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曟墠鑳界粦瀹�");
-            }
-            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);
 
-            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 authUserData 鎺堟潈鍝嶅簲瀹炰綋
      * @return 缁熶竴鍝嶅簲瀹炰綋
      */
-    private R<String> loginAndRecord(String tenantId, String userName, AuthUser authUser) {
-        checkTenant(tenantId);
-        SysUserVo user = loadUserByUsername(tenantId, userName);
-        SaLoginModel model = new SaLoginModel();
-        model.setDevice(DeviceType.PC.getDevice());
-        // 鐢熸垚token
-        LoginHelper.login(buildLoginUser(user), model);
-        recordLogininfor(user.getTenantId(), userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
-        recordLoginInfo(user.getUserId());
-        return R.ok(StpUtil.getTokenValue());
+    public R<LoginVo> sociaRegister(AuthUser authUserData ){
+        SysSocialBo bo = new SysSocialBo();
+        bo.setUserId(LoginHelper.getUserId());
+        bo.setAuthId(authUserData.getSource() + authUserData.getUuid());
+        bo.setOpenId(authUserData.getUuid());
+        bo.setUserName(authUserData.getUsername());
+        BeanUtils.copyProperties(authUserData, bo);
+        BeanUtils.copyProperties(authUserData.getToken(), bo);
+        sysSocialService.insertByBo(bo);
+        return R.ok();
     }
 
+
     /**
      * 閫�鍑虹櫥褰�
      */

--
Gitblit v1.9.3