diff --git a/code/backend/src/main/java/org/example/common/ResponseStatusEnum.java b/code/backend/src/main/java/org/example/common/ResponseStatusEnum.java index cd398bb..85b5585 100644 --- a/code/backend/src/main/java/org/example/common/ResponseStatusEnum.java +++ b/code/backend/src/main/java/org/example/common/ResponseStatusEnum.java @@ -28,6 +28,10 @@ public enum ResponseStatusEnum implements CommonResp{ REQUEST_BODY_MISSING("1017", "请求数据体缺失"), LOGIN_NOT_ADMIN("1018", "管理员登录失败,不是管理员"), + USERNAME_EMPTY("1019", "用户名为空"), + PASSWORD_EMPTY("1020", "密码为空"), + NAME_EMPTY("1021", "用户昵称为空"), + /** 20XX 表示服务器错误 */ PICTURE_UPLOAD_FAILED("2001","上传图片失败"), diff --git a/code/backend/src/main/java/org/example/controller/UserController.java b/code/backend/src/main/java/org/example/controller/UserController.java index a479b91..24ea1cd 100644 --- a/code/backend/src/main/java/org/example/controller/UserController.java +++ b/code/backend/src/main/java/org/example/controller/UserController.java @@ -16,8 +16,8 @@ public class UserController { UserService userService; @Operation(summary = "注册", description = "用户注册接口") - @PostMapping("/regist") - public Result regist(@RequestBody User user){ + @PostMapping("/register") + public Result register(@RequestBody User user){ System.out.println(user); return userService.register(user); } diff --git a/code/backend/src/main/java/org/example/exception/GlobalExceptionHandler.java b/code/backend/src/main/java/org/example/exception/GlobalExceptionHandler.java index efc4ea1..1ec3247 100644 --- a/code/backend/src/main/java/org/example/exception/GlobalExceptionHandler.java +++ b/code/backend/src/main/java/org/example/exception/GlobalExceptionHandler.java @@ -6,6 +6,7 @@ import cn.hutool.log.level.Level; import org.example.common.ResponseStatusEnum; import org.example.utils.Result; import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; @@ -47,4 +48,9 @@ public class GlobalExceptionHandler { return Result.error(ResponseStatusEnum.REQUEST_BODY_MISSING); } + @ExceptionHandler(value = HttpRequestMethodNotSupportedException.class) + public Result handler(HttpRequestMethodNotSupportedException exception) { + log.log(Level.ERROR, exception.getMessage()); + return Result.error(String.valueOf(exception.getStatusCode().value()), exception.getMessage()); + } } diff --git a/code/backend/src/main/java/org/example/service/impl/UserServiceImpl.java b/code/backend/src/main/java/org/example/service/impl/UserServiceImpl.java index fc478f6..478d4ba 100644 --- a/code/backend/src/main/java/org/example/service/impl/UserServiceImpl.java +++ b/code/backend/src/main/java/org/example/service/impl/UserServiceImpl.java @@ -1,6 +1,9 @@ package org.example.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import io.micrometer.common.util.StringUtils; +import org.example.common.ResponseStatusEnum; +import org.example.exception.CustomException; import org.example.mapper.UserMapper; import org.example.pojo.User; import org.example.service.UserService; @@ -16,23 +19,25 @@ public class UserServiceImpl implements UserService { public Result register(User user){ QueryWrapper queryWrapper = new QueryWrapper<>(); + validate(user.getUsername(), user.getPassword(), user.getName()); queryWrapper.eq("username",user.getUsername()); boolean isExist = userMapper.exists(queryWrapper); if(isExist){ - return Result.error("-1","用户名已被使用"); + return Result.error(ResponseStatusEnum.USER_ACCOUNT_EXISTED); } user.setPassword(MD5Util.encrypt(user.getPassword())); - Integer rows = userMapper.insert(user); - if(rows>0){ + int rows = userMapper.insert(user); + if(rows > 0){ return Result.success(); } - return Result.error("-1","failure"); + return Result.error(ResponseStatusEnum.ERROR); } @Override public Result login(User user) { String username = user.getUsername(); String password = user.getPassword(); + validate(username, password); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("username",username).eq("password",MD5Util.encrypt(password)); User res = userMapper.selectOne(queryWrapper); @@ -40,6 +45,30 @@ public class UserServiceImpl implements UserService { res.setPassword(null); return Result.success(res); } - return Result.error("-1","账号或者密码错误"); + return Result.error(ResponseStatusEnum.USERNAME_PASSWORD_ERROR); + } + + public void validate(String username, String password) { + if (StringUtils.isEmpty(username)) { + // 用户名为空 + throw new CustomException(ResponseStatusEnum.USERNAME_EMPTY); + } + if (StringUtils.isEmpty(password)) { + // 密码为空 + throw new CustomException(ResponseStatusEnum.PASSWORD_EMPTY); + } + } + + /** + * 非空校验校验用户名、密码、昵称 + * @param username 用户名 + * @param password 密码 + * @param name 用户昵称 + */ + public void validate(String username, String password, String name) { + validate(username, password); + if (StringUtils.isEmpty(name)) { + throw new CustomException(ResponseStatusEnum.NAME_EMPTY); + } } }