From 32b916c0335b1c0d01d834848dea0d13283642d3 Mon Sep 17 00:00:00 2001 From: soohyun Date: Wed, 21 Feb 2024 22:28:01 +0900 Subject: [PATCH] =?UTF-8?q?[Refactor]=20user=20=ED=8E=98=EC=9D=B4=EC=A7=80?= =?UTF-8?q?=EC=97=90=20=EB=82=A8=EC=9D=80=20=EA=B8=88=EC=95=A1=20=EB=82=A8?= =?UTF-8?q?=EC=9D=80=20=ED=9A=9F=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/response/user/UserResponseDto.java | 8 ++++++-- .../org/winey/server/service/UserService.java | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/winey/server/controller/response/user/UserResponseDto.java b/src/main/java/org/winey/server/controller/response/user/UserResponseDto.java index c9ad4f6..45281be 100644 --- a/src/main/java/org/winey/server/controller/response/user/UserResponseDto.java +++ b/src/main/java/org/winey/server/controller/response/user/UserResponseDto.java @@ -1,5 +1,7 @@ package org.winey.server.controller.response.user; +import org.winey.server.domain.user.UserLevel; + import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Getter; @@ -25,14 +27,16 @@ public static class UserData { private Long amountSavedHundredDays; private Long amountSavedTwoWeeks; private Long amountSpentTwoWeeks; + private Long remainingAmount; + private Long remainingCount; } public static UserResponseDto of(Long userId, String nickname, String userLevel, Boolean fcmIsAllowed, Long accumulatedAmount, Long amountSavedHundredDays, Long amountSavedTwoWeeks, - Long amountSpentTwoWeeks) { + Long amountSpentTwoWeeks, Long remainingAmount, Long remainingCount) { UserData userData = new UserData(userId, nickname, userLevel, fcmIsAllowed, accumulatedAmount, - amountSavedHundredDays, amountSavedTwoWeeks, amountSpentTwoWeeks); + amountSavedHundredDays, amountSavedTwoWeeks, amountSpentTwoWeeks,remainingAmount,remainingCount); return new UserResponseDto(userData); } } diff --git a/src/main/java/org/winey/server/service/UserService.java b/src/main/java/org/winey/server/service/UserService.java index 1299e5b..41e3f41 100644 --- a/src/main/java/org/winey/server/service/UserService.java +++ b/src/main/java/org/winey/server/service/UserService.java @@ -35,12 +35,23 @@ public UserResponseDto getUser(Long userId) { Long amountSavedTwoWeeks = feedRepository.getSavedAmountForPeriod(user, twoWeeksAgo); Long amountSpentTwoWeeks = feedRepository.getSpentAmountForPeriod(user, twoWeeksAgo); + UserLevel nextUserLevel = UserLevel.getNextUserLevel(user.getUserLevel()); + + long savedAmountOfUser = user.getSavedAmount() == null ? 0L : user.getSavedAmount(); //기존의 getSavedAmount()했을 시 null -> 0L로 처리 + long savedCountOfUser = user.getSavedCount() == null ? 0L : user.getSavedCount(); //위와 이유 같음. + + long remainingAmount = nextUserLevel == null ? 0L : nextUserLevel.getMinimumAmount() - savedAmountOfUser; + long remainingCount = nextUserLevel == null ? 0L : nextUserLevel.getMinimumCount() - savedCountOfUser; + return UserResponseDto.of(user.getUserId(), user.getNickname(), - user.getUserLevel().getName(), user.getFcmIsAllowed(), + user.getUserLevel().getName(), + user.getFcmIsAllowed(), user.getSavedAmount() == null ? 0L : user.getSavedAmount(), amountSavedHundredDays == null ? 0L : amountSavedHundredDays, amountSavedTwoWeeks == null ? 0L : amountSavedTwoWeeks, - amountSpentTwoWeeks == null ? 0L : amountSpentTwoWeeks + amountSpentTwoWeeks == null ? 0L : amountSpentTwoWeeks, + remainingAmount < 0 ? 0L : remainingAmount, + remainingCount < 0 ? 0L : remainingCount ); }