검색 게시물 불러오기 API 구현완료
This commit is contained in:
@ -16,6 +16,7 @@ import com.eogns.board_back.dto.response.board.GetBoardResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetCommentListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetFavoriteListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetLatestBoardListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetSearchBoardListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetTop3BoardListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.IncreaseViewCountResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.PatchBoardResponseDto;
|
||||
@ -92,6 +93,15 @@ public class BoardController {
|
||||
return response;
|
||||
}
|
||||
|
||||
@GetMapping(value={"/search-list/{searchWord}", "/search-list/{searchWord}/{preSearchWord}"})
|
||||
public ResponseEntity<? super GetSearchBoardListResponseDto> getSearchBoardList(
|
||||
@PathVariable("searchWord") String searchWord,
|
||||
@PathVariable(value="preSearchWord", required = false) String preSearchWord
|
||||
){
|
||||
ResponseEntity<? super GetSearchBoardListResponseDto> response = boardService.getSearchBoardList(searchWord, preSearchWord);
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("")
|
||||
public ResponseEntity<? super PostBoardResponseDto> postBoard(
|
||||
|
@ -0,0 +1,31 @@
|
||||
package com.eogns.board_back.dto.response.board;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
||||
import com.eogns.board_back.common.ResponseCode;
|
||||
import com.eogns.board_back.common.ResponseMessage;
|
||||
import com.eogns.board_back.dto.object.BoardListItem;
|
||||
import com.eogns.board_back.dto.response.ResponseDto;
|
||||
import com.eogns.board_back.entity.BoardListViewEntity;
|
||||
|
||||
import lombok.Getter;
|
||||
@Getter
|
||||
public class GetSearchBoardListResponseDto extends ResponseDto{
|
||||
|
||||
private List<BoardListItem> searchList;
|
||||
|
||||
private GetSearchBoardListResponseDto(List<BoardListViewEntity> boardListViewEntities){
|
||||
super(ResponseCode.SUCCESS, ResponseMessage.SUCCESS);
|
||||
this.searchList = BoardListItem.getList(boardListViewEntities);
|
||||
}
|
||||
|
||||
public static ResponseEntity<GetSearchBoardListResponseDto> success(List<BoardListViewEntity> boardListViewEntities){
|
||||
GetSearchBoardListResponseDto result = new GetSearchBoardListResponseDto(boardListViewEntities);
|
||||
return ResponseEntity.status(HttpStatus.OK).body(result);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,4 +20,11 @@ public class SearchLogEntity {
|
||||
private String searchWord;
|
||||
private String relationWord;
|
||||
private boolean relation;
|
||||
|
||||
public SearchLogEntity(String searchWord, String relationWord, boolean relation){
|
||||
this.searchWord = searchWord;
|
||||
this.relationWord = relationWord;
|
||||
this.relation = relation;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -12,5 +12,5 @@ public interface BoardListViewRepository extends JpaRepository<BoardListViewEnti
|
||||
|
||||
List<BoardListViewEntity> findByOrderByWriteDatetimeDesc();
|
||||
List<BoardListViewEntity> findTop3ByWriteDatetimeGreaterThanOrderByFavoriteCountDescCommentCountDescViewCountDescWriteDatetimeDesc(String writeDatetime);
|
||||
|
||||
List<BoardListViewEntity> findByTitleContainsOrContentContainsOrderByWriteDatetimeDesc(String title, String content);
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ import com.eogns.board_back.dto.response.board.PostCommentResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.PutFavoriteResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetFavoriteListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetLatestBoardListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetSearchBoardListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetTop3BoardListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.IncreaseViewCountResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.PatchBoardResponseDto;
|
||||
@ -23,6 +24,7 @@ public interface BoardService {
|
||||
ResponseEntity<? super GetCommentListResponseDto> getCommentList(Integer boardNumber);
|
||||
ResponseEntity<? super GetLatestBoardListResponseDto> getLatestBoardList();
|
||||
ResponseEntity<? super GetTop3BoardListResponseDto> getTop3BoardList();
|
||||
ResponseEntity<? super GetSearchBoardListResponseDto> getSearchBoardList(String searchWord, String preSearchWord);
|
||||
ResponseEntity<? super PostBoardResponseDto> postBoard(PostBoardRequestDto dto, String email);
|
||||
ResponseEntity<? super PostCommentResponseDto> postComment(PostCommentRequestDto Dto, Integer boardNumber, String email);
|
||||
ResponseEntity<? super PutFavoriteResponseDto> putFavorite(Integer boardNumber, String email);
|
||||
|
@ -16,6 +16,7 @@ import com.eogns.board_back.dto.response.board.GetBoardResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetCommentListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetFavoriteListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetLatestBoardListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetSearchBoardListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.GetTop3BoardListResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.IncreaseViewCountResponseDto;
|
||||
import com.eogns.board_back.dto.response.board.PatchBoardResponseDto;
|
||||
@ -27,11 +28,13 @@ import com.eogns.board_back.entity.BoardListViewEntity;
|
||||
import com.eogns.board_back.entity.CommentEntity;
|
||||
import com.eogns.board_back.entity.FavoriteEntity;
|
||||
import com.eogns.board_back.entity.ImageEntity;
|
||||
import com.eogns.board_back.entity.SearchLogEntity;
|
||||
import com.eogns.board_back.repository.BoardListViewRepository;
|
||||
import com.eogns.board_back.repository.BoardRepository;
|
||||
import com.eogns.board_back.repository.CommentRepository;
|
||||
import com.eogns.board_back.repository.FavoriteRepository;
|
||||
import com.eogns.board_back.repository.ImageRepository;
|
||||
import com.eogns.board_back.repository.SearchLogRepository;
|
||||
import com.eogns.board_back.repository.UserRepository;
|
||||
import com.eogns.board_back.repository.resultSet.GetBoardResultSet;
|
||||
import com.eogns.board_back.repository.resultSet.GetCommentListResultSet;
|
||||
@ -55,6 +58,7 @@ public class BoardServiceImplement implements BoardService{
|
||||
private final CommentRepository commentRepository;
|
||||
private final FavoriteRepository favoriteRepository;
|
||||
private final BoardListViewRepository boardListViewRepository;
|
||||
private final SearchLogRepository searchLogRepository;
|
||||
|
||||
@Override
|
||||
public ResponseEntity<? super GetBoardResponseDto> getBoard(Integer boardNumber) {
|
||||
@ -146,6 +150,30 @@ public class BoardServiceImplement implements BoardService{
|
||||
return GetTop3BoardListResponseDto.success(boardListViewEntities);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<? super GetSearchBoardListResponseDto> getSearchBoardList(String searchWord,String preSearchWord) {
|
||||
|
||||
List<BoardListViewEntity> boardListViewEntities = new ArrayList<>();
|
||||
|
||||
try {
|
||||
boardListViewEntities = boardListViewRepository.findByTitleContainsOrContentContainsOrderByWriteDatetimeDesc(searchWord, searchWord);
|
||||
|
||||
SearchLogEntity searchLogEntity = new SearchLogEntity(searchWord, preSearchWord, false);
|
||||
searchLogRepository.save(searchLogEntity);
|
||||
|
||||
boolean relation = preSearchWord != null; /* 이전에 검색한걸로 넘어오는지 아니면 첫번째 검색한건지 판단 */
|
||||
if(relation){
|
||||
searchLogEntity = new SearchLogEntity (preSearchWord ,searchWord, relation);
|
||||
searchLogRepository.save(searchLogEntity);
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
return ResponseDto.databaseError();
|
||||
}
|
||||
return GetSearchBoardListResponseDto.success(boardListViewEntities);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<? super PostBoardResponseDto> postBoard(PostBoardRequestDto dto, String email) {
|
||||
@ -307,4 +335,6 @@ public class BoardServiceImplement implements BoardService{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user