From 6fc3aa0f39bb7f29bb99b0ca18e61dd3494b4919 Mon Sep 17 00:00:00 2001 From: seonjuuu Date: Thu, 8 May 2025 16:11:04 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[feat]=20=EB=B3=B4=EC=A6=9D=EA=B8=88=20?= =?UTF-8?q?=EC=B0=A8=EA=B0=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/pirocheck/.gitignore | 2 +- backend/pirocheck/gradlew | 0 .../pirocheck/Deposit/service/DepositService.java | 10 +++++----- 3 files changed, 6 insertions(+), 6 deletions(-) mode change 100644 => 100755 backend/pirocheck/gradlew diff --git a/backend/pirocheck/.gitignore b/backend/pirocheck/.gitignore index 3fac0c4..a122e8b 100644 --- a/backend/pirocheck/.gitignore +++ b/backend/pirocheck/.gitignore @@ -40,4 +40,4 @@ out/ ### 환경 변수 ### ../../.env -.env \ No newline at end of file +../../.env \ No newline at end of file diff --git a/backend/pirocheck/gradlew b/backend/pirocheck/gradlew old mode 100644 new mode 100755 diff --git a/backend/pirocheck/src/main/java/backend/pirocheck/Deposit/service/DepositService.java b/backend/pirocheck/src/main/java/backend/pirocheck/Deposit/service/DepositService.java index f8cd876..ce3da5f 100644 --- a/backend/pirocheck/src/main/java/backend/pirocheck/Deposit/service/DepositService.java +++ b/backend/pirocheck/src/main/java/backend/pirocheck/Deposit/service/DepositService.java @@ -20,7 +20,7 @@ public class DepositService { private final DepositRepository depositRepository; private final UserRepository userRepository; private final AttendanceRepository attendanceRepository; - private final AssignmentRepository assignmentRepository; // 확인 + private final AssignmentRepository assignmentRepository; @Transactional public DepositResDto getDeposit(Long userId) { @@ -31,12 +31,12 @@ public DepositResDto getDeposit(Long userId) { // 출석 실패 int failAttendanceCount = attendanceRepository.countByUserAndStatusFalse(user); - int descentAttendance = failAttendanceCount * 10000; + int descentAttendance = failAttendanceCount * 10_000; // 과제 실패 - int failAssignmentCount = assignmentRepository.countByUserAndSubmitted(user, AssignmentStatus.FAILURE); // 확인 - int weakAssignmentCount = assignmentRepository.countByUserAndSubmitted(user, AssignmentStatus.INSUFFICIENT); // 확인 - int descentAssignment = failAssignmentCount * 10_000 + weakAssignmentCount * 5_000; + int failAssignmentCount = assignmentRepository.countByUserAndSubmitted(user, AssignmentStatus.FAILURE); + int weakAssignmentCount = assignmentRepository.countByUserAndSubmitted(user, AssignmentStatus.INSUFFICIENT); + int descentAssignment = failAssignmentCount * 20_000 + weakAssignmentCount * 10_000; // 방어권 int ascentDefence = deposit.getAscentDefence(); From 8bf9a7cfadb57a900762ca16d49d2ca80710807d Mon Sep 17 00:00:00 2001 From: seonjuuu Date: Thu, 8 May 2025 16:38:00 +0900 Subject: [PATCH 2/2] [feat] login exception --- .../User/exception/GlobalExceptionHandler.java | 18 ++++++++++++++++++ .../User/exception/InvalidLoginException.java | 7 +++++++ .../pirocheck/User/service/UserService.java | 12 +++++++++--- 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 backend/pirocheck/src/main/java/backend/pirocheck/User/exception/GlobalExceptionHandler.java create mode 100644 backend/pirocheck/src/main/java/backend/pirocheck/User/exception/InvalidLoginException.java diff --git a/backend/pirocheck/src/main/java/backend/pirocheck/User/exception/GlobalExceptionHandler.java b/backend/pirocheck/src/main/java/backend/pirocheck/User/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..a135034 --- /dev/null +++ b/backend/pirocheck/src/main/java/backend/pirocheck/User/exception/GlobalExceptionHandler.java @@ -0,0 +1,18 @@ +package backend.pirocheck.User.exception; + +import backend.pirocheck.Attendance.dto.response.ApiResponse; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +@RestControllerAdvice +public class GlobalExceptionHandler { + + @ExceptionHandler(InvalidLoginException.class) + public ResponseEntity> handleInvalidLoginException(InvalidLoginException e) { + return ResponseEntity + .status(HttpStatus.UNAUTHORIZED) // 401 상태 코드 + .body(ApiResponse.error(e.getMessage())); // 에러 메시지 전달 + } +} diff --git a/backend/pirocheck/src/main/java/backend/pirocheck/User/exception/InvalidLoginException.java b/backend/pirocheck/src/main/java/backend/pirocheck/User/exception/InvalidLoginException.java new file mode 100644 index 0000000..0ee5021 --- /dev/null +++ b/backend/pirocheck/src/main/java/backend/pirocheck/User/exception/InvalidLoginException.java @@ -0,0 +1,7 @@ +package backend.pirocheck.User.exception; + +public class InvalidLoginException extends RuntimeException{ + public InvalidLoginException(String message) { + super(message); + } +} diff --git a/backend/pirocheck/src/main/java/backend/pirocheck/User/service/UserService.java b/backend/pirocheck/src/main/java/backend/pirocheck/User/service/UserService.java index 304edd8..a26d18f 100644 --- a/backend/pirocheck/src/main/java/backend/pirocheck/User/service/UserService.java +++ b/backend/pirocheck/src/main/java/backend/pirocheck/User/service/UserService.java @@ -1,6 +1,7 @@ package backend.pirocheck.User.service; import backend.pirocheck.User.entity.User; +import backend.pirocheck.User.exception.InvalidLoginException; import backend.pirocheck.User.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -12,8 +13,13 @@ public class UserService { private final UserRepository userRepository; public User login(String name, String password) { - return userRepository.findByName(name) - .filter(user -> user.getPassword().equals(password)) - .orElseThrow(() -> new IllegalArgumentException("이름 또는 비밀번호가 일치하지 않습니다.")); + User user = userRepository.findByName(name) + .orElseThrow(() -> new InvalidLoginException("해당 사용자가 존재하지 않습니다.")); + + if (!user.getPassword().equals(password)) { + throw new InvalidLoginException("비밀번호가 일치하지 않습니다."); + } + + return user; } }