欢迎光临散文网 会员登陆 & 注册

黑马程序员2023最新Java项目实战《苍穹外卖》,最适合新手的SpringBo

2023-08-07 09:25 作者:某部长の橘子酱  | 我要投稿

看到视频好像没教修改员工密码的接口,Java萌新来放个代码。

先放个图片版清晰一点:

可复制代码版:

@PutMapping("/editPassword")
@ApiOperation(value = "修改员工密码")
public Result updatePassword(@RequestBody PasswordEditDTO passwordEditDTO){
    //1.根据id查出员工信息
    //先把当前员工id搞出来封装进EmployeeDTO里
    Long currentId = BaseContext.getCurrentId();
    passwordEditDTO.setEmpId(currentId);
    //通过id查出当前员工的信息
    Employee employee = employeeService.getById(currentId);
    //2.修改密码
    String oldPassword=passwordEditDTO.getOldPassword();
    oldPassword= DigestUtils.md5DigestAsHex(oldPassword.getBytes());
    //如果原密码正确,那么修改密码
    if (oldPassword.equals(employee.getPassword())){
        employee.setPassword(DigestUtils.md5DigestAsHex(passwordEditDTO.getNewPassword().getBytes()));
        employeeService.updateById(employee);
    }else {
        return Result.error(MessageConstant.OLDPASSWORD_ERROR);
    }
    return Result.success(MessageConstant.UPDATE_SUCCESS);
}

稍微讲讲,我的思路就是获取到当前员工的id,查出来员工数据,然后对比前端用户输入的原密码和数据库里的是否一致,一致就修改成功,不一致就error自己定义一个常亮就可以。

注意比对密码时用equals方法而不是==,我一开始犯了这个错误,前端密码输对了也给我报错,找了半天发现是这个问题,这也是一个很基础的问题了,属于面试八股的Java基础部分,==比较引用数据类型时,会比较地址值,所以尽管密码一样还会报错。

黑马程序员2023最新Java项目实战《苍穹外卖》,最适合新手的SpringBo的评论 (共 条)

分享到微博请遵守国家法律