From c8dffd157cd8b62023b26e62a0b92c152d959423 Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期三, 08 十月 2025 21:19:28 +0800
Subject: [PATCH] build(backend): switch to thin-jar layout (split libs into target/lib); chore: remove test-* files; misc updates

---
 backend/src/main/java/com/rongyichuang/user/service/UserService.java |   23 +++++++++++++++++++----
 1 files changed, 19 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..54e76b8 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) {
@@ -118,6 +126,13 @@
     }
 
     /**
+     * 鏍规嵁寰俊openid鏌ユ壘鐢ㄦ埛
+     */
+    public Optional<User> findByWxOpenid(String wxOpenid) {
+        return userRepository.findByWxOpenid(wxOpenid);
+    }
+
+    /**
      * 淇濆瓨鐢ㄦ埛
      */
     public User save(User user) {

--
Gitblit v1.8.0