后端用户相关接口的修改和添加

main
YangT-ao 2 years ago
parent bfea8308cb
commit e696bb9db4

@ -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 表示服务器错误 */

@ -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);
}
}

@ -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;
}

@ -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;
}

@ -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);
}

@ -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<User> 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<User> 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);
}
}

Loading…
Cancel
Save