具体内容:
依旧是查看接口文档信息:
开发思路:
实操:
1.controller
//更新用户密码
@PatchMapping("/updatePwd")
public Result updatePwd(@RequestBody Map<String,String> params) {
//1.校验参数
String oldPwd=params.get("old_pwd");//旧密码
String newPwd=params.get("new_pwd");//新密码
String rePwd=params.get("re_pwd");//确认密码
//2.判断所有的密码是否为空
if(!StringUtils.hasLength(oldPwd)|| !StringUtils.hasLength(newPwd)|| !StringUtils.hasLength(rePwd)){
return Result.error("参数不能为空");
}
//3.判断旧密码是否正确
//调用userService根据用户名拿到原密码,再和oldPwd对比
Map<String,Object>map=ThreadLocalUtil.get();
String username=(String)map.get("username");
User LoginUser=userService.findUserByUsername(username);
if(!LoginUser.getPassword().equals(Md5Util.getMD5String(oldPwd))){
return Result.error("旧密码错误");
}
//4.判断新密码和确认密码是否一致
if(!newPwd.equals(rePwd)){
return Result.error("两次密码不一致");
}
//5.更新密码
userService.updatePwd(newPwd);
return Result.success();
}
2.service接口
3.service实现类
//更新用户密码
@Override
public void updatePwd(String newPassword) {
//获取id
Map<String, Object> map = ThreadLocalUtil.get();
Integer id = (Integer)map.get("id");
//密码要进行加密(导入Md5Util工具类)
String md5String = Md5Util.getMD5String(newPassword);
//调用Mapper更新密码
userMapper.updatePwd(md5String,id);
}
4.Mapper
//更新用户密码
@Update("UPDATE user SET password = #{md5String}, update_time = now() WHERE id = #{id}")
void updatePwd(String md5String, Integer id);
注意!记得判断“新密码”、“旧密码”、“确认密码”,记得解密
密码失败结果:
密码正确结果:
咱们的用户模块暂时更新到这里 ,后续有补充再继续 。下一章就是开启我们项目的功能-《文章管理模块》了,下一章不见不散