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 |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 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 3f78aa6..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) {
@@ -132,6 +147,13 @@
     }
 
     /**
+     * 鑾峰彇瀵嗙爜缂栫爜鍣�
+     */
+    public BCryptPasswordEncoder getPasswordEncoder() {
+        return passwordEncoder;
+    }
+
+    /**
      * 淇濆瓨鐢ㄦ埛鎵嬫満鍙风爜
      * 鏍稿績閫昏緫锛�
      * 1. 鏌ヨ褰撳墠t_user閲岄潰鏄惁瀛樺湪鐩稿悓鐨勭數璇濆彿鐮侊紝濡傛灉娌℃湁锛屽氨鏇存柊鍒板綋鍓島ser閲岄潰

--
Gitblit v1.8.0