package com.yunan.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.yunan.dto.RegisterDTO; import com.yunan.dto.Users; import com.yunan.mapper.AuthMapper; import com.yunan.response.ErrorResponse; import com.yunan.service.AuthService; import com.yunan.util.RedisUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import javax.annotation.Resource; @Service public class AuthServiceImpl implements AuthService { @Resource private AuthMapper authMapper; @Autowired RedisUtils redisUtils; @Override public ResponseEntity register(RegisterDTO registerDTO) { //获取正确的验证码 Object rightCode = redisUtils.hGet("rightCode", registerDTO.getEmail()); //处理registerDTO对数据为空的逻辑 // 验证验证码的正确性 if(registerDTO.getCode().equals(rightCode)){ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Users::getEmail, registerDTO.getEmail()); if(authMapper.selectOne(queryWrapper) != null) { return ResponseEntity .status(HttpStatus.CONFLICT) .body(new ErrorResponse("用户名已存在!!!")); } Users user = new Users(); user.setUsername(registerDTO.getUsername()); user.setPassword(registerDTO.getPassword()); user.setEmail(registerDTO.getEmail()); // boolean isSaved = authMapper.insert(user) > 0; boolean isSaved = true; if (isSaved) { return ResponseEntity .status(HttpStatus.OK) .body("注册成功!"); } else { return ResponseEntity .status(HttpStatus.INTERNAL_SERVER_ERROR) .body("数据库存储失败,请稍后重试"); } } else{ // 如果验证码为空或者与正确的验证码不匹配,返回错误信息 return ResponseEntity .status(HttpStatus.BAD_REQUEST) // 设置 HTTP 状态码为 400 .body(new ErrorResponse("验证码不正确或已过期")); // 返回自定义的错误消息 } } }