File tree Expand file tree Collapse file tree 1 file changed +28
-5
lines changed
src/main/java/ku_rum/backend/domain/alarm/application Expand file tree Collapse file tree 1 file changed +28
-5
lines changed Original file line number Diff line number Diff line change @@ -37,15 +37,38 @@ public class FcmService {
3737 private final UserService userService ;
3838
3939 public void sendToUsersIfTokenExists (FcmDirectDto fcmDirectDto ) {
40- User user = userService . getUser ( );
41- Optional <UserFcmToken > token = userFcmTokenRepository .findByUser ( user );
40+ List < User > users = userQueryService . getUsersByIds ( fcmDirectDto . userIds () );
41+ List <UserFcmToken > userFcmTokens = userFcmTokenRepository .findByUserIn ( users );
4242
43- if (token .isEmpty ()) {
44- log .info ("FCM 토큰이 존재하지 않는 유저입니다. userId={}" , user .getId ());
43+ List <Long > userIdsWithToken = userFcmTokens .stream ()
44+ .map (token -> token .getUser ().getId ())
45+ .toList ();
46+
47+ List <Long > userIdsWithoutToken = fcmDirectDto .userIds ().stream ()
48+ .filter (userId -> !userIdsWithToken .contains (userId ))
49+ .toList ();
50+
51+ if (!userIdsWithoutToken .isEmpty ()) {
52+ log .info (
53+ "FCM 토큰이 없어 전송하지 못한 userIds={}" ,
54+ userIdsWithoutToken
55+ );
56+ }
57+
58+ if (userIdsWithToken .isEmpty ()) {
59+ log .info (
60+ "FCM 전송 가능한 유저가 없습니다. 요청 userIds={}" ,
61+ fcmDirectDto .userIds ()
62+ );
4563 return ;
4664 }
4765
48- sendToUsers (fcmDirectDto );
66+ FcmDirectDto filteredDto = FcmDirectDto .builder ()
67+ .title (fcmDirectDto .title ())
68+ .body (fcmDirectDto .body ())
69+ .userIds (userIdsWithToken )
70+ .build ();
71+ sendToUsers (filteredDto );
4972 }
5073
5174 public void sendToUsers (FcmDirectDto request ) {
You can’t perform that action at this time.
0 commit comments