From 6aec72e6ab9c04f3e419ebf6c9b2d9884611300b Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 19 May 2025 14:38:18 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E7=A9=BA=E6=9E=84=E9=80=A0=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/co/jp/app/common/ApiResponse.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/co/jp/app/common/ApiResponse.java b/src/main/java/co/jp/app/common/ApiResponse.java index fece8ec..359a688 100644 --- a/src/main/java/co/jp/app/common/ApiResponse.java +++ b/src/main/java/co/jp/app/common/ApiResponse.java @@ -2,15 +2,15 @@ package co.jp.app.common; public class ApiResponse { + //成功状况判定 private boolean success; + //状态码 private int code; + //状态信息 private String message; + //数据 private T data; - //空构造函数 - private ApiResponse() { - } - private ApiResponse(ResultCode resultCode, T data) { this.code = resultCode.getCode(); this.message = resultCode.getMessage(); @@ -18,12 +18,13 @@ public class ApiResponse { this.data = data; } - public static ApiResponse success(T data) { - return new ApiResponse<>(ResultCode.SUCCESS, data); + private ApiResponse() { } - public static ApiResponse success() { - return success(null); + public static ApiResponse fail() {return success(null);} + + public static ApiResponse success(T data) { + return new ApiResponse<>(ResultCode.SUCCESS, data); } public static ApiResponse fail(ResultCode resultCode) { From 57253951d39d675d1c9c6c68342c7c6b88dba782 Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 19 May 2025 14:39:12 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=82=AE=E7=AE=B1?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E6=88=B7=E5=90=8D=EF=BC=8C=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/co/jp/app/common/ResultCode.java | 2 +- .../java/co/jp/app/controller/UserController.java | 1 - src/main/java/co/jp/app/dto/LoginDto.java | 8 ++++++++ src/main/java/co/jp/app/dto/RegistrationDto.java | 15 +++++++++++++++ src/main/java/co/jp/app/service/UserService.java | 9 --------- 5 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/main/java/co/jp/app/common/ResultCode.java b/src/main/java/co/jp/app/common/ResultCode.java index 41946e0..b9e239e 100644 --- a/src/main/java/co/jp/app/common/ResultCode.java +++ b/src/main/java/co/jp/app/common/ResultCode.java @@ -28,7 +28,7 @@ public enum ResultCode { // 注册相关 // USER_REGISTRATION_SUCCESS(3000, "用户注册成功"), USER_EMAIL_ALREADY_EXISTS(3001, "Email already exists"), - // USER_USERNAME_ALREADY_EXISTS(3002, "Username"), + USER_EMAIL_NOT_VALID(3002, "Email is not valid"), USER_PASSWORD_TOO_SHORT(3003, "password too short"), USER_PASSWORD_TOO_WEAK(3004, "password too weak"), USER_REGISTRATION_FAILED(3005, "User registration failed"), diff --git a/src/main/java/co/jp/app/controller/UserController.java b/src/main/java/co/jp/app/controller/UserController.java index a36d3ad..667cef1 100644 --- a/src/main/java/co/jp/app/controller/UserController.java +++ b/src/main/java/co/jp/app/controller/UserController.java @@ -24,7 +24,6 @@ import co.jp.app.service.UserService; import jakarta.validation.Valid; @RestController - public class UserController { private final UserService userService; diff --git a/src/main/java/co/jp/app/dto/LoginDto.java b/src/main/java/co/jp/app/dto/LoginDto.java index d288aa1..43c2cf1 100644 --- a/src/main/java/co/jp/app/dto/LoginDto.java +++ b/src/main/java/co/jp/app/dto/LoginDto.java @@ -1,9 +1,17 @@ package co.jp.app.dto; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; + public class LoginDto { + @NotBlank(message = "邮箱不能为空") + @Email(message = "邮箱格式不正确,请输入有效的邮箱地址") private String email; + @NotBlank(message = "密码不能为空") + @Size(min = 6, max = 30, message = "密码长度必须在6到30位之间") private String password; public String getEmail() { diff --git a/src/main/java/co/jp/app/dto/RegistrationDto.java b/src/main/java/co/jp/app/dto/RegistrationDto.java index e93533f..9a68d28 100644 --- a/src/main/java/co/jp/app/dto/RegistrationDto.java +++ b/src/main/java/co/jp/app/dto/RegistrationDto.java @@ -1,11 +1,26 @@ package co.jp.app.dto; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; // 或 javax.validation.constraints.NotBlank +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; + public class RegistrationDto { + //注:username可以为空 + @Size(min = 2, max = 20, message = "用户名长度必须在2到20个字符之间") + @Pattern( + regexp = "^[a-zA-Z\\p{script=Han}]+$", + message = "用户名只能包含大小写英文字母和汉字,不能使用数字和标点符号" + ) private String name; + @NotBlank(message = "邮箱不能为空") + @Email(message = "邮箱格式不正确,请输入有效的邮箱地址") private String email; + @NotBlank(message = "密码不能为空") + @Size(min = 6, max = 30, message = "密码长度必须在6到30位之间") private String password; public String getName() { diff --git a/src/main/java/co/jp/app/service/UserService.java b/src/main/java/co/jp/app/service/UserService.java index 05a641a..763b331 100644 --- a/src/main/java/co/jp/app/service/UserService.java +++ b/src/main/java/co/jp/app/service/UserService.java @@ -34,15 +34,6 @@ public class UserService implements UserDetailsService { @Transactional public UserEntity registerNewUser(@NotNull RegistrationDto registrationDto) throws BusinessException { - if (userRepository.existsByEmail(registrationDto.getEmail())) { - throw new BusinessException(ResultCode.USER_EMAIL_ALREADY_EXISTS,"error: Email" + registrationDto.getEmail() + " had been used"); - } - - //密码最短6位限制 - if (registrationDto.getPassword() == null || registrationDto.getPassword().length() < 6) { - throw new BusinessException(ResultCode.USER_PASSWORD_TOO_SHORT); - } - UserEntity newUser = new UserEntity(); newUser.setName(registrationDto.getName()); newUser.setEmail(registrationDto.getEmail());