diff --git a/backend/src/main/java/com/ai/lawyer/domain/law/dto/LawSearchRequestDto.java b/backend/src/main/java/com/ai/lawyer/domain/law/dto/LawSearchRequestDto.java index 47312929..fa4ab059 100644 --- a/backend/src/main/java/com/ai/lawyer/domain/law/dto/LawSearchRequestDto.java +++ b/backend/src/main/java/com/ai/lawyer/domain/law/dto/LawSearchRequestDto.java @@ -1,13 +1,17 @@ package com.ai.lawyer.domain.law.dto; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDate; @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class LawSearchRequestDto { @Schema(description = "법령명", example = "형사") diff --git a/backend/src/main/java/com/ai/lawyer/domain/law/dto/LawsDto.java b/backend/src/main/java/com/ai/lawyer/domain/law/dto/LawsDto.java index 2d6bebaa..febf2aa5 100644 --- a/backend/src/main/java/com/ai/lawyer/domain/law/dto/LawsDto.java +++ b/backend/src/main/java/com/ai/lawyer/domain/law/dto/LawsDto.java @@ -3,12 +3,14 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDate; @Data @Builder @AllArgsConstructor +@NoArgsConstructor public class LawsDto { private Long id; diff --git a/backend/src/main/java/com/ai/lawyer/domain/precedent/dto/PrecedentSearchRequestDto.java b/backend/src/main/java/com/ai/lawyer/domain/precedent/dto/PrecedentSearchRequestDto.java index 3e370f82..12ebf644 100644 --- a/backend/src/main/java/com/ai/lawyer/domain/precedent/dto/PrecedentSearchRequestDto.java +++ b/backend/src/main/java/com/ai/lawyer/domain/precedent/dto/PrecedentSearchRequestDto.java @@ -3,12 +3,20 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.time.LocalDate; + @Data public class PrecedentSearchRequestDto { @Schema(description = "검색 키워드", example = "절도") private String keyword; // 검색 키워드 + @Schema(description = "선고일자 시작", example = "2000-01-01") + private LocalDate sentencingDateStart; // 선고일자 시작 + + @Schema(description = "선고일자 종료", example = "2024-12-31") + private LocalDate sentencingDateEnd; // 선고일자 종료 + @Schema(description = "페이지 번호 (0부터 시작)", example = "0") private int pageNumber; // 페이지 번호 diff --git a/backend/src/main/java/com/ai/lawyer/domain/precedent/repository/PrecedentRepositoryImpl.java b/backend/src/main/java/com/ai/lawyer/domain/precedent/repository/PrecedentRepositoryImpl.java index ee4076b3..ac3b7f88 100644 --- a/backend/src/main/java/com/ai/lawyer/domain/precedent/repository/PrecedentRepositoryImpl.java +++ b/backend/src/main/java/com/ai/lawyer/domain/precedent/repository/PrecedentRepositoryImpl.java @@ -38,6 +38,19 @@ public Page searchPrecedentsByKeyword(PrecedentSearchRe .or(precedent.getCaseNumber().like(pattern)); } + // 선고일자 범위 조건 + if (requestDto.getSentencingDateStart() != null && + requestDto.getSentencingDateEnd() != null) { + builder.and(precedent.getSentencingDate().between( + requestDto.getSentencingDateStart(), + requestDto.getSentencingDateEnd())); + } else if (requestDto.getSentencingDateStart() != null) { + builder.and(precedent.getSentencingDate().goe(requestDto.getSentencingDateStart())); + } else if (requestDto.getSentencingDateEnd() != null) { + builder.and(precedent.getSentencingDate().loe(requestDto.getSentencingDateEnd())); + } + + // 페이징 및 정렬 설정 Pageable pageable = PageRequest.of( requestDto.getPageNumber(),