From 776b235cecdbc66e1c12ff1b8db64a6ea6e5ba5f Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期三, 02 八月 2023 14:56:52 +0800 Subject: [PATCH] !407 【轻量级 PR】优化第三方认证授权绑定 Merge pull request !407 from MichelleChung/5.X --- ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 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 c2392d3..ad8a41e 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 @@ -26,6 +26,7 @@ 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; @@ -69,14 +70,25 @@ * @return 缁熶竴鍝嶅簲瀹炰綋 */ public void socialRegister(AuthUser authUserData) { + String authId = authUserData.getSource() + authUserData.getUuid(); + // 绗笁鏂圭敤鎴蜂俊鎭� SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class); BeanUtil.copyProperties(authUserData.getToken(), bo); bo.setUserId(LoginHelper.getUserId()); - bo.setAuthId(authUserData.getSource() + authUserData.getUuid()); + bo.setAuthId(authId); bo.setOpenId(authUserData.getUuid()); bo.setUserName(authUserData.getUsername()); bo.setNickName(authUserData.getNickname()); - sysSocialService.insertByBo(bo); + // 鏌ヨ鏄惁宸茬粡缁戝畾鐢ㄦ埛 + SysSocialVo vo = sysSocialService.selectByAuthId(authId); + if (ObjectUtil.isEmpty(vo)) { + // 娌℃湁缁戝畾鐢ㄦ埛, 鏂板鐢ㄦ埛淇℃伅 + sysSocialService.insertByBo(bo); + } else { + // 鏇存柊鐢ㄦ埛淇℃伅 + bo.setId(vo.getId()); + sysSocialService.updateByBo(bo); + } } -- Gitblit v1.9.3