From 4c2dd7fdd86ddfad69611a5e825ff4a0cfab3c06 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期四, 30 四月 2026 22:03:06 +0800
Subject: [PATCH] fix:登录注册修改

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

diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/auth/service/AppAuthService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/auth/service/AppAuthService.java
index bec0650..ed36eac 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/auth/service/AppAuthService.java
+++ b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/auth/service/AppAuthService.java
@@ -12,6 +12,7 @@
 import com.tcm.training.admin.app.auth.vo.AppLoginUserVO;
 import com.tcm.training.admin.app.auth.vo.AppPasswordResetVerifyResponse;
 import com.tcm.training.admin.app.auth.vo.AppSmsCodeSendResponse;
+import com.tcm.training.admin.app.auth.exception.InviteCodeRequiredException;
 import com.tcm.training.admin.app.share.service.AppShareService;
 import com.tcm.training.admin.member.entity.AppUser;
 import com.tcm.training.admin.member.mapper.UserMapper;
@@ -114,6 +115,7 @@
         AppWechatUserProfile profile = appWechatAuthClient.resolveUserProfile(request);
         AppUser user = findUserByWechatOpenid(profile.getOpenid());
         if (user == null) {
+            requireInviteCodeForThirdPartyRegister(request.getInviteCode());
             user = buildWechatUser(profile);
             bindInviteRelationIfAbsent(user, request.getInviteCode());
             userMapper.insert(user);
@@ -134,7 +136,9 @@
         AppAppleUserProfile profile = appAppleAuthClient.resolveUserProfile(request);
         AppUser user = findUserByAppleSubject(profile.getSubject());
         if (user == null) {
+            requireInviteCodeForThirdPartyRegister(request.getInviteCode());
             user = buildAppleUser(profile);
+            bindInviteRelationIfAbsent(user, request.getInviteCode());
             userMapper.insert(user);
             return createLoginResponse(user);
         }
@@ -276,6 +280,15 @@
     }
 
     /**
+     * 第三方授权首次创建账号时必须携带医生邀请码。
+     */
+    private void requireInviteCodeForThirdPartyRegister(String inviteCode) {
+        if (normalizeInviteCode(inviteCode) == null) {
+            throw new InviteCodeRequiredException();
+        }
+    }
+
+    /**
      * 用户尚未绑定诊所关系时,根据医生邀请码补齐上下级关系。
      */
     private void bindInviteRelationIfAbsent(AppUser user, String inviteCode) {

--
Gitblit v1.7.1