diff --git a/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java b/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java index 91fbc5a..5543a32 100644 --- a/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java +++ b/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java @@ -47,6 +47,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { "/api/findAccountByPhone", "/api/resetPassword", "/api/checkPhoneRegistered", + "/api/checkEmailRegistered", "/api/existence", "/api/oss/upload", "/druid/**", diff --git a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java index 47dbe40..e353ae0 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java @@ -44,6 +44,7 @@ import com.gxwebsoft.common.system.result.CaptchaResult; import com.gxwebsoft.common.system.result.LoginResult; import com.gxwebsoft.common.system.result.TenantOption; import com.gxwebsoft.common.system.result.AccountInfoResult; +import com.gxwebsoft.common.system.result.CheckEmailResult; import com.gxwebsoft.common.system.result.CheckPhoneResult; import com.gxwebsoft.common.system.service.*; import com.gxwebsoft.common.system.mapper.UserMapper; @@ -1788,6 +1789,20 @@ public class MainController extends BaseController { * 检查手机号是否已注册(可选接口) */ @Operation(summary = "检查手机号是否已注册") + @GetMapping("/checkEmailRegistered") + public ApiResult checkEmailRegistered(@RequestParam("email") String email) { + // 邮箱格式校验 + if (!CommonUtil.isValidEmail(email)) { + return fail("请输入有效的邮箱地址"); + } + // 统计该邮箱注册的账号数量(跨租户,复用 findAccountsByEmail) + List accounts = userService.findAccountsByEmail(email); + CheckEmailResult result = new CheckEmailResult(); + result.setIsRegistered(accounts != null && !accounts.isEmpty()); + result.setAccountCount(accounts != null ? accounts.size() : 0); + return success(result); + } + @GetMapping("/checkPhoneRegistered") public ApiResult checkPhoneRegistered(@RequestParam("phone") String phone) { // 验证手机号 diff --git a/src/main/java/com/gxwebsoft/common/system/result/CheckEmailResult.java b/src/main/java/com/gxwebsoft/common/system/result/CheckEmailResult.java new file mode 100644 index 0000000..e4b29f6 --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/system/result/CheckEmailResult.java @@ -0,0 +1,28 @@ +package com.gxwebsoft.common.system.result; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 检查邮箱返回结果 + * + * @author WebSoft + * @since 2026-08-06 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Schema(description = "检查邮箱返回结果") +public class CheckEmailResult implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "是否已注册") + private Boolean isRegistered; + + @Schema(description = "账号数量") + private Integer accountCount; +}