From b7c0e76da2529a7428ab15686b47214b7d621ad8 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期二, 20 六月 2023 16:50:30 +0800
Subject: [PATCH] update 优化 三方登录接口代码逻辑
---
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml | 16 --------
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java | 10 ++--
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java | 12 +++---
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java | 8 ----
ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java | 16 ++++---
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java | 6 +-
6 files changed, 23 insertions(+), 45 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 d944a5a..52bf56c 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
@@ -175,13 +175,15 @@
return R.fail("瀵逛笉璧凤紝鎺堟潈淇℃伅楠岃瘉涓嶉�氳繃锛岃閫�鍑洪噸璇曪紒");
}
AuthUser authUserData = authUser.getData();
- SysSocialVo user = sysSocialService.selectByAuthId(authUserData.getSource() + authUserData.getUuid());
- if (ObjectUtil.isNotNull(user)) {
+ 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 (LoginHelper.getUserId() == null) {
+ if (!StpUtil.isLogin()) {
return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曟墠鑳界粦瀹�");
}
SysSocialBo bo = new SysSocialBo();
@@ -211,10 +213,10 @@
*/
private R<String> loginAndRecord(String tenantId, String userName, AuthUser authUser) {
checkTenant(tenantId);
- SysUserVo dbUser = loadUserByUsername(tenantId, userName);
- LoginHelper.loginByDevice(buildLoginUser(dbUser), DeviceType.SOCIAL);
- recordLogininfor(dbUser.getTenantId(), userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
- recordLoginInfo(dbUser.getUserId());
+ SysUserVo user = loadUserByUsername(tenantId, userName);
+ LoginHelper.loginByDevice(buildLoginUser(user), DeviceType.SOCIAL);
+ recordLogininfor(user.getTenantId(), userName, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
+ recordLoginInfo(user.getUserId());
return R.ok(StpUtil.getTokenValue());
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java
index fa9cb9f..10f2936 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysSocial.java
@@ -28,6 +28,11 @@
private Long id;
/**
+ * 鐢ㄦ埛ID
+ */
+ private Long userId;
+
+ /**
* 鐨勫敮涓�ID
*/
private String authId;
@@ -56,11 +61,6 @@
* 鐢ㄦ埛鐨� open id
*/
private String openId;
-
- /**
- * 鐢ㄦ埛鐨� ID
- */
- private Long userId;
/**
* 鎺堟潈鐨勭涓夋柟璐﹀彿
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java
index a8463b8..2a72efe 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysSocialVo.java
@@ -30,6 +30,12 @@
private Long id;
/**
+ * 鐢ㄦ埛ID
+ */
+ @ExcelProperty(value = "鐢ㄦ埛ID")
+ private Long userId;
+
+ /**
* 绉熸埛ID
*/
private String tenantId;
@@ -69,12 +75,6 @@
*/
@ExcelProperty(value = "鐢ㄦ埛鐨� open id")
private String openId;
-
- /**
- * 鐢ㄦ埛鐨� ID
- */
- @ExcelProperty(value = "鐢ㄦ埛鐨� ID")
- private Long userId;
/**
* 鎺堟潈鐨勭涓夋柟璐﹀彿
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java
index a4fc3cd..b942061 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysSocialMapper.java
@@ -11,12 +11,4 @@
*/
public interface SysSocialMapper extends BaseMapperPlus<SysSocial, SysSocialVo> {
- /**
- * 鏍规嵁 authId 鏌ヨ SysSocial 琛ㄥ拰 SysUser 琛紝杩斿洖 SysSocialAuthResult 鏄犲皠鐨勫璞�
- *
- * @param authId 璁よ瘉ID
- * @return SysSocial
- */
- SysSocialVo selectByAuthId(String authId);
-
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java
index 3fda703..065dea0 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java
@@ -86,12 +86,12 @@
/**
* 鏍规嵁 authId 鏌ヨ鐢ㄦ埛淇℃伅
*
- * @param authId 鐢ㄦ埛id
- * @return 鐢ㄦ埛淇℃伅
+ * @param authId 璁よ瘉id
+ * @return 鎺堟潈淇℃伅
*/
@Override
public SysSocialVo selectByAuthId(String authId) {
- return baseMapper.selectByAuthId(authId);
+ return baseMapper.selectVoOne(new LambdaQueryWrapper<SysSocial>().eq(SysSocial::getAuthId, authId));
}
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml
index 90f5b1a..baa4b59 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysSocialMapper.xml
@@ -4,20 +4,4 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.system.mapper.SysSocialMapper">
- <resultMap type="org.dromara.system.domain.vo.SysSocialVo" id="SysSocialAuthResult">
- <id property="id" column="id"/>
- </resultMap>
-
- <select id="selectByAuthId" parameterType="String" resultMap="SysSocialAuthResult">
- select b.user_id,
- b.tenant_id,
- b.user_name,
- b.password,
- a.auth_id,
- a.source
- from sys_social a
- left join sys_user b on a.user_id = b.user_id
- where a.auth_id = #{authId}
- </select>
-
</mapper>
--
Gitblit v1.9.3