From 4fa84142dd207339a9421db244df035ef002c992 Mon Sep 17 00:00:00 2001 From: david-parkk Date: Thu, 1 Jan 2026 16:47:59 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=EB=B2=84=EA=B7=B8=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 - 친구 생성시 올바른 알림 생성 --- .../backend/domain/friend/application/FriendManageService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ku_rum/backend/domain/friend/application/FriendManageService.java b/src/main/java/ku_rum/backend/domain/friend/application/FriendManageService.java index e6dbb4e5..26d73151 100644 --- a/src/main/java/ku_rum/backend/domain/friend/application/FriendManageService.java +++ b/src/main/java/ku_rum/backend/domain/friend/application/FriendManageService.java @@ -41,7 +41,7 @@ public void requestFriend(final FriendRequest friendSendRequest) { } friendRepository.save(Friend.of(fromUser, toUser, PENDING)); - alarmService.notifyAlarm(AlarmType.NEW_FRIEND_REQUEST, toUser); + alarmService.notifyAlarm(AlarmType.NEW_FRIEND_REQUEST, fromUser, toUser); } // 친구 수락 및 거절 From 292622f2b2d963f119e6618e5cd604f58d1e3a2d Mon Sep 17 00:00:00 2001 From: david-parkk Date: Thu, 1 Jan 2026 18:11:48 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EB=B2=84=EA=B7=B8=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 - 토큰이 없는 경우 알림 중지 --- .../domain/alarm/application/AlarmService.java | 2 +- .../backend/domain/alarm/application/FcmService.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/ku_rum/backend/domain/alarm/application/AlarmService.java b/src/main/java/ku_rum/backend/domain/alarm/application/AlarmService.java index 30ec7c3e..f8b0eb9a 100644 --- a/src/main/java/ku_rum/backend/domain/alarm/application/AlarmService.java +++ b/src/main/java/ku_rum/backend/domain/alarm/application/AlarmService.java @@ -68,7 +68,7 @@ public void notifyAlarm(AlarmType alarmType, Object object, User user) { return; } FcmDirectDto fcmDirectDto = alarmMessageHandler.getFcmDirectDto(object, user); - fcmService.sendToUsers(fcmDirectDto); + fcmService.sendToUsersIfTokenExists(fcmDirectDto); } @Transactional diff --git a/src/main/java/ku_rum/backend/domain/alarm/application/FcmService.java b/src/main/java/ku_rum/backend/domain/alarm/application/FcmService.java index 7c3c5759..ef05842f 100644 --- a/src/main/java/ku_rum/backend/domain/alarm/application/FcmService.java +++ b/src/main/java/ku_rum/backend/domain/alarm/application/FcmService.java @@ -36,6 +36,18 @@ public class FcmService { private final UserQueryService userQueryService; private final UserService userService; + public void sendToUsersIfTokenExists(FcmDirectDto fcmDirectDto) { + User user = userService.getUser(); + Optional token = userFcmTokenRepository.findByUser(user); + + if (token.isEmpty()) { + log.info("FCM 토큰이 존재하지 않는 유저입니다. userId={}", user.getId()); + return; + } + + sendToUsers(fcmDirectDto); + } + public void sendToUsers(FcmDirectDto request) { List users = userQueryService.getUsersByIds(request.userIds());