diff --git a/src/main/java/com/practice/likelionhackathoncesco/domain/user/controller/UserCreditController.java b/src/main/java/com/practice/likelionhackathoncesco/domain/user/controller/UserCreditController.java index 294f0fb..8244b10 100644 --- a/src/main/java/com/practice/likelionhackathoncesco/domain/user/controller/UserCreditController.java +++ b/src/main/java/com/practice/likelionhackathoncesco/domain/user/controller/UserCreditController.java @@ -1,6 +1,7 @@ package com.practice.likelionhackathoncesco.domain.user.controller; import com.practice.likelionhackathoncesco.domain.user.dto.response.CreditResponse; +import com.practice.likelionhackathoncesco.domain.user.dto.response.UserCreditResponse; import com.practice.likelionhackathoncesco.domain.user.service.UserCreditService; import com.practice.likelionhackathoncesco.global.response.BaseResponse; import io.swagger.v3.oas.annotations.Operation; @@ -28,4 +29,12 @@ public ResponseEntity> getCreditStep( CreditResponse creditResponse = userCreditService.PostCreditStep(userId); return ResponseEntity.ok(BaseResponse.success("크레딧 지급 기준 충족 여부 조회 완료", creditResponse)); } + + @Operation(summary = "사용자 보유 크레딧 조회", description = "사용자의 보유 크레딧을 조회하는 API") + @GetMapping("/hascredit/{userId}") + public ResponseEntity> getCredit( + @Parameter(description = "사용자 ID") @PathVariable Long userId) { + UserCreditResponse userCreditResponse = userCreditService.getUserCredit(userId); + return ResponseEntity.ok(BaseResponse.success("사용자 보유 크레딧 조회 완료", userCreditResponse)); + } } diff --git a/src/main/java/com/practice/likelionhackathoncesco/domain/user/dto/response/UserCreditResponse.java b/src/main/java/com/practice/likelionhackathoncesco/domain/user/dto/response/UserCreditResponse.java new file mode 100644 index 0000000..571120d --- /dev/null +++ b/src/main/java/com/practice/likelionhackathoncesco/domain/user/dto/response/UserCreditResponse.java @@ -0,0 +1,10 @@ +package com.practice.likelionhackathoncesco.domain.user.dto.response; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class UserCreditResponse { + private Integer credit; +} diff --git a/src/main/java/com/practice/likelionhackathoncesco/domain/user/service/UserCreditService.java b/src/main/java/com/practice/likelionhackathoncesco/domain/user/service/UserCreditService.java index 5354430..2c90a81 100644 --- a/src/main/java/com/practice/likelionhackathoncesco/domain/user/service/UserCreditService.java +++ b/src/main/java/com/practice/likelionhackathoncesco/domain/user/service/UserCreditService.java @@ -1,6 +1,7 @@ package com.practice.likelionhackathoncesco.domain.user.service; import com.practice.likelionhackathoncesco.domain.user.dto.response.CreditResponse; +import com.practice.likelionhackathoncesco.domain.user.dto.response.UserCreditResponse; import com.practice.likelionhackathoncesco.domain.user.entity.User; import com.practice.likelionhackathoncesco.domain.user.exception.UserErrorCode; import com.practice.likelionhackathoncesco.domain.user.repository.UserRepository; @@ -40,6 +41,18 @@ public CreditResponse PostCreditStep(Long userId) { } } + @Transactional(readOnly = true) + public UserCreditResponse getUserCredit(Long userId) { + log.info("[UserCreditService] 사용자 크레딧 조회 시도"); + User user = + userRepository + .findById(userId) + .orElseThrow(() -> new CustomException(UserErrorCode.USER_NOT_FOUND)); + + log.info("[UserCreditService] 사용자 크레딧 조회 완료 : credit={}", user.getCredit()); + return new UserCreditResponse(user.getCredit()); + } + public CreditResponse toCreditResponse(Boolean one, Boolean five, Boolean fifteen) { return CreditResponse.builder() .postCountOne(one) diff --git a/src/main/resources/cesco-BackEnd-config b/src/main/resources/cesco-BackEnd-config index 4809408..ee4b163 160000 --- a/src/main/resources/cesco-BackEnd-config +++ b/src/main/resources/cesco-BackEnd-config @@ -1 +1 @@ -Subproject commit 4809408a5e723bd2d340be14cfe49a4357616f9c +Subproject commit ee4b16305b5c171fd89a0f71c4b0401918051447