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 85b5585..7408780 100644 --- a/code/backend/src/main/java/org/example/common/ResponseStatusEnum.java +++ b/code/backend/src/main/java/org/example/common/ResponseStatusEnum.java @@ -25,12 +25,15 @@ public enum ResponseStatusEnum implements CommonResp{ TOKEN_EXPIRED("1015", "token过期"), AUTHENTICATE_FAIL("1016", "认证失败,无法访问系统资源"), + REQUEST_BODY_MISSING("1017", "请求数据体缺失"), LOGIN_NOT_ADMIN("1018", "管理员登录失败,不是管理员"), USERNAME_EMPTY("1019", "用户名为空"), PASSWORD_EMPTY("1020", "密码为空"), NAME_EMPTY("1021", "用户昵称为空"), + UPDATE_PASSWORD_EMPTY("1022","修改密码为空"), + /** 20XX 表示服务器错误 */ 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 db2db0f..f95faea 100644 --- a/code/backend/src/main/java/org/example/controller/UserController.java +++ b/code/backend/src/main/java/org/example/controller/UserController.java @@ -3,6 +3,7 @@ package org.example.controller; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.example.pojo.User; +import org.example.pojo.UserPassword; import org.example.service.UserService; import org.example.utils.Result; import org.springframework.beans.factory.annotation.Autowired; @@ -28,10 +29,18 @@ public class UserController { return userService.login(user); } - @Operation(summary = "修改", description = "修改用户信息接口,传用户名,其他修改哪个传哪个,不需要传的设为null") + @Operation(summary = "修改", description = "修改用户信息接口,传用户名和密码,其他修改哪个传哪个,不需要的不传或者设为null") @PutMapping("/update") public Result update(@RequestBody User user){ return userService.update(user); } + + @Operation(summary = "修改", description = "修改用户密码接口,传用户名、密码和修改后的密码") + @PutMapping("/rpassword") + public Result rPassword(@RequestBody UserPassword userPassword){ + System.out.println(userPassword); + return userService.rPassword(userPassword); + + } } diff --git a/code/backend/src/main/java/org/example/pojo/User.java b/code/backend/src/main/java/org/example/pojo/User.java index d6e88bf..7e5629a 100644 --- a/code/backend/src/main/java/org/example/pojo/User.java +++ b/code/backend/src/main/java/org/example/pojo/User.java @@ -12,20 +12,20 @@ import lombok.Builder; public class User { @Schema(title = "用户id,不需要传") private Integer id; - @Schema(title = "用户名,必需") + @Schema(title = "用户名") private String username; - @Schema(title = "用户昵称,非必需") + @Schema(title = "用户昵称") private String name; - @Schema(title = "用户密码,登录时必需") + @Schema(title = "用户密码") private String password; - @Schema(title = "用户工作单位,非必须") + @Schema(title = "用户工作单位") @TableField("workUnit") private String workUnit; - @Schema(title = "用户邮箱,非必须") + @Schema(title = "用户邮箱") private String email; - @Schema(title = "用户电话,非必须") + @Schema(title = "用户电话") private String phone; - @Schema(title = "用户头像url,非必须") + @Schema(title = "用户头像url") private String avatar; } diff --git a/code/backend/src/main/java/org/example/pojo/UserPassword.java b/code/backend/src/main/java/org/example/pojo/UserPassword.java new file mode 100644 index 0000000..56052f5 --- /dev/null +++ b/code/backend/src/main/java/org/example/pojo/UserPassword.java @@ -0,0 +1,17 @@ +package org.example.pojo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; + +@Data +@Builder +@Schema(title = "用户修改密码相关信息") +public class UserPassword { + @Schema(title = "用户名,必需") + private String username; + @Schema(title = "用户密码,必需") + private String password; + @Schema(title = "用户修改后的密码,必需") + private String rpassword; +} diff --git a/code/backend/src/main/java/org/example/service/UserService.java b/code/backend/src/main/java/org/example/service/UserService.java index 51e4f4b..b423815 100644 --- a/code/backend/src/main/java/org/example/service/UserService.java +++ b/code/backend/src/main/java/org/example/service/UserService.java @@ -1,6 +1,7 @@ package org.example.service; import org.example.pojo.User; +import org.example.pojo.UserPassword; import org.example.utils.Result; public interface UserService { @@ -9,4 +10,6 @@ public interface UserService { public Result register(User user); public Result login(User user); + + Result rPassword(UserPassword userPassword); } 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 c92dda2..fbc5ae2 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 @@ -6,6 +6,7 @@ import org.example.common.ResponseStatusEnum; import org.example.exception.CustomException; import org.example.mapper.UserMapper; import org.example.pojo.User; +import org.example.pojo.UserPassword; import org.example.service.UserService; import org.example.utils.MD5Util; import org.example.utils.Result; @@ -48,12 +49,36 @@ public class UserServiceImpl implements UserService { return Result.error(ResponseStatusEnum.USERNAME_PASSWORD_ERROR); } + @Override + public Result rPassword(UserPassword userPassword) { + validate(userPassword.getUsername(), userPassword.getPassword(), userPassword.getRpassword(),1); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("username", userPassword.getUsername()); + User user = userMapper.selectOne(queryWrapper); + if(user==null){ + return Result.error(ResponseStatusEnum.USER_ACCOUNT_NOT_EXIST); + } + if(user.getPassword().equals(MD5Util.encrypt(userPassword.getPassword()))){ + if(user.getPassword().equals(MD5Util.encrypt(userPassword.getRpassword()))){ + return Result.success("0","修改密码与原密码一致"); + } + user.setPassword(MD5Util.encrypt(userPassword.getRpassword())); + int count = userMapper.update(user,queryWrapper); + if(count>0){ + return Result.success("0","修改密码成功"); + }else{ + return Result.error(ResponseStatusEnum.UPDATE_USER_PASSWORD_FAILED); + } + } + return Result.error(ResponseStatusEnum.PASSWORD_ERROR); + } + public void validate(String username, String password) { - if (StringUtils.isEmpty(username)) { + if (StringUtils.isBlank(username)) { // 用户名为空 throw new CustomException(ResponseStatusEnum.USERNAME_EMPTY); } - if (StringUtils.isEmpty(password)) { + if (StringUtils.isBlank(password)) { // 密码为空 throw new CustomException(ResponseStatusEnum.PASSWORD_EMPTY); } @@ -72,14 +97,31 @@ public class UserServiceImpl implements UserService { } } + public void validate(String username, String password, String rpassword, Integer flag) { + validate(username, password); + if(StringUtils.isBlank(rpassword)){ + throw new CustomException(ResponseStatusEnum.UPDATE_PASSWORD_EMPTY); + } + + } + @Override public Result update(User user) { + validate(user.getUsername(), user.getPassword()); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("username",user.getUsername()); - int count = userMapper.update(user,queryWrapper); - if(count>0){ - return Result.success(); + User user1 = userMapper.selectOne(queryWrapper); + if(user1==null){ + return Result.error(ResponseStatusEnum.USER_ACCOUNT_NOT_EXIST); + } + if(user1.getPassword().equals(MD5Util.encrypt(user.getPassword()))){ + user.setPassword(MD5Util.encrypt(user.getPassword())); + int count = userMapper.update(user,queryWrapper); + if(count>0){ + return Result.success("0","修改个人信息成功"); + } + return Result.error(ResponseStatusEnum.UPDATE_USER_INFO_FAILED); } - return Result.error("-1", "修改失败"); + return Result.error(ResponseStatusEnum.USERNAME_PASSWORD_ERROR); } }