注册功能实现
This commit is contained in:
parent
be99853779
commit
374c549686
@ -56,9 +56,6 @@ public class AuthController {
|
|||||||
return authService.register(registerDTO);
|
return authService.register(registerDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 存储已发送的验证码
|
|
||||||
private final Map<String, String> emailCodeMap = new ConcurrentHashMap<>(16);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送验证码
|
* 发送验证码
|
||||||
* @param registerDTO
|
* @param registerDTO
|
||||||
|
@ -25,35 +25,4 @@ public class LoginDTO {
|
|||||||
|
|
||||||
private String token;
|
private String token;
|
||||||
|
|
||||||
public String getUsername() {
|
|
||||||
return username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUsername(String username) {
|
|
||||||
this.username = username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPassword() {
|
|
||||||
return password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPassword(String password) {
|
|
||||||
this.password = password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getToken() {
|
|
||||||
return token;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setToken(String token) {
|
|
||||||
this.token = token;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEmail() {
|
|
||||||
return email;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEmail(String email) {
|
|
||||||
this.email = email;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -27,43 +27,4 @@ public class RegisterDTO {
|
|||||||
|
|
||||||
private String token;
|
private String token;
|
||||||
|
|
||||||
public String getUsername() {
|
|
||||||
return username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUsername(String username) {
|
|
||||||
this.username = username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPassword() {
|
|
||||||
return password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPassword(String password) {
|
|
||||||
this.password = password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getToken() {
|
|
||||||
return token;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setToken(String token) {
|
|
||||||
this.token = token;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEmail() {
|
|
||||||
return email;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEmail(String email) {
|
|
||||||
this.email = email;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCode() {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCode(String code) {
|
|
||||||
this.code = code;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
package com.yunan.dto;
|
package com.yunan.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户实体类
|
* 用户实体类
|
||||||
*/
|
*/
|
||||||
|
@Data
|
||||||
public class Users implements Serializable {
|
public class Users implements Serializable {
|
||||||
private Integer id;
|
private long id;
|
||||||
/** 用户名*/
|
/** 用户名*/
|
||||||
private String username;
|
private String username;
|
||||||
/** 密码*/
|
/** 密码*/
|
||||||
@ -14,7 +18,7 @@ public class Users implements Serializable {
|
|||||||
/** 邮箱*/
|
/** 邮箱*/
|
||||||
private String email;
|
private String email;
|
||||||
/** 创建用户信息时间 */
|
/** 创建用户信息时间 */
|
||||||
private String createdTime;
|
private Date createdTime;
|
||||||
/** 修改用户信息时间 */
|
/** 修改用户信息时间 */
|
||||||
private String updatedTime;
|
private String updatedTime;
|
||||||
/** 用户状态*/
|
/** 用户状态*/
|
||||||
@ -31,60 +35,4 @@ public class Users implements Serializable {
|
|||||||
", state=" + state +
|
", state=" + state +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(int id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUsername() {
|
|
||||||
return username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUsername(String username) {
|
|
||||||
this.username = username;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPassword() {
|
|
||||||
return password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPassword(String password) {
|
|
||||||
this.password = password;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEmail() {
|
|
||||||
return email;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEmail(String email) {
|
|
||||||
this.email = email;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getState() {
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setState(int state) {
|
|
||||||
this.state = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCreated_Time() {
|
|
||||||
return createdTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreated_Time(String create_Time) {
|
|
||||||
this.createdTime = create_Time;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUpdated_Time() {
|
|
||||||
return updatedTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdated_Time(String update_Time) {
|
|
||||||
this.updatedTime = update_Time;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class RedisExpireTask {
|
public class RedisExpireTask {
|
||||||
private final long time = 300000; //五分钟
|
private final long time = 3600000; //一小时
|
||||||
|
|
||||||
private RedisTemplate<String, Object> redisTemplate;
|
private RedisTemplate<String, Object> redisTemplate;
|
||||||
|
|
||||||
|
@ -14,6 +14,8 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@ -36,14 +38,20 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
if(authMapper.selectOne(queryWrapper) != null) {
|
if(authMapper.selectOne(queryWrapper) != null) {
|
||||||
return ResponseEntity
|
return ResponseEntity
|
||||||
.status(HttpStatus.CONFLICT)
|
.status(HttpStatus.CONFLICT)
|
||||||
.body(new ErrorResponse("用户名已存在!!!"));
|
.body(new ErrorResponse("用户已存在!!!"));
|
||||||
}
|
}
|
||||||
|
//为用户创建默认用户名
|
||||||
|
String userName = createUserName();
|
||||||
Users user = new Users();
|
Users user = new Users();
|
||||||
user.setUsername(registerDTO.getUsername());
|
//设置账号创建时间
|
||||||
|
Date currentDate = new Date();
|
||||||
|
user.setCreatedTime(currentDate);
|
||||||
|
user.setUsername(userName);
|
||||||
user.setPassword(registerDTO.getPassword());
|
user.setPassword(registerDTO.getPassword());
|
||||||
user.setEmail(registerDTO.getEmail());
|
user.setEmail(registerDTO.getEmail());
|
||||||
// boolean isSaved = authMapper.insert(user) > 0;
|
//状态设置 " 1 " 正常账号
|
||||||
boolean isSaved = true;
|
user.setState(1);
|
||||||
|
boolean isSaved = authMapper.insert(user) > 0;
|
||||||
if (isSaved) {
|
if (isSaved) {
|
||||||
return ResponseEntity
|
return ResponseEntity
|
||||||
.status(HttpStatus.OK)
|
.status(HttpStatus.OK)
|
||||||
@ -61,5 +69,23 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//随机生成用户名算法
|
||||||
|
public String createUserName() {
|
||||||
|
// 字符集,包括小写字母和数字
|
||||||
|
String chars = "abcdefghijklmnopqrstuvwxyz0123456789";
|
||||||
|
StringBuilder randomPart = new StringBuilder();
|
||||||
|
|
||||||
|
// 随机生成6位字符
|
||||||
|
Random random = new Random();
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
randomPart.append(chars.charAt(random.nextInt(chars.length())));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取当前时间戳(秒级)
|
||||||
|
long timestamp = System.currentTimeMillis() / 1000;
|
||||||
|
|
||||||
|
// 拼接生成用户名,例如 "user_xxx123_1638326400"
|
||||||
|
return "user_" + randomPart.toString() + "_" + timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ public class EmailServiceImpl implements EmailService {
|
|||||||
// 发送邮件
|
// 发送邮件
|
||||||
mailSender.send(message);
|
mailSender.send(message);
|
||||||
|
|
||||||
redisUtils.hPutWithExpire("rightCode", email, code, 5, TimeUnit.SECONDS);
|
redisUtils.hPutWithExpire("rightCode", email, code, 5, TimeUnit.MINUTES);
|
||||||
return new ApiResponse<>(ResponseCode.SUCCESS, "验证码已发送");
|
return new ApiResponse<>(ResponseCode.SUCCESS, "验证码已发送");
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user