This commit is contained in:
2026-01-06 21:44:36 +09:00
parent ceec1ad7a9
commit 716cf63f73
98 changed files with 6997 additions and 538 deletions

View File

@@ -0,0 +1,67 @@
package research.loghunter.service;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import research.loghunter.dto.ErrorLogDto;
import research.loghunter.entity.ErrorLog;
import research.loghunter.repository.ErrorLogRepository;
import java.time.LocalDateTime;
@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class ErrorLogService {
private final ErrorLogRepository errorLogRepository;
public Page<ErrorLogDto> search(
Long serverId,
Long patternId,
String severity,
LocalDateTime startDate,
LocalDateTime endDate,
String keyword,
int page,
int size
) {
Pageable pageable = PageRequest.of(page, size);
Page<ErrorLog> errorLogs = errorLogRepository.searchErrors(
serverId, patternId, severity, startDate, endDate, keyword, pageable);
return errorLogs.map(this::toDto);
}
public Page<ErrorLogDto> findByServerId(Long serverId, int page, int size) {
Pageable pageable = PageRequest.of(page, size);
Page<ErrorLog> errorLogs = errorLogRepository.findByServerIdOrderByOccurredAtDesc(serverId, pageable);
return errorLogs.map(this::toDto);
}
public ErrorLogDto findById(Long id) {
return errorLogRepository.findById(id)
.map(this::toDto)
.orElseThrow(() -> new RuntimeException("ErrorLog not found: " + id));
}
private ErrorLogDto toDto(ErrorLog errorLog) {
return ErrorLogDto.builder()
.id(errorLog.getId())
.serverId(errorLog.getServer().getId())
.serverName(errorLog.getServer().getName())
.patternId(errorLog.getPattern().getId())
.patternName(errorLog.getPattern().getName())
.filePath(errorLog.getFilePath())
.lineNumber(errorLog.getLineNumber())
.summary(errorLog.getSummary())
.context(errorLog.getContext())
.severity(errorLog.getSeverity())
.occurredAt(errorLog.getOccurredAt())
.createdAt(errorLog.getCreatedAt())
.build();
}
}