From 6b5b38a8dbdb02036d1de361334b51efc8d61d2a Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 30 九月 2026 15:26:05 +0800
Subject: [PATCH] fix(auth): 企业微信扫码登录:原绑定用户被删除后按首次登录重新注册
---
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java | 25 ++++++++++++++++---------
1 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
index dbdb45e..72de06f 100644
--- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
+++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
@@ -219,23 +219,30 @@
}
// 2. 鍒ゆ柇鏄惁宸叉湁缁戝畾鐨勭郴缁熺敤鎴�
+ //
+ // 娉ㄦ剰锛歴ystem_social_user_bind 閲岀殑 user_id 鍙兘鎸囧悜銆屽凡琚垹闄ゃ�嶇殑鐢ㄦ埛 鈥斺��
+ // AdminUserServiceImpl.deleteUser 鍙竻鐞嗕簡瑙掕壊鍜屽矖浣嶏紝娌℃湁娓呯悊杩欏紶绀句氦缁戝畾琛紝
+ // 鍒犻櫎鍚庣粦瀹氬叧绯讳細娈嬬暀鎴愬鍎裤�傛墍浠ヨ繖閲屼笉鑳藉彧鐪嬨�屾湁娌℃湁缁戝畾銆嶏紝
+ // 杩樿鐪嬨�岀粦瀹氱殑浜鸿繕鍦ㄤ笉鍦ㄣ�嶃��
Long bindUserId = socialUser.getUserId();
- AdminUserDO user;
+ AdminUserDO user = bindUserId != null ? userService.getUser(bindUserId) : null;
- if (bindUserId == null) {
- // 2.1 棣栨鐧诲綍锛氳嚜鍔ㄦ敞鍐屾柊鐢ㄦ埛
+ if (user == null) {
+ // 2.1 棣栨鐧诲綍锛屾垨鍘熺粦瀹氱敤鎴峰凡琚垹闄わ細鑷姩娉ㄥ唽鏂扮敤鎴峰苟锛堟敼锛夌粦瀹�
+ //
+ // 鍘熺粦瀹氱敤鎴峰凡鍒犻櫎鏃跺繀椤昏蛋杩欐潯璺細鍚﹀垯璇ヤ紒涓氭垚鍛樹細姘镐箙鍗″湪銆岀敤鎴蜂笉瀛樺湪銆嶁�斺��
+ // 鏃㈢櫥涓嶈繘鏉ワ紝涔熶笉浼氳閲嶆柊娉ㄥ唽锛屾槸涓�涓棤娉曡嚜鎰堢殑姝婚攣銆�
+ // bindSocialUser 鍐呴儴浼氬厛鍒犳帀璇ョぞ浜ょ敤鎴风殑鏃х粦瀹氾紝鎵�浠ユ敼缁戜笉浼氫骇鐢熼噸澶嶈褰曘��
+ if (bindUserId != null) {
+ log.warn("[socialLogin][绀句氦鐢ㄦ埛({}) 鍘熺粦瀹氱殑鐢ㄦ埛({}) 宸蹭笉瀛樺湪锛堝彲鑳藉凡琚垹闄わ級锛屾寜棣栨鐧诲綍閲嶆柊娉ㄥ唽]",
+ socialUser.getOpenid(), bindUserId);
+ }
user = autoRegisterUser(socialUser, reqVO.getType());
// 缁戝畾绀句氦璐﹀彿
socialUserService.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(),
reqVO.getType(), reqVO.getCode(), reqVO.getState()));
log.info("[socialLogin][绀句氦鐧诲綍鑷姩娉ㄥ唽 userId={} username={} socialType={}]",
user.getId(), user.getUsername(), reqVO.getType());
- } else {
- // 2.2 宸叉湁缁戝畾锛氱洿鎺ヨ幏鍙栫敤鎴�
- user = userService.getUser(bindUserId);
- if (user == null) {
- throw exception(USER_NOT_EXISTS);
- }
}
// 3. 鍒涘缓 Token 浠ょ墝锛岃褰曠櫥褰曟棩蹇�
--
Gitblit v1.9.3