Skip to content

Commit 222f748

Browse files
authored
Merge pull request #72 from Dugout-Developers/fix/#68
[FIX] 게시글 상세 조회시 찜 여부 컬럼 추가
2 parents a302316 + ab9690f commit 222f748

File tree

6 files changed

+69
-5
lines changed

6 files changed

+69
-5
lines changed

src/main/java/com/back/catchmate/domain/board/controller/BoardController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.back.catchmate.domain.board.dto.BoardResponse.BoardInfo;
77
import com.back.catchmate.domain.board.dto.BoardResponse.LiftUpStatusInfo;
88
import com.back.catchmate.domain.board.dto.BoardResponse.PagedBoardInfo;
9+
import com.back.catchmate.domain.board.dto.BoardResponse.TempBoardInfo;
910
import com.back.catchmate.domain.board.service.BoardService;
1011
import com.back.catchmate.domain.board.service.BookMarkService;
1112
import com.back.catchmate.global.dto.StateResponse;
@@ -74,7 +75,7 @@ public PagedBoardInfo getBoardListByUserId(@JwtValidation Long loginUserId,
7475

7576
@GetMapping("/temp")
7677
@Operation(summary = "임시저장된 게시글 단일 조회 API", description = "임시저장된 게시글 단일 조회하는 API 구현.")
77-
public BoardInfo getBoardListByUserId(@JwtValidation Long userId) {
78+
public TempBoardInfo getBoardListByUserId(@JwtValidation Long userId) {
7879
return boardService.getTempBoard(userId);
7980
}
8081

src/main/java/com/back/catchmate/domain/board/converter/BoardConverter.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,43 @@ public BoardInfo toBoardInfo(Board board, Game game) {
6060
UserInfo userInfo = userConverter.toUserInfo(board.getUser());
6161

6262
return BoardInfo.builder()
63+
.boardId(board.getId())
64+
.title(board.getTitle())
65+
.content(board.getContent())
66+
.maxPerson(board.getMaxPerson())
67+
.cheerClubId(board.getClub().getId())
68+
.preferredGender(board.getPreferredGender())
69+
.preferredAgeRange(board.getPreferredAgeRange())
70+
.liftUpDate(board.getLiftUpDate())
71+
.gameInfo(gameInfo)
72+
.userInfo(userInfo)
73+
.build();
74+
}
75+
76+
public BoardInfo toBoardInfo(Board board, Game game, boolean isBookMarked) {
77+
GameInfo gameInfo = gameConverter.toGameInfo(game);
78+
UserInfo userInfo = userConverter.toUserInfo(board.getUser());
79+
80+
return BoardInfo.builder()
81+
.boardId(board.getId())
82+
.title(board.getTitle())
83+
.content(board.getContent())
84+
.maxPerson(board.getMaxPerson())
85+
.cheerClubId(board.getClub().getId())
86+
.preferredGender(board.getPreferredGender())
87+
.preferredAgeRange(board.getPreferredAgeRange())
88+
.liftUpDate(board.getLiftUpDate())
89+
.isBookMarked(isBookMarked)
90+
.gameInfo(gameInfo)
91+
.userInfo(userInfo)
92+
.build();
93+
}
94+
95+
public TempBoardInfo toTempBoardInfo(Board board, Game game) {
96+
GameInfo gameInfo = gameConverter.toGameInfo(game);
97+
UserInfo userInfo = userConverter.toUserInfo(board.getUser());
98+
99+
return TempBoardInfo.builder()
63100
.boardId(board.getId())
64101
.title(board.getTitle())
65102
.content(board.getContent())

src/main/java/com/back/catchmate/domain/board/dto/BoardResponse.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,25 @@ public static class BoardInfo {
2727
private LocalDateTime liftUpDate;
2828
private GameInfo gameInfo;
2929
private UserInfo userInfo;
30+
private boolean isBookMarked;
31+
}
32+
33+
@Getter
34+
@Builder
35+
@NoArgsConstructor
36+
@AllArgsConstructor
37+
public static class TempBoardInfo {
38+
private Long boardId;
39+
private String title;
40+
private String content;
41+
private Long cheerClubId;
42+
private int currentPerson;
43+
private int maxPerson;
44+
private String preferredGender;
45+
private String preferredAgeRange;
46+
private LocalDateTime liftUpDate;
47+
private GameInfo gameInfo;
48+
private UserInfo userInfo;
3049
}
3150

3251
@Getter

src/main/java/com/back/catchmate/domain/board/repository/BookMarkRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ public interface BookMarkRepository extends JpaRepository<BookMark, Long> {
1515
Optional<BookMark> findByUserIdAndBoardIdAndDeletedAtIsNull(Long userId, Long boardId);
1616

1717
Page<BookMark> findAllByUserIdAndDeletedAtIsNull(Long userId, Pageable pageable);
18+
19+
boolean existsByUserIdAndBoardId(Long userId, Long boardId);
1820
}

src/main/java/com/back/catchmate/domain/board/service/BoardService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.back.catchmate.domain.board.dto.BoardResponse.BoardInfo;
66
import com.back.catchmate.domain.board.dto.BoardResponse.LiftUpStatusInfo;
77
import com.back.catchmate.domain.board.dto.BoardResponse.PagedBoardInfo;
8+
import com.back.catchmate.domain.board.dto.BoardResponse.TempBoardInfo;
89
import org.springframework.data.domain.Pageable;
910

1011
import java.time.LocalDate;
@@ -21,7 +22,7 @@ public interface BoardService {
2122

2223
PagedBoardInfo getBoardListByUserId(Long loginUserId, Long userId, Pageable pageable);
2324

24-
BoardInfo getTempBoard(Long userId);
25+
TempBoardInfo getTempBoard(Long userId);
2526

2627
BoardDeleteInfo deleteBoard(Long userId, Long boardId);
2728

src/main/java/com/back/catchmate/domain/board/service/BoardServiceImpl.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
import com.back.catchmate.domain.board.dto.BoardResponse.BoardInfo;
88
import com.back.catchmate.domain.board.dto.BoardResponse.LiftUpStatusInfo;
99
import com.back.catchmate.domain.board.dto.BoardResponse.PagedBoardInfo;
10+
import com.back.catchmate.domain.board.dto.BoardResponse.TempBoardInfo;
1011
import com.back.catchmate.domain.board.entity.Board;
1112
import com.back.catchmate.domain.board.repository.BoardRepository;
13+
import com.back.catchmate.domain.board.repository.BookMarkRepository;
1214
import com.back.catchmate.domain.club.entity.Club;
1315
import com.back.catchmate.domain.club.repository.ClubRepository;
1416
import com.back.catchmate.domain.game.converter.GameConverter;
@@ -42,6 +44,7 @@ public class BoardServiceImpl implements BoardService {
4244
private final UserRepository userRepository;
4345
private final BoardConverter boardConverter;
4446
private final GameConverter gameConverter;
47+
private final BookMarkRepository bookMarkRepository;
4548

4649
@Override
4750
@Transactional
@@ -133,7 +136,8 @@ public BoardInfo getBoard(Long userId, Long boardId) {
133136
Board board = boardRepository.findByIdAndDeletedAtIsNullAndIsCompleted(boardId)
134137
.orElseThrow(() -> new BaseException(ErrorCode.BOARD_NOT_FOUND));
135138

136-
return boardConverter.toBoardInfo(board, board.getGame());
139+
boolean isBookMarked = bookMarkRepository.existsByUserIdAndBoardId(user.getId(), board.getId());
140+
return boardConverter.toBoardInfo(board, board.getGame(), isBookMarked);
137141
}
138142

139143
@Override
@@ -161,7 +165,7 @@ public PagedBoardInfo getBoardListByUserId(Long loginUserId, Long userId, Pageab
161165

162166
@Override
163167
@Transactional
164-
public BoardInfo getTempBoard(Long userId) {
168+
public TempBoardInfo getTempBoard(Long userId) {
165169
User user = userRepository.findById(userId)
166170
.orElseThrow(() -> new BaseException(ErrorCode.USER_NOT_FOUND));
167171

@@ -172,7 +176,7 @@ public BoardInfo getTempBoard(Long userId) {
172176
throw new BaseException(ErrorCode.TEMP_BOARD_BAD_REQUEST);
173177
}
174178

175-
return boardConverter.toBoardInfo(tempBoard, tempBoard.getGame());
179+
return boardConverter.toTempBoardInfo(tempBoard, tempBoard.getGame());
176180
}
177181

178182
@Override

0 commit comments

Comments
 (0)