【代码解析】代码解析之注册(1)

 @Override
    public User register(UserDTO userDTO) {
        userDTO.setPassword(SecureUtil.md5(userDTO.getPassword()));
        User one = getUserInfo(userDTO);
        if (one == null) {
            one = new User();
            BeanUtil.copyProperties(userDTO, one, true);
            one.setRole(RoleEnum.ROLE_STUDENT.toString());
            if (one.getNickname() == null) {
                one.setNickname(one.getUsername());
            }
            save(one);  
        } else {
            throw new ServiceException(Constants.CODE_600, "用户已存在");
        }
        return one;
    }

这段代码主要用于用户注册,其中使用了md5算法对输入的密码进行加密

以下是这段代码的相关解析:

1.

  public User register(UserDTO userDTO)

这是一个名为 register 的方法,它接收一个 UserDTO 类型的参数,并返回一个 User 类型的结果

2. 

 userDTO.setPassword(SecureUtil.md5(userDTO.getPassword()));

这行代码是将输入的密码进行md5算法进行加密,目的是增加安全性

3.

  User one = getUserInfo(userDTO);

调用getUserInfo 方法,传入 userDTO 作为参数,尝试从数据库或者其他数据源获取与 userDTO 匹配的用户信息。

4. 

  if (one == null) {

如果获取到的用户信息不存在

5. 

one = new User();

创建一个新的User对象

6. 

  BeanUtil.copyProperties(userDTO, one, true);

这行代码的意思是使用 copyProperties 方法,将 userDTO 的属性复制到 one 中。

7. 

one.setRole(RoleEnum.ROLE_STUDENT.toString());

为用户设置默认的角色,这里的设定为 学生。

 【代码解析】代码解析之注册(1)_第1张图片

如果设定为管理员,则选用 ROLE_ADMIN

8.

      if (one.getNickname() == null) {

如果新用户的昵称为空

9.

  one.setNickname(one.getUsername());

将用户的用户名设置昵称

10. 
            }
            save(one);  

调用save方法,将处理好的用户信息保存到数据库中

11.
        } else {
            throw new ServiceException(Constants.CODE_600, "用户已存在");
        }

这里的else 对应上文的获取到的用户信息已经存在,则抛出一个服务异常,提示用户已存在

12.
        return one;
    }
 

无论用户是新注册还是已存在,此方法返回处理后的用户对象。对于新注册的用户,返回的是新创建的对象,对于已存在的用户,返回的是从数据库中获取的对象。

该注册方法对应的登录方法代码解析如下 

https://blog.csdn.net/m0_67930426/article/details/135327553?spm=1001.2014.3001.5501

 

你可能感兴趣的:(代码解析,java,开发语言)