From 72720da2f9a7805d631b512c7265e4b8ca0e59a2 Mon Sep 17 00:00:00 2001 From: hyeonjeongs Date: Sun, 3 Mar 2024 02:28:30 +0900 Subject: [PATCH] =?UTF-8?q?YEL-214=20[setting]=20YEL-214=20[fix]=20?= =?UTF-8?q?=ED=91=B8=EC=8B=9C=EC=95=8C=EB=A6=BC=20type=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../authorization/service/AuthService.java | 50 +++++++++++-------- .../firebase/dto/NotificationType.java | 3 +- .../dto/request/NotificationMessage.java | 2 +- .../scheduler/EventScheduler.java | 2 +- 4 files changed, 34 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/yello/server/domain/authorization/service/AuthService.java b/src/main/java/com/yello/server/domain/authorization/service/AuthService.java index 85a7e813..f6e60403 100644 --- a/src/main/java/com/yello/server/domain/authorization/service/AuthService.java +++ b/src/main/java/com/yello/server/domain/authorization/service/AuthService.java @@ -110,31 +110,34 @@ public SignUpResponse signUp(SignUpRequest signUpRequest) { @Transactional public void recommendUser(String recommendYelloId, String userYelloId) { - if (recommendYelloId != null && !recommendYelloId.isEmpty()) { + if (recommendYelloId!=null && !recommendYelloId.isEmpty()) { User recommendedUser = userRepository.getByYelloId(recommendYelloId); User user = userRepository.getByYelloId(userYelloId); - final Optional recommended = userDataRepository.findByUserIdAndTag(recommendedUser.getId(), - UserDataType.RECOMMENDED); + final Optional recommended = + userDataRepository.findByUserIdAndTag(recommendedUser.getId(), + UserDataType.RECOMMENDED); recommendedUser.addRecommendCount(1L); recommendedUser.addPointBySubscribe(RECOMMEND_POINT); user.addPointBySubscribe(RECOMMEND_POINT); + + final Optional cooldown = + cooldownRepository.findByUserId(recommendedUser.getId()); + cooldown.ifPresent(cooldownRepository::delete); + if (recommended.isEmpty()) { recommendedUser.addTicketCount(1); + notificationService.sendRecommendSignupAndGetTicketNotification(recommendedUser, + user); userDataRepository.save(UserData.of( UserDataType.RECOMMENDED, ZonedDateTime.now(GlobalZoneId).format(ISO_OFFSET_DATE_TIME), recommendedUser )); - notificationService.sendRecommendSignupAndGetTicketNotification(recommendedUser, user); + return; } - notificationService.sendRecommendNotification(user, recommendedUser); - - final Optional cooldown = - cooldownRepository.findByUserId(recommendedUser.getId()); - cooldown.ifPresent(cooldownRepository::delete); } } @@ -166,22 +169,28 @@ public OnBoardingFriendResponse findOnBoardingFriends(OnBoardingFriendRequest fr return OnBoardingFriendResponse.of(kakaoFriends.size(), pageList); } - public GroupNameSearchResponse findGroupNameContaining(String keyword, UserGroupType userGroupType, + public GroupNameSearchResponse findGroupNameContaining(String keyword, + UserGroupType userGroupType, Pageable pageable) { - int totalCount = userGroupRepository.countDistinctGroupNameContaining(keyword, userGroupType); - final List nameList = userGroupRepository.findDistinctGroupNameContaining(keyword, userGroupType, - pageable) - .stream() - .toList(); + int totalCount = + userGroupRepository.countDistinctGroupNameContaining(keyword, userGroupType); + final List nameList = + userGroupRepository.findDistinctGroupNameContaining(keyword, userGroupType, + pageable) + .stream() + .toList(); return GroupNameSearchResponse.of(totalCount, nameList); } - public DepartmentSearchResponse findGroupDepartmentBySchoolNameContaining(String schoolName, String keyword, + public DepartmentSearchResponse findGroupDepartmentBySchoolNameContaining(String schoolName, + String keyword, UserGroupType userGroupType, Pageable pageable) { - int totalCount = userGroupRepository.countAllByGroupNameContaining(schoolName, keyword, userGroupType); - final List userGroupResult = userGroupRepository.findAllByGroupNameContaining(schoolName, keyword, - userGroupType, pageable); + int totalCount = + userGroupRepository.countAllByGroupNameContaining(schoolName, keyword, userGroupType); + final List userGroupResult = + userGroupRepository.findAllByGroupNameContaining(schoolName, keyword, + userGroupType, pageable); return DepartmentSearchResponse.of(totalCount, userGroupResult); } @@ -206,7 +215,8 @@ public ServiceTokenVO reIssueToken(@NotNull ServiceTokenVO tokens) { public ClassNameSearchResponse getHighSchoolClassName(String schoolName, String className) { UserGroup userGroup = - userGroupRepository.getByGroupNameAndSubGroupName(schoolName, className, UserGroupType.HIGH_SCHOOL); + userGroupRepository.getByGroupNameAndSubGroupName(schoolName, className, + UserGroupType.HIGH_SCHOOL); return ClassNameSearchResponse.of(userGroup); } } diff --git a/src/main/java/com/yello/server/infrastructure/firebase/dto/NotificationType.java b/src/main/java/com/yello/server/infrastructure/firebase/dto/NotificationType.java index 6ab4a915..83b3f55d 100644 --- a/src/main/java/com/yello/server/infrastructure/firebase/dto/NotificationType.java +++ b/src/main/java/com/yello/server/infrastructure/firebase/dto/NotificationType.java @@ -6,5 +6,6 @@ public enum NotificationType { NEW_FRIEND, RECOMMEND, LUNCH_EVENT, - OPEN_VOTE + OPEN_VOTE, + FIRST_RECOMMEND } diff --git a/src/main/java/com/yello/server/infrastructure/firebase/dto/request/NotificationMessage.java b/src/main/java/com/yello/server/infrastructure/firebase/dto/request/NotificationMessage.java index 00b0204f..e983aa22 100644 --- a/src/main/java/com/yello/server/infrastructure/firebase/dto/request/NotificationMessage.java +++ b/src/main/java/com/yello/server/infrastructure/firebase/dto/request/NotificationMessage.java @@ -64,7 +64,7 @@ public static NotificationMessage toUserAndFriendRecommendSignupAndGetTicketNoti return NotificationMessage.builder() .title(MessageFormat.format("{0}님이 나를 추천인으로 가입해 열람권이 지급됐어요!", user.getName())) .message("지금이다! 날 짝사랑 하는 사람 보러가기") - .type(NotificationType.RECOMMEND) + .type(NotificationType.FIRST_RECOMMEND) .build(); } diff --git a/src/main/java/com/yello/server/infrastructure/scheduler/EventScheduler.java b/src/main/java/com/yello/server/infrastructure/scheduler/EventScheduler.java index 0d1b43a3..82f43bc8 100644 --- a/src/main/java/com/yello/server/infrastructure/scheduler/EventScheduler.java +++ b/src/main/java/com/yello/server/infrastructure/scheduler/EventScheduler.java @@ -25,7 +25,7 @@ public class EventScheduler { private final JobRepository jobRepository; private final PlatformTransactionManager transactionManager; - @Scheduled(cron = "0 20 16 * * ?") + @Scheduled(cron = "0 0 12 * * ?") public void lunchEventRunJob() { //JobParamter의 역할은 반복해서 실행되는 Job의 유일한 ID임, 동일한 값이 세팅되면 두번째부터 실행안됨)