Skip to content

This file was deleted.

This file was deleted.

64 changes: 0 additions & 64 deletions src/main/java/com/factoreal/backend/controller/ZoneController.java

This file was deleted.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Check Plz]
@operation, @tag 어노테이션으로 Swagger 문서화
✅ ResponseEntity로 상태 코드 명확히 반환

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.factoreal.backend.controller;
package com.factoreal.backend.domain.abnormalLog.api;

import com.factoreal.backend.dto.abnormalLog.AbnormalLogDto;
import com.factoreal.backend.dto.abnormalLog.AbnormalPagingDto;
import com.factoreal.backend.service.AbnormalLogService;
import com.factoreal.backend.domain.abnormalLog.application.AbnormalLogService;
import com.factoreal.backend.domain.abnormalLog.dto.request.AbnormalPagingRequest;
import com.factoreal.backend.domain.abnormalLog.dto.response.AbnormalLogResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
Expand All @@ -17,27 +17,27 @@ public class AbnormalController {

// 전체 로그 조회
@GetMapping
public Page<AbnormalLogDto> getAllAbnormalLogs(@ModelAttribute AbnormalPagingDto pagingDto) {
public Page<AbnormalLogResponse> getAllAbnormalLogs(@ModelAttribute AbnormalPagingRequest pagingDto) {
return abnormalLogService.findAllAbnormalLogs(pagingDto);
}

@GetMapping("/unread")
public Page<AbnormalLogDto> getAllAbnormalLogsUnRead(@ModelAttribute AbnormalPagingDto pagingDto) {
public Page<AbnormalLogResponse> getAllAbnormalLogsUnRead(@ModelAttribute AbnormalPagingRequest pagingDto) {
return abnormalLogService.findAllAbnormalLogsUnRead(pagingDto);
}

// 특정 이상 유형으로 필터링
@GetMapping("/type/{abnormalType}")
public Page<AbnormalLogDto> getAbnormalLogsByType(
@ModelAttribute AbnormalPagingDto pagingDto,
public Page<AbnormalLogResponse> getAbnormalLogsByType(
@ModelAttribute AbnormalPagingRequest pagingDto,
@PathVariable String abnormalType) {
return abnormalLogService.findAbnormalLogsByAbnormalType(pagingDto, abnormalType);
}

// 특정 타겟 ID로 필터링
@GetMapping("/target/{targetType}/{targetId}")
public Page<AbnormalLogDto> getAbnormalLogsByTarget(
@ModelAttribute AbnormalPagingDto pagingDto,
public Page<AbnormalLogResponse> getAbnormalLogsByTarget(
@ModelAttribute AbnormalPagingRequest pagingDto,
@PathVariable String targetType,
@PathVariable String targetId) {
return abnormalLogService.findAbnormalLogsByTargetId(pagingDto, targetType, targetId);
Expand Down
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Check Plz]
✅ 각 메서드별 //한글 주석 필요 : 되어있는 부분 있고 안되어 있는 부분 있음
✅ 메인 클래스 JavaDoc 주석필요

Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package com.factoreal.backend.service;

import com.factoreal.backend.dto.abnormalLog.AbnormalLogDto;
import com.factoreal.backend.dto.abnormalLog.AbnormalPagingDto;
import com.factoreal.backend.dto.abnormalLog.LogType;
import com.factoreal.backend.dto.abnormalLog.SystemLogResponseDto;
import com.factoreal.backend.dto.SensorKafkaDto;
import com.factoreal.backend.entity.AbnormalLog;
import com.factoreal.backend.entity.Zone;
import com.factoreal.backend.repository.AbnLogRepository;
import com.factoreal.backend.sender.WebSocketSender;
import com.factoreal.backend.kafka.strategy.alarmMessage.RiskMessageProvider;
import com.factoreal.backend.kafka.strategy.enums.RiskLevel;
import com.factoreal.backend.kafka.strategy.enums.SensorType;
package com.factoreal.backend.domain.abnormalLog.application;

import com.factoreal.backend.domain.abnormalLog.dto.LogType;
import com.factoreal.backend.domain.abnormalLog.dto.request.AbnormalPagingRequest;
import com.factoreal.backend.domain.abnormalLog.dto.response.AbnormalLogResponse;
import com.factoreal.backend.domain.sensor.dto.SensorKafkaDto;
import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog;
import com.factoreal.backend.domain.zone.dao.ZoneRepository;
import com.factoreal.backend.domain.zone.entity.Zone;
import com.factoreal.backend.domain.abnormalLog.dao.AbnLogRepository;
import com.factoreal.backend.messaging.kafka.strategy.alarmMessage.RiskMessageProvider;
import com.factoreal.backend.messaging.kafka.strategy.enums.RiskLevel;
import com.factoreal.backend.messaging.kafka.strategy.enums.SensorType;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -24,18 +23,15 @@
import org.springframework.web.server.ResponseStatusException;

import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;

@Service
@Slf4j
@RequiredArgsConstructor
public class AbnormalLogService {
private final AbnLogRepository abnLogRepository;
private final ZoneService zoneService;
private final ZoneRepository zoneRepository;
private final RiskMessageProvider riskMessageProvider;
private final ObjectMapper objectMapper;
private final WebSocketSender webSocketSender;

// 알람 객체를 받아와서 로그 객체 생성.
@Transactional(rollbackFor = Exception.class)
Expand All @@ -47,7 +43,7 @@ public AbnormalLog saveAbnormalLogFromKafkaDto(
) throws Exception{


Zone zone = zoneService.getZone(sensorKafkaDto.getZoneId());
Zone zone = zoneRepository.findByZoneId(sensorKafkaDto.getZoneId());


if (zone == null) {
Expand All @@ -73,12 +69,12 @@ public AbnormalLog saveAbnormalLogFromKafkaDto(
}


public Page<AbnormalLogDto> findAllAbnormalLogs(AbnormalPagingDto abnormalPagingDto) {
public Page<AbnormalLogResponse> findAllAbnormalLogs(AbnormalPagingRequest abnormalPagingDto) {
// 한번에 DB전체를 주는 것이 아닌 구간 나눠서 전달하기 위함
Pageable pageable = getPageable(abnormalPagingDto);
Page<AbnormalLog> abnormalLogs = abnLogRepository.findAll(pageable);
return abnormalLogs.map(abn_log ->
AbnormalLogDto.builder()
AbnormalLogResponse.builder()
.id(abn_log.getId())
.targetType(abn_log.getTargetType())
.targetId(abn_log.getTargetId())
Expand All @@ -91,12 +87,12 @@ public Page<AbnormalLogDto> findAllAbnormalLogs(AbnormalPagingDto abnormalPaging
);
}

public Page<AbnormalLogDto> findAllAbnormalLogsUnRead(AbnormalPagingDto abnormalPagingDto) {
public Page<AbnormalLogResponse> findAllAbnormalLogsUnRead(AbnormalPagingRequest abnormalPagingRequest) {
// 한번에 DB전체를 주는 것이 아닌 구간 나눠서 전달하기 위함
Pageable pageable = getPageable(abnormalPagingDto);
Pageable pageable = getPageable(abnormalPagingRequest);
Page<AbnormalLog> abnormalLogs = abnLogRepository.findAllByIsReadIsFalse(pageable);
return abnormalLogs.map(abn_log ->
AbnormalLogDto.builder()
AbnormalLogResponse.builder()
.id(abn_log.getId())
.targetType(abn_log.getTargetType())
.targetId(abn_log.getTargetId())
Expand All @@ -109,12 +105,12 @@ public Page<AbnormalLogDto> findAllAbnormalLogsUnRead(AbnormalPagingDto abnormal
);
}

public Page<AbnormalLogDto> findAbnormalLogsByAbnormalType(AbnormalPagingDto abnormalPagingDto, String abnormalType){
public Page<AbnormalLogResponse> findAbnormalLogsByAbnormalType(AbnormalPagingRequest abnormalPagingRequest, String abnormalType){
// 한번에 DB전체를 주는 것이 아닌 구간 나눠서 전달하기 위함
Pageable pageable = getPageable(abnormalPagingDto);
Pageable pageable = getPageable(abnormalPagingRequest);
Page<AbnormalLog> abnormalLogs = abnLogRepository.findAbnormalLogsByAbnormalType(abnormalType,pageable);
return abnormalLogs.map(abn_log ->
AbnormalLogDto.builder()
AbnormalLogResponse.builder()
.id(abn_log.getId())
.targetType(abn_log.getTargetType())
.targetId(abn_log.getTargetId())
Expand All @@ -128,15 +124,15 @@ public Page<AbnormalLogDto> findAbnormalLogsByAbnormalType(AbnormalPagingDto abn
}

//
public Page<AbnormalLogDto> findAbnormalLogsByTargetId(AbnormalPagingDto abnormalPagingDto, String targetType, String targetId){
public Page<AbnormalLogResponse> findAbnormalLogsByTargetId(AbnormalPagingRequest abnormalPagingRequest, String targetType, String targetId){
// 한번에 DB전체를 주는 것이 아닌 구간 나눠서 전달하기 위함
Pageable pageable = getPageable(abnormalPagingDto);
Pageable pageable = getPageable(abnormalPagingRequest);
Page<AbnormalLog> abnormalLogs = abnLogRepository.findAbnormalLogsByTargetTypeAndTargetId(
targetType,
targetId,
pageable);
return abnormalLogs.map(
abn_log -> objectMapper.convertValue(abn_log, AbnormalLogDto.class)
abn_log -> objectMapper.convertValue(abn_log, AbnormalLogResponse.class)
);
}

Expand All @@ -162,20 +158,10 @@ public Long readRequired(){
return count;
}

@Transactional(readOnly = true)
public Page<SystemLogResponseDto> findSystemLogsByZoneId(String zoneId, AbnormalPagingDto pagingDto) {
log.info("공간 ID: {}의 시스템 로그 조회", zoneId);
Pageable pageable = getPageable(pagingDto);

// zoneId로 직접 필터링된 로그 조회
Page<AbnormalLog> logs = abnLogRepository.findByZone_ZoneIdOrderByDetectedAtDesc(zoneId, pageable);
return logs.map(SystemLogResponseDto::fromEntity);
}

private Pageable getPageable(AbnormalPagingDto abnormalPagingDto){
private Pageable getPageable(AbnormalPagingRequest abnormalPagingRequest){
return PageRequest.of(
abnormalPagingDto.getPage(),
abnormalPagingDto.getSize()
abnormalPagingRequest.getPage(),
abnormalPagingRequest.getSize()
);
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Check Plz]
✅ 각 메서드별 //한글 주석 필요 : 되어있는 부분 있고 안되어 있는 부분 있음, 주석 위치 메서드 위에
✅ 메인 클래스 JavaDoc 주석필요

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.factoreal.backend.repository;
package com.factoreal.backend.domain.abnormalLog.dao;

import com.factoreal.backend.entity.AbnormalLog;
import com.factoreal.backend.domain.abnormalLog.entity.AbnormalLog;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.factoreal.backend.dto.abnormalLog;
package com.factoreal.backend.domain.abnormalLog.dto;

public enum LogType {
Sensor,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.factoreal.backend.dto.abnormalLog;
package com.factoreal.backend.domain.abnormalLog.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

@Data
@Schema(description = "페이징 정보 DTO")
public class AbnormalPagingDto {
@Schema(description = "\uD398\uC774\uC9D5 \uC815\uBCF4 DTO")
public class AbnormalPagingRequest {
@Schema(description = "페이지 번호 (0부터 시작)", example = "0")
private int page;

Expand Down
Loading