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