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

发布时间:2024年01月03日
 @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());

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

?

如果设定为管理员,则选用 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

?

文章来源:https://blog.csdn.net/m0_67930426/article/details/135366392
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。