黑馬程序員2023最新Java項目實戰(zhàn)《蒼穹外賣》,最適合新手的SpringBo

看到視頻好像沒教修改員工密碼的接口,Java萌新來放個代碼。
先放個圖片版清晰一點:

可復制代碼版:
@PutMapping("/editPassword") @ApiOperation(value = "修改員工密碼") public Result updatePassword(@RequestBody PasswordEditDTO passwordEditDTO){ //1.根據(jù)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,查出來員工數(shù)據(jù),然后對比前端用戶輸入的原密碼和數(shù)據(jù)庫里的是否一致,一致就修改成功,不一致就error自己定義一個常亮就可以。
注意比對密碼時用equals方法而不是==,我一開始犯了這個錯誤,前端密碼輸對了也給我報錯,找了半天發(fā)現(xiàn)是這個問題,這也是一個很基礎的問題了,屬于面試八股的Java基礎部分,==比較引用數(shù)據(jù)類型時,會比較地址值,所以盡管密碼一樣還會報錯。
標簽: