From bfb174bcf8f663b2100e904bee53d4eb0e9d2798 Mon Sep 17 00:00:00 2001 From: dahoud Date: Tue, 13 Jan 2026 20:45:21 +0000 Subject: [PATCH] fix: Correction de la comparaison des utilisateurs dans Conversation - Utilisation de getId().equals() au lieu de equals() - Correction dans updateLastMessage, markAllAsReadForUser, etc. --- .../lions/dev/entity/chat/Conversation.java | 20 ++++++++++--------- .../com/lions/dev/service/UsersService.java | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/lions/dev/entity/chat/Conversation.java b/src/main/java/com/lions/dev/entity/chat/Conversation.java index af6edde..251e1b2 100644 --- a/src/main/java/com/lions/dev/entity/chat/Conversation.java +++ b/src/main/java/com/lions/dev/entity/chat/Conversation.java @@ -74,9 +74,9 @@ public class Conversation extends BaseEntity { this.lastMessageSender = message.getSender(); // Incrémenter le compteur de non-lus pour le destinataire - if (message.getSender().equals(user1)) { + if (message.getSender() != null && user1 != null && message.getSender().getId().equals(user1.getId())) { unreadCountUser2++; - } else { + } else if (message.getSender() != null && user2 != null && message.getSender().getId().equals(user2.getId())) { unreadCountUser1++; } @@ -87,10 +87,10 @@ public class Conversation extends BaseEntity { * Marque tous les messages comme lus pour un utilisateur. */ public void markAllAsReadForUser(Users user) { - if (user.equals(user1)) { + if (user != null && user1 != null && user.getId().equals(user1.getId())) { unreadCountUser1 = 0; System.out.println("[LOG] Messages marqués comme lus pour user1 dans la conversation " + this.getId()); - } else if (user.equals(user2)) { + } else if (user != null && user2 != null && user.getId().equals(user2.getId())) { unreadCountUser2 = 0; System.out.println("[LOG] Messages marqués comme lus pour user2 dans la conversation " + this.getId()); } @@ -100,9 +100,9 @@ public class Conversation extends BaseEntity { * Récupère le nombre de messages non lus pour un utilisateur. */ public int getUnreadCountForUser(Users user) { - if (user.equals(user1)) { + if (user != null && user1 != null && user.getId().equals(user1.getId())) { return unreadCountUser1; - } else if (user.equals(user2)) { + } else if (user != null && user2 != null && user.getId().equals(user2.getId())) { return unreadCountUser2; } return 0; @@ -112,9 +112,9 @@ public class Conversation extends BaseEntity { * Récupère l'autre utilisateur de la conversation. */ public Users getOtherUser(Users user) { - if (user.equals(user1)) { + if (user != null && user1 != null && user.getId().equals(user1.getId())) { return user2; - } else if (user.equals(user2)) { + } else if (user != null && user2 != null && user.getId().equals(user2.getId())) { return user1; } return null; @@ -124,6 +124,8 @@ public class Conversation extends BaseEntity { * Vérifie si un utilisateur fait partie de cette conversation. */ public boolean containsUser(Users user) { - return user.equals(user1) || user.equals(user2); + if (user == null) return false; + return (user1 != null && user.getId().equals(user1.getId())) || + (user2 != null && user.getId().equals(user2.getId())); } } diff --git a/src/main/java/com/lions/dev/service/UsersService.java b/src/main/java/com/lions/dev/service/UsersService.java index 554a059..ac6c55b 100644 --- a/src/main/java/com/lions/dev/service/UsersService.java +++ b/src/main/java/com/lions/dev/service/UsersService.java @@ -45,7 +45,7 @@ public class UsersService { user.setProfileImageUrl( userCreateRequestDTO.getProfileImageUrl() != null ? userCreateRequestDTO.getProfileImageUrl() - : "https://via.placeholder.com/150" + : "https://placehold.co/150x150.png" ); user.setRole( userCreateRequestDTO.getRole() != null