SpringBoot企业级开发之【用户模块-更新用户密码】

具体内容:

依旧是查看接口文档信息:

开发思路:

实操:
 

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);

注意!记得判断“新密码”、“旧密码”、“确认密码”,记得解密

密码失败结果:

密码正确结果:

咱们的用户模块暂时更新到这里 ,后续有补充再继续 。下一章就是开启我们项目的功能-《文章管理模块》了,下一章不见不散

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值