更新用户密码
基本信息
请求路径:/user/updatePwd
请求方式:PATCH
接口描述:该接口用于更新已登录用户的密码
请求参数
请求参数格式:application/json
请求参数说明:
参数名称 | 说明 | 类型 | 是否必须 | 备注 |
---|---|---|---|---|
old_pwd | 原密码 | string | 是 | |
new_pwd | 新密码 | string | 是 | |
re_pwd | 确认新密码 | string | 是 |
请求数据样例:
{
"old_pwd":"123456",
"new_pwd":"234567",
"re_pwd":"234567"
}
响应数据
响应数据类型:application/json
响应参数说明:
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
code | number | 必须 | 响应码, 0-成功,1-失败 | ||
message | string | 非必须 | 提示信息 | ||
data | object | 非必须 | 返回的数据 |
响应数据样例:
{
"code": 0,
"message": "操作成功",
"data": null
}
Controller
@PatchMapping("/updatePwd")
public Result updatePwd(@RequestBody Map<String,String> params) {
// 校验参数
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("缺少必要参数!");
}
// 原密码是否正确
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("原密码填写错误!");
}
// 新密码和确认新密码是否正确
if (!newPwd.equals(rePwd)) {
return Result.error("两次填写的新密码不一样!");
}
Integer id = loginUser.getId();
userService.updatePwd(Md5Util.getMD5String(newPwd), id);
return Result.success();
}
service
void updatePwd(String newPwd, Integer id);
serviceImpl
@Override
public void updatePwd(String newPwd, Integer id) {
Object o = ThreadLocalUtil.get();
userMapper.updatePwd(newPwd ,id);
}
mapper
@Update("update user set password=#{newPwd}, update_time=now() where id = #{id}")
void updatePwd(String newPwd, Integer id);