feat(user): 添加用户修改密码功能

- 在前端 HomePage 组件中添加修改密码对话框
- 在 API 中添加 updatePassword 接口
- 在后端 UserController 中添加密码更新接口
- 在 UserService 中添加 updatePassword 方法
- 实现密码更新逻辑,包括旧密码验证和新密码加密
This commit is contained in:
ikmkj
2025-08-01 20:20:17 +08:00
parent df80ca6968
commit 165bd5ea92
8 changed files with 144 additions and 6 deletions

View File

@@ -1,5 +1,6 @@
package com.test.bijihoudaun.controller;
import com.test.bijihoudaun.bo.UpdatePasswordBo;
import com.test.bijihoudaun.common.response.R;
import com.test.bijihoudaun.entity.User;
import com.test.bijihoudaun.service.RegistrationCodeService;
@@ -10,11 +11,9 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@@ -79,4 +78,13 @@ public class UserController {
return R.success("Token is valid");
}
@Operation(summary = "更新用户密码")
@PutMapping("/password")
public R<String> updatePassword(@RequestBody UpdatePasswordBo updatePasswordBo) {
UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
String username = userDetails.getUsername();
User user = userService.getOne(new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<User>().eq("username", username));
userService.updatePassword(user.getId(), updatePasswordBo);
return R.success("密码更新成功");
}
}