From c92c99c8da92fd9d7dc4af9534419d0679fcc207 Mon Sep 17 00:00:00 2001
From: zlyx <1242874891@qq.com>
Date: 星期三, 02 八月 2023 14:21:12 +0800
Subject: [PATCH] update 优化 SysLoginService#socialRegister 判断是否已经绑定用户 ; fix 修正 SysSocialServiceImpl#selectByAuthId 重复数据报错问题 ;

---
 ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 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..ba5840a 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,20 @@
      * @return 缁熶竴鍝嶅簲瀹炰綋
      */
     public void socialRegister(AuthUser authUserData) {
-        SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class);
-        BeanUtil.copyProperties(authUserData.getToken(), bo);
-        bo.setUserId(LoginHelper.getUserId());
-        bo.setAuthId(authUserData.getSource() + authUserData.getUuid());
-        bo.setOpenId(authUserData.getUuid());
-        bo.setUserName(authUserData.getUsername());
-        bo.setNickName(authUserData.getNickname());
-        sysSocialService.insertByBo(bo);
+        String authId = authUserData.getSource() + authUserData.getUuid();
+        // 鏌ヨ鏄惁宸茬粡缁戝畾鐢ㄦ埛
+        SysSocialVo vo = sysSocialService.selectByAuthId(authId);
+        if (ObjectUtil.isEmpty(vo)) {
+            // 娌℃湁缁戝畾鐢ㄦ埛, 鏂板鐢ㄦ埛淇℃伅
+            SysSocialBo bo = BeanUtil.toBean(authUserData, SysSocialBo.class);
+            BeanUtil.copyProperties(authUserData.getToken(), bo);
+            bo.setUserId(LoginHelper.getUserId());
+            bo.setAuthId(authId);
+            bo.setOpenId(authUserData.getUuid());
+            bo.setUserName(authUserData.getUsername());
+            bo.setNickName(authUserData.getNickname());
+            sysSocialService.insertByBo(bo);
+        }
     }
 
 

--
Gitblit v1.9.3