[ 작업한 내용 ]
1. 관리자-공지사항 전체 목록 조회 기능 추가
1-1) AdminNoticeListResDTO
- 전체 목록 응답 DTO
- id, title, createdDate, updatedDate, writer 필드
- Notice를 파라미터로 받는 생성자 함수.
1-2) messages.properties
- success.notice.list_fetched=공지사항 목록 조회가 완료되었습니다.
1-3) NoticeSuccessCode
- NOTICE_LIST_FETCHED(HttpStatus.OK, "NOTICE_204", "success.notice.list_fetched");
1-4) AdminNoticeController
- GET방식을 사용하여 @RequestParam() int page, int size를 파라미터로 요청받는다.
- Page<AdminNoticeListResDTO> 타입의 responseDTO 생성. responseDTO에는 service 계층으로 page, size를 전달하여 데이터를 가져와 저장.
- 성공 메시지와 responseDTO를 클라이언트로 반환.
1-5) AdminNoticeService
- controller에서 전달받은 page, size로 Pageable를 사용하여 몇페이지의 몇개의 데이터를 보여줄지 정의하는 객체 생성.
- Page<Notice> result 생성하고 레포지토리의 .findAll() 메서드를 사용하여 pageable을 전달하여 데이터 가져와 저장.
- List타입으로 변환 후 응답시에는 new PageImpl<> 을 사용하여 controller로 데이터 반한.
2. 관리자-공지사항 검색 목록 조회 기능 추가
2-1) messages.properteis
- success.notice.fetched=공지사항 조회가 완료되었습니다.
2-2) NoticeSuccessCode
- NOTICE_FETCHED(HttpStatus.OK, "NOTICE_205", "success.notice.fetched");
2-3) AdminNoticeSearchResDTO
- 검색 결과 응답 DTO
- id, title, createdDate, updatedDate, writer
- Notice를 파라미터로 받는 생성자함수.
2-4) AdminNoticeController
- @RequestParam으로 keyword, page, size를 파라미터로 받기.
- servicer 계층으로 keyword, page, size를 보낸 다음 결과를 Page<AdminNoticeSearchResDTO>타입의 responseDTO에 저장.
- 성공 메시지와 responseDTO를 클라이언트로 반환.
2-5) AdminNoticeService
- keyword, page, size를 파라미터로 받고, Page<AdminNoticeSearchResDTO>타입의 searchNotices 메서드 생성.
- Pageable를 사용하여 페이징 정보를 생성하고, repository를 통해 keyword, pageable을 가지고 해당 데이터를 가져와 Page<Notice>타입의 result에 저장.
- result가 비어있는지 체크하고 예외처리.
- result에 담긴 엔티티 리스트를 DTO 리스트로 변환시키기.
- 반환할 때에는 DTO 리스트를 Page 형식으로 랩핑하여 반환.
2-6) NoticeReository
- Page<Notice> 타입의 keyword, pagealbe를 인자로 받는 findByTitleContainingIgnoreCase 메서드 추가.
'개발 기록 > 도서관 관리 시스템' 카테고리의 다른 글
[Library Management System] 25.09.05 (38일) (0) | 2025.09.05 |
---|---|
[Library Management System] 25.09.04 (37일) (0) | 2025.09.04 |
[Library Management System] 25.09.02 (35일) (0) | 2025.09.02 |
[Library Management System] 25.09.01 (34일) (0) | 2025.09.01 |
[Library Management System] 25.08.31 (33일) (0) | 2025.08.31 |