|
@ -137,4 +137,42 @@ public class AdminServiceImpl implements AdminService { |
|
|
return Result.error("密码更新失败"); |
|
|
return Result.error("密码更新失败"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public Result resetPassword(Password password) { |
|
|
|
|
|
|
|
|
|
|
|
String newPassword = password.getNewPassword(); |
|
|
|
|
|
if(newPassword == null ||password.getAccount() == null) { |
|
|
|
|
|
return Result.error("输入不能为空"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 检查新密码是否符合复杂度要求 |
|
|
|
|
|
if (!PASSWORD_PATTERN.matcher(newPassword).matches()) { |
|
|
|
|
|
return Result.error("新密码必须为8-16位数字、字母或符号组成,且至少包含其中两种"); |
|
|
|
|
|
} |
|
|
|
|
|
if(adminMapper.getAdmin(password.getAccount())==null) |
|
|
|
|
|
{ |
|
|
|
|
|
return Result.error("用户不存在"); |
|
|
|
|
|
} |
|
|
|
|
|
try { |
|
|
|
|
|
// 获取认证后的用户信息 |
|
|
|
|
|
Admin admin = adminMapper.getAdmin(password.getAccount()); |
|
|
|
|
|
|
|
|
|
|
|
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); |
|
|
|
|
|
// 使用Spring管理的密码编码器(不要手动new) |
|
|
|
|
|
String encodedPassword = passwordEncoder.encode(newPassword); |
|
|
|
|
|
|
|
|
|
|
|
// 更新数据库中的密码 |
|
|
|
|
|
admin.setPassword(encodedPassword); |
|
|
|
|
|
admin.setUpdateTime(new Date()); // 更新修改时间 |
|
|
|
|
|
adminMapper.updatePassword(admin); |
|
|
|
|
|
|
|
|
|
|
|
return Result.success("密码重置成功"); |
|
|
|
|
|
} |
|
|
|
|
|
catch (Exception e) { |
|
|
|
|
|
return Result.error("密码重置失败"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |