feat: 添加用户自身修改密码
This commit is contained in:
parent
f226f4ad98
commit
162d2e7782
|
@ -45,6 +45,7 @@ public enum ResultCodeEnum {
|
|||
DATA_NOT_EXIST(206, "数据不存在"),
|
||||
USER_IS_EMPTY(206, "用户不存在"),
|
||||
FILE_NOT_EXIST(206, "文件不存在"),
|
||||
NEW_PASSWORD_SAME_OLD_PASSWORD(206, "新密码不能和旧密码相同"),
|
||||
|
||||
// 身份过期 208
|
||||
LOGIN_AUTH(208, "请先登陆"),
|
||||
|
|
|
@ -77,6 +77,20 @@ public class UserController {
|
|||
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
|
||||
}
|
||||
|
||||
@Operation(summary = "更新本地用户密码", description = "更新本地用户密码")
|
||||
@PutMapping("noManage/updateUserPasswordByLocalUser")
|
||||
public Result<String> updateUserPasswordByLocalUser(String password) {
|
||||
userService.updateUserPasswordByLocalUser(password);
|
||||
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
|
||||
}
|
||||
|
||||
@Operation(summary = "管理员修改用户密码", description = "管理员修改管理员用户密码")
|
||||
@PutMapping("updateUserPasswordByAdmin")
|
||||
public Result<String> updateUserPasswordByAdmin(@Valid @RequestBody AdminUserUpdateWithPasswordDto dto) {
|
||||
userService.updateUserPasswordByAdmin(dto);
|
||||
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
|
||||
}
|
||||
|
||||
@Operation(summary = "修改用户状态", description = "管理员修改用户状态")
|
||||
@PutMapping("updateUserStatusByAdmin")
|
||||
public Result<String> updateUserStatusByAdmin(@Valid @RequestBody AdminUserUpdateUserStatusDto dto) {
|
||||
|
@ -84,13 +98,6 @@ public class UserController {
|
|||
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
|
||||
}
|
||||
|
||||
@Operation(summary = "修改管理员用户密码", description = "管理员修改管理员用户密码")
|
||||
@PutMapping("updateUserPasswordByAdmin")
|
||||
public Result<String> updateUserPasswordByAdmin(@Valid @RequestBody AdminUserUpdateWithPasswordDto dto) {
|
||||
userService.updateUserPasswordByAdmin(dto);
|
||||
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
|
||||
}
|
||||
|
||||
@Operation(summary = "修改用户头像", description = "管理员修改用户头像")
|
||||
@PutMapping("uploadAvatarByAdmin")
|
||||
public Result<String> uploadAvatarByAdmin(@Valid UserUpdateWithAvatarDto dto) {
|
||||
|
|
|
@ -129,4 +129,11 @@ public interface UserService extends IService<AdminUser> {
|
|||
* @param dto 用户信息
|
||||
*/
|
||||
void updateAdminUserByLocalUser(AdminUserUpdateByLocalUserDto dto);
|
||||
|
||||
/**
|
||||
* * 更新本地用户密码
|
||||
*
|
||||
* @param password 更新本地用户密码
|
||||
*/
|
||||
void updateUserPasswordByLocalUser(@Valid String password);
|
||||
}
|
||||
|
|
|
@ -202,14 +202,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, AdminUser> implemen
|
|||
AdminUser adminUser = getOne(Wrappers.<AdminUser>lambdaQuery().eq(AdminUser::getId, userId));
|
||||
|
||||
// 判断是否存在这个用户
|
||||
if (adminUser == null) {
|
||||
throw new BunnyException(ResultCodeEnum.USER_IS_EMPTY);
|
||||
}
|
||||
if (adminUser == null) throw new BunnyException(ResultCodeEnum.USER_IS_EMPTY);
|
||||
|
||||
// 判断新密码是否与旧密码相同
|
||||
if (adminUser.getPassword().equals(md5Password)) {
|
||||
if (adminUser.getPassword().equals(md5Password))
|
||||
throw new BunnyException(ResultCodeEnum.UPDATE_NEW_PASSWORD_SAME_AS_OLD_PASSWORD);
|
||||
}
|
||||
|
||||
// 删除Redis中登录用户信息
|
||||
redisTemplate.delete(RedisUserConstant.getAdminLoginInfoPrefix(adminUser.getEmail()));
|
||||
|
||||
// 更新用户密码
|
||||
adminUser = new AdminUser();
|
||||
|
@ -348,6 +348,39 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, AdminUser> implemen
|
|||
updateById(adminUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* * 更新本地用户密码
|
||||
*
|
||||
* @param password 更新本地用户密码
|
||||
*/
|
||||
@Override
|
||||
public void updateUserPasswordByLocalUser(@Valid String password) {
|
||||
// 根据当前用户查询用户信息
|
||||
Long userId = BaseContext.getUserId();
|
||||
AdminUser adminUser = getOne(Wrappers.<AdminUser>lambdaQuery().eq(AdminUser::getId, userId));
|
||||
|
||||
// 判断用户是否存在
|
||||
if (adminUser == null) throw new BunnyException(ResultCodeEnum.USER_IS_EMPTY);
|
||||
|
||||
// 数据库中的密码
|
||||
String dbPassword = adminUser.getPassword();
|
||||
password = DigestUtils.md5DigestAsHex(password.getBytes());
|
||||
|
||||
// 判断数据库中密码是否和更新用户密码相同
|
||||
if (dbPassword.equals(password)) throw new BunnyException(ResultCodeEnum.NEW_PASSWORD_SAME_OLD_PASSWORD);
|
||||
|
||||
// 删除Redis中登录用户信息
|
||||
redisTemplate.delete(RedisUserConstant.getAdminLoginInfoPrefix(adminUser.getEmail()));
|
||||
|
||||
// 更新用户密码
|
||||
adminUser = new AdminUser();
|
||||
adminUser.setId(userId);
|
||||
adminUser.setPassword(password);
|
||||
updateById(adminUser);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* * 用户信息 服务实现类
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue