fix: Correction de la comparaison des utilisateurs dans Conversation - Utilisation de getId().equals() au lieu de equals() - Correction dans updateLastMessage, markAllAsReadForUser, etc.

This commit is contained in:
dahoud
2026-01-13 20:45:21 +00:00
parent 0443bd251f
commit bfb174bcf8
2 changed files with 12 additions and 10 deletions

View File

@@ -74,9 +74,9 @@ public class Conversation extends BaseEntity {
this.lastMessageSender = message.getSender(); this.lastMessageSender = message.getSender();
// Incrémenter le compteur de non-lus pour le destinataire // 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++; unreadCountUser2++;
} else { } else if (message.getSender() != null && user2 != null && message.getSender().getId().equals(user2.getId())) {
unreadCountUser1++; unreadCountUser1++;
} }
@@ -87,10 +87,10 @@ public class Conversation extends BaseEntity {
* Marque tous les messages comme lus pour un utilisateur. * Marque tous les messages comme lus pour un utilisateur.
*/ */
public void markAllAsReadForUser(Users user) { public void markAllAsReadForUser(Users user) {
if (user.equals(user1)) { if (user != null && user1 != null && user.getId().equals(user1.getId())) {
unreadCountUser1 = 0; unreadCountUser1 = 0;
System.out.println("[LOG] Messages marqués comme lus pour user1 dans la conversation " + this.getId()); 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; unreadCountUser2 = 0;
System.out.println("[LOG] Messages marqués comme lus pour user2 dans la conversation " + this.getId()); 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. * Récupère le nombre de messages non lus pour un utilisateur.
*/ */
public int getUnreadCountForUser(Users user) { public int getUnreadCountForUser(Users user) {
if (user.equals(user1)) { if (user != null && user1 != null && user.getId().equals(user1.getId())) {
return unreadCountUser1; return unreadCountUser1;
} else if (user.equals(user2)) { } else if (user != null && user2 != null && user.getId().equals(user2.getId())) {
return unreadCountUser2; return unreadCountUser2;
} }
return 0; return 0;
@@ -112,9 +112,9 @@ public class Conversation extends BaseEntity {
* Récupère l'autre utilisateur de la conversation. * Récupère l'autre utilisateur de la conversation.
*/ */
public Users getOtherUser(Users user) { public Users getOtherUser(Users user) {
if (user.equals(user1)) { if (user != null && user1 != null && user.getId().equals(user1.getId())) {
return user2; return user2;
} else if (user.equals(user2)) { } else if (user != null && user2 != null && user.getId().equals(user2.getId())) {
return user1; return user1;
} }
return null; return null;
@@ -124,6 +124,8 @@ public class Conversation extends BaseEntity {
* Vérifie si un utilisateur fait partie de cette conversation. * Vérifie si un utilisateur fait partie de cette conversation.
*/ */
public boolean containsUser(Users user) { 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()));
} }
} }

View File

@@ -45,7 +45,7 @@ public class UsersService {
user.setProfileImageUrl( user.setProfileImageUrl(
userCreateRequestDTO.getProfileImageUrl() != null userCreateRequestDTO.getProfileImageUrl() != null
? userCreateRequestDTO.getProfileImageUrl() ? userCreateRequestDTO.getProfileImageUrl()
: "https://via.placeholder.com/150" : "https://placehold.co/150x150.png"
); );
user.setRole( user.setRole(
userCreateRequestDTO.getRole() != null userCreateRequestDTO.getRole() != null