From 8a7af3c27dca7eb50898995d5f64547beccc9e24 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 02 七月 2026 10:25:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_business' into dev_business

---
 yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java b/yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
index d596ab6..7cfbeb5 100644
--- a/yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
+++ b/yudao-module-member/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
@@ -142,6 +142,12 @@
 
     @Override
     public void updateUser(Long userId, AppMemberUserUpdateReqVO reqVO) {
+        // 1.1 妫�娴嬬敤鎴锋槸鍚﹀瓨鍦�
+        validateUserExists(userId);
+        // 1.2 鏍¢獙鎵嬫満鏄惁宸茬粡琚粦瀹�
+        validateEmailUnique(userId, reqVO.getEmail());
+
+        // 2. 鏇存柊鐢ㄦ埛
         MemberUserDO updateObj = BeanUtils.toBean(reqVO, MemberUserDO.class).setId(userId);
         memberUserMapper.updateById(updateObj);
     }
@@ -238,6 +244,8 @@
         validateUserExists(updateReqVO.getId());
         // 鏍¢獙鎵嬫満鍞竴
         validateMobileUnique(updateReqVO.getId(), updateReqVO.getMobile());
+        // 鏍¢獙閭鍞竴
+        validateEmailUnique(updateReqVO.getId(), updateReqVO.getEmail());
 
         // 鏇存柊
         MemberUserDO updateObj = MemberUserConvert.INSTANCE.convert(updateReqVO);
@@ -274,6 +282,24 @@
         }
     }
 
+    @VisibleForTesting
+    void validateEmailUnique(Long id, String email) {
+        if (StrUtil.isBlank(email)) {
+            return;
+        }
+        MemberUserDO user = memberUserMapper.selectByEmail(email);
+        if (user == null) {
+            return;
+        }
+        // 濡傛灉 id 涓虹┖锛岃鏄庝笉鐢ㄦ瘮杈冩槸鍚︿负鐩稿悓 id 鐨勭敤鎴�
+        if (id == null) {
+            throw exception(USER_EMAIL_USED, email);
+        }
+        if (!user.getId().equals(id)) {
+            throw exception(USER_EMAIL_USED, email);
+        }
+    }
+
     @Override
     public PageResult<MemberUserDO> getUserPage(MemberUserPageReqVO pageReqVO) {
         return memberUserMapper.selectPage(pageReqVO);

--
Gitblit v1.9.3