Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,6 @@ public void sendMessage(
// 1. WebSocket 세션에서 userId 추출
Long userId = (Long) headerAccessor.getSessionAttributes().get("userId");

String username = userRepository.findById(userId).get().getUsername();
log.info("WebSocket 메시지 전송: userId={}, username={}", userId, username);

System.out.println(request.getMessage());
// 2. 메시지 저장 + DTO 응답 변환
ChatMessageBroadcast broadcast = chatMessageWriteService.saveChatMessage(userId, request);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
@Builder
public class ChatMessageReference {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@OneToOne(fetch = FetchType.LAZY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public ChatMessageBroadcast saveChatMessage(Long userId, ChatMessageRequest requ
// 2. 참조 저장 (있으면)
CodeReferenceRequest refRequest = request.getCodeReference();
ChatMessageReference reference = null;
if (refRequest != null && refRequest.getPath() != null) {
if (refRequest != null && refRequest.getPath() != null && !refRequest.getPath().isBlank()) {
reference = referenceRepository.save(ChatMessageReference.builder()
.chatMessage(chatMessage)
.path(refRequest.getPath())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ public List<FileTreeNodeResponse> getFileTree(Long repositoryId, Long userId) {
if (parent != null) parent.getChildren().add(node);
}
}

sortChildrenRecursively(roots);

return roots;
}

Expand Down Expand Up @@ -504,4 +507,18 @@ private void validateFolderName(String name) {
throw new GlobalException(ErrorCode.INVALID_FOLDER_NAME_RESERVED);
}

private void sortChildrenRecursively(List<FileTreeNodeResponse> nodes) {
if (nodes == null) return;
nodes.sort(
Comparator
// FOLDER가 먼저 오도록 (폴더면 false, 파일이면 true)
.comparing((FileTreeNodeResponse n) -> !n.getFileType().equalsIgnoreCase("FOLDER"))
// 이름 오름차순(대소문자 무시)
.thenComparing(FileTreeNodeResponse::getFileName, String.CASE_INSENSITIVE_ORDER)
);
for (FileTreeNodeResponse node : nodes) {
sortChildrenRecursively(node.getChildren());
}
}

}
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package com.deepdirect.deepwebide_be.global.config;

import com.deepdirect.deepwebide_be.chat.util.RedisSubscriber;
import jakarta.annotation.PostConstruct;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.listener.ChannelTopic;
import org.springframework.data.redis.listener.PatternTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;

@Configuration
Expand All @@ -25,7 +22,6 @@ public class RedisConfig {
public RedisMessageListenerContainer redisMessageListenerContainer() {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
// container.addMessageListener(redisSubscriber, new PatternTopic("chat:*"));
return container;
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ spring.h2.console.path=/h2-console
# JPA settings (H2)
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
#spring.jpa.show-sql=true
#spring.jpa.properties.hibernate.format_sql=true

spring.data.redis.host=localhost
spring.data.redis.port=6379
Expand Down