Explorar o código

update: 增加用户名和邮箱验重

Arsekl %!s(int64=4) %!d(string=hai) anos
pai
achega
00fa4a3845

+ 4 - 0
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/repository/UserRepository.java

@@ -20,6 +20,10 @@ public interface UserRepository extends JpaRepository<User, Long> {
      */
     Optional<User> findByPhone(String phone);
 
+    Optional<User> findByUsername(String username);
+
+    Optional<User> findByEmail(String email);
+
     Optional<User> findByPhoneOrUsername(String phone, String username);
 
     List<User> findByRole(UserRole role);

+ 1 - 1
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/security/DomainUserDetailsService.java

@@ -39,7 +39,7 @@ public class DomainUserDetailsService implements UserDetailsService {
         log.debug("Authenticating {}", phone);
         User user = userRepository.findByPhone(phone).get();
         if (user.getRole().equals(UserRole.SUPER)){
-            user.setRole(userRepository.findById(user.getId()).get().getSuperInfo().getRole());
+            user.setRole(user.getSuperInfo().getRole());
         }
         return Optional.of(user)
                 .map(userMapper::userToDomainUserDetails)

+ 6 - 5
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/service/UserService.java

@@ -85,11 +85,12 @@ public class UserService {
     public User registerUser(UserVO userVO, String password, String phoneCode) {
         checkPhoneMessageOrThrowError(userVO.getPhone(), phoneCode);
         userVO.setUsername(userVO.getUsername());
-        userRepository
-                .findByPhoneOrUsername(userVO.getPhone(), userVO.getUsername())
-                .ifPresent(user -> {
-                    throw CustomErrorException.phoneAlreadyExist();
-                });
+        userRepository.findByPhone(userVO.getPhone()).ifPresent(user -> {
+            throw CustomErrorException.phoneAlreadyExist(); });
+        userRepository.findByUsername(userVO.getUsername()).ifPresent(user->{
+            throw CustomErrorException.usernameAlreadyExist(); });
+        userRepository.findByEmail(userVO.getEmail()).ifPresent(user -> {
+            throw CustomErrorException.emailAlreadyExist(); });
         User user = userMapper.userVOToUser(userVO);
         String encodedPassword = passwordEncoder.encode(password);
         System.out.println(encodedPassword);

+ 5 - 3
seecoder-portal-server/src/main/java/cn/seecoder/seecoderportalserver/web/rest/errors/CustomErrorException.java

@@ -36,9 +36,11 @@ public class CustomErrorException extends RuntimeException {
         return new CustomErrorException("验证码错误");
     }
 
-    public static CustomErrorException phoneAlreadyExist() {
-        return new CustomErrorException("手机号已存在");
-    }
+    public static CustomErrorException phoneAlreadyExist() { return new CustomErrorException("手机号已存在"); }
+
+    public static CustomErrorException usernameAlreadyExist() { return new CustomErrorException("用户名已存在"); }
+
+    public static CustomErrorException emailAlreadyExist() { return new CustomErrorException("邮箱已存在"); }
 
     public static CustomErrorException domainNotAllowed() {
         return new CustomErrorException("地址是非法地址");