From ea5d657e3177df33c306734e7516703fb60af101 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期六, 11 五月 2024 19:52:33 +0800 Subject: [PATCH] fix 修复 三方账号可以被同一个用户多次绑定问题 --- ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 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 b2c9d3a..243d685 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 @@ -5,6 +5,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.lock.annotation.Lock4j; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import me.zhyd.oauth.model.AuthUser; @@ -64,20 +65,24 @@ * 缁戝畾绗笁鏂圭敤鎴� * * @param authUserData 鎺堟潈鍝嶅簲瀹炰綋 - * @return 缁熶竴鍝嶅簲瀹炰綋 */ + @Lock4j 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()); + Long userId = LoginHelper.getUserId(); + bo.setUserId(userId); bo.setAuthId(authId); bo.setOpenId(authUserData.getUuid()); bo.setUserName(authUserData.getUsername()); bo.setNickName(authUserData.getNickname()); // 鏌ヨ鏄惁宸茬粡缁戝畾鐢ㄦ埛 - List<SysSocialVo> list = sysSocialService.selectByAuthId(authId); + SysSocialBo params = new SysSocialBo(); + params.setUserId(userId); + params.setSource(bo.getSource()); + List<SysSocialVo> list = sysSocialService.queryList(params); if (CollUtil.isEmpty(list)) { // 娌℃湁缁戝畾鐢ㄦ埛, 鏂板鐢ㄦ埛淇℃伅 sysSocialService.insertByBo(bo); @@ -85,6 +90,8 @@ // 鏇存柊鐢ㄦ埛淇℃伅 bo.setId(list.get(0).getId()); sysSocialService.updateByBo(bo); + // 濡傛灉瑕佺粦瀹氱殑骞冲彴璐﹀彿宸茬粡琚粦瀹氳繃浜� 鏄惁鎶涘紓甯歌嚜琛屽喅鏂� + // throw new ServiceException("姝ゅ钩鍙拌处鍙峰凡缁忚缁戝畾!"); } } -- Gitblit v1.9.3