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();
// 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()));
}
}

View File

@@ -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