From 558619982496bedd2cbe743c816fd0bd17b31f25 Mon Sep 17 00:00:00 2001 From: juryheed Date: Mon, 19 Aug 2024 18:12:06 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20ChattingRoomRepository=EC=97=90=20f?= =?UTF-8?q?indByBoard=EC=B6=94=EA=B0=80=20-=20#81=20-=20=EA=B2=8C=EC=8B=9C?= =?UTF-8?q?=ED=8C=90=EC=9C=BC=EB=A1=9C=20=EC=B1=84=ED=8C=85=EB=A3=B8=20?= =?UTF-8?q?=EC=B0=BE=EC=9D=84=20=EB=95=8C=20=EC=82=AC=EC=9A=A9=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../swcompetitionproject/repository/ChattingRoomRepository.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/example/swcompetitionproject/repository/ChattingRoomRepository.java b/src/main/java/com/example/swcompetitionproject/repository/ChattingRoomRepository.java index a3e0833..9d75d8b 100644 --- a/src/main/java/com/example/swcompetitionproject/repository/ChattingRoomRepository.java +++ b/src/main/java/com/example/swcompetitionproject/repository/ChattingRoomRepository.java @@ -9,4 +9,5 @@ public interface ChattingRoomRepository extends JpaRepository { Optional deleteByBoard(Board board); + Optional findByBoard(Board board); } From 1d1a3ed9561ef24362ff1df1f838e0b8f8eb4962 Mon Sep 17 00:00:00 2001 From: juryheed Date: Mon, 19 Aug 2024 18:12:55 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EC=9D=B8=EC=9B=90=EC=9D=B4=20?= =?UTF-8?q?=EC=B0=AC=20=EC=B1=84=ED=8C=85=EB=B0=A9=EC=9D=80=20=EA=B0=80?= =?UTF-8?q?=EC=9E=A5=20=EC=95=84=EB=9E=98=EC=97=90=20=EB=B3=B4=EC=9D=B4?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD=20-=20#81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BoardService.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/example/swcompetitionproject/service/BoardService.java b/src/main/java/com/example/swcompetitionproject/service/BoardService.java index c64dc59..d300af7 100644 --- a/src/main/java/com/example/swcompetitionproject/service/BoardService.java +++ b/src/main/java/com/example/swcompetitionproject/service/BoardService.java @@ -10,11 +10,13 @@ import com.example.swcompetitionproject.exception.NotFoundException; import com.example.swcompetitionproject.exception.UnauthorizedException; import com.example.swcompetitionproject.repository.BoardRepository; +import com.example.swcompetitionproject.repository.ChattingRoomRepository; import com.example.swcompetitionproject.repository.InterestRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.LinkedList; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; @@ -25,6 +27,7 @@ public class BoardService { private final BoardRepository boardRepository; private final ChattingService chattingService; private final InterestRepository interestRepository; + private final ChattingRoomRepository chattingRoomRepository; /** * 게시글 전체 조회 @@ -32,8 +35,28 @@ public class BoardService { @Transactional public BoardListData getBoardList(User user, String dormitory) { DormitoryType dormitoryType = dormitoryNameValidate(dormitory); + //해당 건물에 대한 모든 게시물 List boards = boardRepository.findAllByDormitoryOrderByCreatedAtDesc(dormitoryType); - return BoardListData.of(boards, user, interestRepository); + + // 가득 찬 게시물과 그렇지 않은 게시물을 저장할 리스트 + List fullBoards = new LinkedList<>(); + List notFullBoards = new LinkedList<>(); + + // 반복문을 사용해 게시물을 분류 + for (Board board : boards) { + if (board.getTotal() == chattingRoomRepository.findByBoard(board).get().getMemberCount()) { + fullBoards.add(board); // 가득 찬 게시물 + } else { + notFullBoards.add(board); // 인원 미달 게시물 + } + } + + // 가득 찬 게시물 리스트와 인원 미달 게시물 리스트를 합침 + List resultBoards = new LinkedList<>(); + resultBoards.addAll(notFullBoards); + resultBoards.addAll(fullBoards); + + return BoardListData.of(resultBoards, user, interestRepository); } /**