From afeeed281e60466b576fbe74d339634cc5d07b82 Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期三, 08 十月 2025 08:56:42 +0800
Subject: [PATCH] 修复评审功能和用户认证问题

---
 backend/src/main/java/com/rongyichuang/user/service/UserService.java |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/backend/src/main/java/com/rongyichuang/user/service/UserService.java b/backend/src/main/java/com/rongyichuang/user/service/UserService.java
index a4c4913..0e8f24a 100644
--- a/backend/src/main/java/com/rongyichuang/user/service/UserService.java
+++ b/backend/src/main/java/com/rongyichuang/user/service/UserService.java
@@ -75,14 +75,22 @@
                         boolean needUpdateWx = false;
                         if (currentWxOpenid != null && !currentWxOpenid.trim().isEmpty()) {
                             if (user.getWxOpenid() == null || !currentWxOpenid.equals(user.getWxOpenid())) {
-                                user.setWxOpenid(currentWxOpenid);
-                                needUpdateWx = true;
+                                // 妫�鏌ヨ繖涓猳penid鏄惁宸茬粡琚叾浠栫敤鎴蜂娇鐢�
+                                Optional<User> existingUserWithOpenid = userRepository.findByWxOpenid(currentWxOpenid);
+                                if (existingUserWithOpenid.isEmpty() || existingUserWithOpenid.get().getId().equals(user.getId())) {
+                                    user.setWxOpenid(currentWxOpenid);
+                                    needUpdateWx = true;
+                                }
                             }
                         }
                         if (currentWxUnionid != null && !currentWxUnionid.trim().isEmpty()) {
                             if (user.getWxUnionid() == null || !currentWxUnionid.equals(user.getWxUnionid())) {
-                                user.setWxUnionid(currentWxUnionid);
-                                needUpdateWx = true;
+                                // 妫�鏌ヨ繖涓猽nionid鏄惁宸茬粡琚叾浠栫敤鎴蜂娇鐢�
+                                Optional<User> existingUserWithUnionid = userRepository.findByWxUnionid(currentWxUnionid);
+                                if (existingUserWithUnionid.isEmpty() || existingUserWithUnionid.get().getId().equals(user.getId())) {
+                                    user.setWxUnionid(currentWxUnionid);
+                                    needUpdateWx = true;
+                                }
                             }
                         }
                         if (needUpdateWx) {

--
Gitblit v1.8.0