|
5 | 5 | import com.unit.daybook.domain.board.entity.Board;
|
6 | 6 | import com.unit.daybook.domain.board.repository.BoardRepository;
|
7 | 7 |
|
| 8 | +import com.unit.daybook.domain.board.repository.BoardRepositoryImpl; |
| 9 | +import com.unit.daybook.domain.member.domain.Member; |
| 10 | +import com.unit.daybook.domain.member.repository.MemberRepository; |
8 | 11 | import lombok.RequiredArgsConstructor;
|
9 | 12 | import org.springframework.stereotype.Service;
|
10 | 13 | import org.springframework.transaction.annotation.Transactional;
|
11 | 14 |
|
| 15 | +import java.util.List; |
| 16 | +import java.util.stream.Collectors; |
| 17 | + |
12 | 18 | @Transactional
|
13 | 19 | @Service
|
14 | 20 | @RequiredArgsConstructor
|
15 | 21 | public class BoardService {
|
16 | 22 |
|
17 | 23 | private final BoardRepository boardRepository;
|
| 24 | + private final BoardRepositoryImpl boardRepositoryImpl; |
| 25 | + private final MemberRepository memberRepository; |
18 | 26 |
|
19 | 27 | public AddBoardResponseDto addBoard(AddBoardRequestDto addBoardRequestDto, Long memberId) {
|
20 |
| - return AddBoardResponseDto.from(boardRepository.save(Board.createBoard(addBoardRequestDto))); |
| 28 | + Member member = memberRepository.findById(memberId).orElseThrow(() -> new RuntimeException(memberId + "not found")); |
| 29 | + if (addBoardRequestDto.respectBoardId() != null) { |
| 30 | + Board respectBoard = boardRepository.findById(addBoardRequestDto.respectBoardId()).orElseThrow(() -> new RuntimeException(addBoardRequestDto.respectBoardId() + "not found")); |
| 31 | + respectBoard.plusRespect(); |
| 32 | + boardRepository.save(respectBoard); |
| 33 | + } |
| 34 | + // 글의 카운트 올리기.. redis..? |
| 35 | + |
| 36 | + return AddBoardResponseDto.from(boardRepository.save(Board.createBoard(addBoardRequestDto, member))); |
| 37 | + } |
| 38 | + |
| 39 | + |
| 40 | + public AddBoardResponseDto getBoard(Long boardId) { |
| 41 | + return AddBoardResponseDto.from( |
| 42 | + boardRepository.findById(boardId).orElseThrow(() -> new RuntimeException(boardId + "not found"))); |
| 43 | + } |
| 44 | + |
| 45 | + public List<AddBoardResponseDto> getMyBoards(Long memberId) { |
| 46 | + // TODO 페이지네이션 - 스와이프 방식? |
| 47 | + return boardRepositoryImpl.findBoardsByMemberId(memberId) |
| 48 | + .stream() |
| 49 | + .map(AddBoardResponseDto::from) |
| 50 | + .toList(); |
21 | 51 | }
|
22 | 52 |
|
| 53 | + public List<AddBoardResponseDto> getRandomBoards(Long memberId) { |
| 54 | + return null; |
| 55 | + } |
23 | 56 | }
|
0 commit comments