大致分为这三步
首先在usercontroller中增加updatePwd方法
@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");if (!StringUtils.hasLength(oldPwd)||!StringUtils.hasLength(newPwd)||!StringUtils.hasLength(rePwd)){return Result.error("参数有误");}//原密码是否正确//调用userservice根据用户名拿到原密码,再和old_pwd进行比较Map<String,Object> map=ThreadLocalUtil.get();String username = (String) map.get("username");User loginUser = userService.findByUsername(username);if (!loginUser.getPassword().equals(Md5Util.getMD5String(oldPwd))){return Result.error("原密码错误");}//newPwd和rePwd是否一样if (!newPwd.equals(rePwd)){return Result.error("两次密码不一致");}//2.调用service完成密码更新userService.updatePwd(newPwd);return Result.success();}```然后再userservice中增加
//更新密码void updatePwd(String newPwd);再在userserviceimpl实现类中增加```java
@Overridepublic void updatePwd(String newPwd) {Map<String,Object> map= ThreadLocalUtil.get();Integer id = (Integer) map.get("id");userMapper.updatePwd(Md5Util.getMD5String(newPwd),id);}
最后修改mapper层代码
@Update("update user set password=#{md5String},update_time=now() where id=#{id}")void updatePwd(String md5String, Integer id);
okk~