@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
?