From b33096b92524e141ba4a553b8d86b521bed0ad76 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期五, 24 四月 2026 20:17:20 +0800
Subject: [PATCH] bugfix

---
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/settings/service/AppSettingsService.java |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/settings/service/AppSettingsService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/settings/service/AppSettingsService.java
index 87cbfb4..0af4fed 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/settings/service/AppSettingsService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/settings/service/AppSettingsService.java
@@ -8,6 +8,7 @@
 import com.tcm.training.admin.app.auth.service.AppWechatUserProfile;
 import com.tcm.training.admin.app.settings.dto.AppSettingsNotificationUpdateRequest;
 import com.tcm.training.admin.app.settings.dto.AppSettingsPasswordUpdateRequest;
+import com.tcm.training.admin.app.settings.dto.AppSettingsPhoneBindRequest;
 import com.tcm.training.admin.app.settings.dto.AppSettingsPhoneCodeRequest;
 import com.tcm.training.admin.app.settings.dto.AppSettingsPhoneUpdateRequest;
 import com.tcm.training.admin.app.settings.dto.AppSettingsProfileUpdateRequest;
@@ -143,6 +144,24 @@
     }
 
     /**
+     * 首次绑定当前登录用户手机号,供微信登录未绑定手机号场景使用。
+     */
+    @Transactional
+    public AppSettingsProfileVO bindPhone(AppSettingsPhoneBindRequest request) {
+        AppUser user = requireCurrentEnabledUser();
+        String newPhone = normalizePhone(request.getNewPhone());
+        String code = normalizeRequired(request.getCode(), "请输入验证码");
+        if (trimToNull(user.getPhone()) != null) {
+            throw new IllegalArgumentException("当前账号已绑定手机号");
+        }
+        requirePhoneAvailable(newPhone, user.getId());
+        appSmsCodeService.validatePhoneChangeCode(newPhone, code);
+        user.setPhone(newPhone);
+        userMapper.updateById(user);
+        return toProfileVO(user);
+    }
+
+    /**
      * 修改当前登录用户密码,并在成功后使当前登录态失效。
      */
     @Transactional

--
Gitblit v1.7.1