From 58e456f3b364394ded1c2fa34140d00da703a00e Mon Sep 17 00:00:00 2001 From: heshunme Date: Mon, 1 Jul 2024 19:20:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AuthenticationController.java | 13 +++++++++++ .../dto/ManageUserProfileRequest.java | 16 ++++++++++++++ .../authentication/service/UserService.java | 22 +++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 src/main/java/org/cmh/backend/authentication/dto/ManageUserProfileRequest.java diff --git a/src/main/java/org/cmh/backend/authentication/controller/AuthenticationController.java b/src/main/java/org/cmh/backend/authentication/controller/AuthenticationController.java index 73d0590..5ec7e11 100644 --- a/src/main/java/org/cmh/backend/authentication/controller/AuthenticationController.java +++ b/src/main/java/org/cmh/backend/authentication/controller/AuthenticationController.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; import org.cmh.backend.Utils.JwtUtil; +import org.cmh.backend.authentication.dto.ManageUserProfileRequest; import org.cmh.backend.authentication.model.UserHS; import org.cmh.backend.authentication.service.UserService; import org.springframework.beans.factory.annotation.Autowired; @@ -73,6 +74,18 @@ class AuthenticationController { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } + @PostMapping("/manageUserProfile") + public ResponseEntity manageUserProfile(@RequestBody ManageUserProfileRequest userProfileRequest) { + String username = JwtUtil.extractUsername(userProfileRequest.getToken()); + if (username != null) { + boolean succeeded = userService.updateUserProfile(username, userProfileRequest); + if (succeeded) { + return new ResponseEntity<>(HttpStatus.OK); + } + } + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + } diff --git a/src/main/java/org/cmh/backend/authentication/dto/ManageUserProfileRequest.java b/src/main/java/org/cmh/backend/authentication/dto/ManageUserProfileRequest.java new file mode 100644 index 0000000..6c37924 --- /dev/null +++ b/src/main/java/org/cmh/backend/authentication/dto/ManageUserProfileRequest.java @@ -0,0 +1,16 @@ +package org.cmh.backend.authentication.dto; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ManageUserProfileRequest { + private String token; + private String nickname; + private String gender; + private String phoneNumber; + private String email; + private String department; + private String role; +} diff --git a/src/main/java/org/cmh/backend/authentication/service/UserService.java b/src/main/java/org/cmh/backend/authentication/service/UserService.java index ac1620a..a901360 100644 --- a/src/main/java/org/cmh/backend/authentication/service/UserService.java +++ b/src/main/java/org/cmh/backend/authentication/service/UserService.java @@ -1,5 +1,6 @@ package org.cmh.backend.authentication.service; +import org.cmh.backend.authentication.dto.ManageUserProfileRequest; import org.cmh.backend.authentication.model.UserHS; import org.cmh.backend.authentication.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -57,6 +58,27 @@ public class UserService { return user != null && passwordEncoder.matches(password, user.getPassword()); } + public boolean updateUserProfile(String username, ManageUserProfileRequest request) { + UserHS user = userRepository.findByUsername(username); + if (user != null) { + user.setNickname(request.getNickname()); + user.setGender(request.getGender()); + user.setPhoneNumber(request.getPhoneNumber()); + user.setEmail(request.getEmail()); + user.setDepartment(request.getDepartment()); + user.setRole(request.getRole()); + try{ + userRepository.save(user); + } + catch (Exception e) { + return false; + } + return true; + } else { + return false; + } +} + // 验证用户名格式 private boolean isValidUsername(String username) {