修改“修改密码”功能

This commit is contained in:
lizhanhao 2025-02-25 15:24:11 +08:00
parent 456db7f1ef
commit c389f40848
5 changed files with 62 additions and 18 deletions

View File

@ -106,7 +106,7 @@ public class UserController {
@PutMapping("/changePassword") @PutMapping("/changePassword")
@UserOperation(value="修改了用户密码", modelName = UserOperationModuleEnum.USER) @UserOperation(value="修改了用户密码", modelName = UserOperationModuleEnum.USER)
public ElectromagneticResult<?> changePassword(@RequestBody ChangePasswordRequest request) { public ElectromagneticResult<?> changePassword(@RequestBody ChangePasswordRequest request) {
return userService.changePassword(request.getUserId(), request.getOldPassword(), request.getNewPassword()); return userService.changePassword(request.getUserId(), request.getNewPassword());
} }
@RequiredRole(AdminTypeEnum.SECURITY) @RequiredRole(AdminTypeEnum.SECURITY)
@ -126,4 +126,9 @@ public class UserController {
return ElectromagneticResultUtil.success(adminType); return ElectromagneticResultUtil.success(adminType);
} }
} }
@PostMapping("/validateOldPassword")
@UserOperation(value = "校验了原始密码", modelName = UserOperationModuleEnum.USER)
public ElectromagneticResult<?> validateOldPassword(@RequestBody ValidateOldPasswordRequest request) {
return userService.validateOldPassword(request.getUserId(), request.getOldPassword());
}
} }

View File

@ -2,7 +2,7 @@ package com.electromagnetic.industry.software.manage.pojo.req;
public class ChangePasswordRequest { public class ChangePasswordRequest {
private String userId; private String userId;
private String oldPassword;
private String newPassword; private String newPassword;
// Getters and Setters // Getters and Setters
@ -14,13 +14,6 @@ public class ChangePasswordRequest {
this.userId = userId; this.userId = userId;
} }
public String getOldPassword() {
return oldPassword;
}
public void setOldPassword(String oldPassword) {
this.oldPassword = oldPassword;
}
public String getNewPassword() { public String getNewPassword() {
return newPassword; return newPassword;

View File

@ -0,0 +1,23 @@
package com.electromagnetic.industry.software.manage.pojo.req;
public class ValidateOldPasswordRequest {
private String userId;
private String oldPassword;
// Getters and Setters
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getOldPassword() {
return oldPassword;
}
public void setOldPassword(String oldPassword) {
this.oldPassword = oldPassword;
}
}

View File

@ -95,9 +95,17 @@ public interface UserService {
/** /**
* *
* @param userId 用户ID * @param userId 用户ID
* @param oldPassword
* @param newPassword * @param newPassword
* @return * @return
*/ */
ElectromagneticResult<?> changePassword(String userId, String oldPassword, String newPassword); ElectromagneticResult<?> changePassword(String userId, String newPassword);
/**
* 校验原始密码是否正确
*
* @param userId 用户ID
* @param oldInputPassword 输入的原始密码
* @return 如果密码正确返回成功结果否则返回失败结果
*/
ElectromagneticResult<?> validateOldPassword(String userId, String oldInputPassword);
} }

View File

@ -289,22 +289,18 @@ public class UserServiceImpl implements UserService {
* 修改用户密码 * 修改用户密码
* *
* @param userId 用户ID * @param userId 用户ID
* @param oldPassword 旧密码
* @param newPassword 新密码 * @param newPassword 新密码
* @return 修改结果 * @return 修改结果
*/ */
@Override @Override
public ElectromagneticResult<?> changePassword(String userId, String oldPassword, String newPassword) { public ElectromagneticResult<?> changePassword(String userId, String newPassword) {
User user = userMapper.getSingleUser(userId); User user = userMapper.getSingleUser(userId);
if (user == null) { if (user == null) {
return ElectromagneticResultUtil.fail("53106", "USER_NOT_FOUND"); return ElectromagneticResultUtil.fail("53106", "USER_NOT_FOUND");
} }
if (!matchPassword(user, oldPassword)) { String decodeNewPwd = AESUtils.decrypt(newPassword, UserConstants.SECRET_KEY);
return ElectromagneticResultUtil.fail("53107", "OLD_PASSWORD_INCORRECT"); user.setUserPwd(SignUtils.MD5(decodeNewPwd + user.getSalt()));
}
user.setUserPwd(SignUtils.MD5(newPassword + user.getSalt()));
user.setModifier(UserThreadLocal.getUserId()); user.setModifier(UserThreadLocal.getUserId());
user.setModifierName(UserThreadLocal.getUsername()); user.setModifierName(UserThreadLocal.getUsername());
return ElectromagneticResultUtil.success(userMapper.modify(user) > 0); return ElectromagneticResultUtil.success(userMapper.modify(user) > 0);
@ -353,4 +349,23 @@ public class UserServiceImpl implements UserService {
} }
} }
} }
// UserServiceImpl.java 类中实现以下方法
@Override
public ElectromagneticResult<?> validateOldPassword(String userId, String oldInputPassword) {
User user = userMapper.getSingleUser(userId);
if (user == null) {
return ElectromagneticResultUtil.fail("53106", "USER_NOT_FOUND");
}
String decodeOldPwd = AESUtils.decrypt(oldInputPassword, UserConstants.SECRET_KEY);
// if (!user.getUserPwd().equals(SignUtils.MD5(decodeOldPwd + user.getSalt()))) {
// return ElectromagneticResultUtil.fail("53107", "OLD_PASSWORD_INCORRECT");
// }
if (!matchPassword(user,decodeOldPwd)) {
return ElectromagneticResultUtil.fail("53107", "OLD_PASSWORD_INCORRECT");
}
return ElectromagneticResultUtil.success(true);
}
} }