From 8b81df3a7638e768b640b7935d9da52b77cd7649 Mon Sep 17 00:00:00 2001
From: 13404089107 <puwei@sinata.cn>
Date: 星期五, 24 四月 2026 20:22:47 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/tcm-training

---
 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