Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import com.bbebig.commonmodule.kafka.dto.*;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;

import java.time.LocalDateTime;
Expand All @@ -14,6 +16,8 @@
@Data
@Document(collection = "channel_chat_messages")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChannelChatMessage {

@Id
Expand All @@ -37,20 +41,21 @@ public class ChannelChatMessage {

private MessageType messageType;

private Boolean isDeleted;
@Builder.Default
private Boolean deleted = false;

public void updateContent(String content) {
this.content = content;
this.updatedAt = LocalDateTime.now();
}

public void delete() {
this.isDeleted = true;
this.deleted = true;
this.updatedAt = LocalDateTime.now();
}

public boolean isDeleted() {
return this.isDeleted;
return deleted != null ? deleted : false; // null이면 기본값 false 반환
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import com.bbebig.commonmodule.kafka.dto.ChatFileDto;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;

import java.time.LocalDateTime;
Expand All @@ -14,6 +16,8 @@
@Data
@Document(collection = "dm_chat_messages")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DmChatMessage {

@Id
Expand All @@ -37,19 +41,20 @@ public class DmChatMessage {

private MessageType messageType;

private Boolean isDeleted;
@Builder.Default
private Boolean deleted = false;

public void updateContent(String content) {
this.content = content;
this.updatedAt = LocalDateTime.now();
}

public void delete() {
this.isDeleted = true;
this.deleted = true;
this.updatedAt = LocalDateTime.now();
}

public boolean isDeleted() {
return this.isDeleted;
return this.deleted;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public static ChannelChatMessage convertDtoToChannelChatMessage(ChatMessageDto m
.createdAt(messageDto.getCreatedAt() != null ? messageDto.getCreatedAt() : null)
.updatedAt(messageDto.getType() == MessageEventType.MESSAGE_UPDATE ? messageDto.getUpdatedAt() : null)
.messageType(messageDto.getMessageType())
.deleted(messageDto.getType() == MessageEventType.MESSAGE_DELETE)
.build();
}

Expand All @@ -38,6 +39,7 @@ public static DmChatMessage convertDtoToDmChatMessage(ChatMessageDto messageDto)
.createdAt(messageDto.getCreatedAt() != null ? messageDto.getCreatedAt() : null)
.updatedAt(messageDto.getType() == MessageEventType.MESSAGE_UPDATE ? messageDto.getUpdatedAt() : null)
.messageType(messageDto.getMessageType())
.deleted(messageDto.getType() == MessageEventType.MESSAGE_DELETE)
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,12 @@ public void saveChannelMessage(ChatMessageDto messageDto) {

if (ChatType.CHANNEL.equals(messageDto.getChatType())) {
Long channelId = messageDto.getChannelId();
if (serverRedisRepository.existsChannelMessageList(channelId)) {
if (!serverRedisRepository.existsChannelMessageList(channelId) ||
serverRedisRepository.getChannelMessageList(channelId).isEmpty()) {
cacheChannelMessage(channelId);
} else {
serverRedisRepository.saveChannelMessage(channelId, message);
}
serverRedisRepository.saveChannelMessage(channelId, message);
}
}

Expand Down Expand Up @@ -278,7 +280,9 @@ public List<ChannelChatMessage> getCachedChannelMessages(Long channelId) {
private void cacheChannelMessage(Long channelId) {
List<ChannelChatMessage> messages = channelChatMessageRepository.findByChannelId(channelId,
PageRequest.of(0, 300, Sort.by(Sort.Order.desc("id"))));
serverRedisRepository.saveChannelMessages(channelId, messages);
if (messages != null && !messages.isEmpty()) {
serverRedisRepository.saveChannelMessages(channelId, messages);
}
}

private ServerLastInfoResponseDto getServerLastInfo(Long memberId, Long serverId) {
Expand Down