From d32f3ff7f3dd57c2e3fa075dc2d606aae3daefd7 Mon Sep 17 00:00:00 2001 From: imjuyongp Date: Fri, 26 Sep 2025 16:48:56 +0900 Subject: [PATCH 1/3] :wrench:Settings: submodule push --- src/main/resources/cesco-BackEnd-config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From cc811ebadc10cc8333ff4e263b9463a456209660 Mon Sep 17 00:00:00 2001 From: imjuyongp Date: Fri, 26 Sep 2025 16:49:42 +0900 Subject: [PATCH 2/3] =?UTF-8?q?:sparkles:Feat:=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EC=9E=90=20=EB=B3=B4=EC=9C=A0=20=ED=81=AC=EB=A0=88=EB=94=A7=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20api=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/user/controller/UserCreditController.java | 10 ++++++++++ .../domain/user/dto/response/UserCreditResponse.java | 10 ++++++++++ .../domain/user/service/UserCreditService.java | 12 ++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 src/main/java/com/practice/likelionhackathoncesco/domain/user/dto/response/UserCreditResponse.java 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..06d6087 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,13 @@ 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..9ffa0c0 --- /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; +} \ No newline at end of file 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..de971f4 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,17 @@ 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) From 79181130c507b06f7f95a402ab2f534b6658a22a Mon Sep 17 00:00:00 2001 From: imjuyongp Date: Fri, 26 Sep 2025 16:53:28 +0900 Subject: [PATCH 3/3] :bug:Fix: code style check --- .../domain/user/controller/UserCreditController.java | 1 - .../domain/user/dto/response/UserCreditResponse.java | 2 +- .../domain/user/service/UserCreditService.java | 7 ++++--- 3 files changed, 5 insertions(+), 5 deletions(-) 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 06d6087..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 @@ -37,5 +37,4 @@ public ResponseEntity> getCredit( 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 index 9ffa0c0..571120d 100644 --- 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 @@ -7,4 +7,4 @@ @AllArgsConstructor public class UserCreditResponse { private Integer credit; -} \ No newline at end of file +} 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 de971f4..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 @@ -44,9 +44,10 @@ 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)); + User user = + userRepository + .findById(userId) + .orElseThrow(() -> new CustomException(UserErrorCode.USER_NOT_FOUND)); log.info("[UserCreditService] 사용자 크레딧 조회 완료 : credit={}", user.getCredit()); return new UserCreditResponse(user.getCredit());