Skip to content

Commit 8c6904a

Browse files
committed
feat : cocktailSearch
1 parent 771a803 commit 8c6904a

File tree

4 files changed

+21
-4
lines changed

4 files changed

+21
-4
lines changed

db_dev.mv.db

-28 KB
Binary file not shown.

src/main/java/com/back/domain/cocktail/repository/CocktailRepository.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package com.back.domain.cocktail.repository;
22

33
import com.back.domain.cocktail.entity.Cocktail;
4+
import org.springframework.data.domain.Pageable;
45
import org.springframework.data.jpa.repository.JpaRepository;
56
import org.springframework.stereotype.Repository;
6-
import org.springframework.data.domain.Pageable;
7+
78
import java.util.List;
89

910
@Repository
@@ -14,4 +15,6 @@ public interface CocktailRepository extends JpaRepository<Cocktail, Long> {
1415

1516
// 무한스크롤 → lastId보다 작은 ID들 가져오기
1617
List<Cocktail> findByCocktailIdLessThanOrderByCocktailIdDesc(Long lastId, Pageable pageable);
18+
19+
List<Cocktail> findByCocktailNameContainingIgnoreCaseOrIngredientContainingIgnoreCase(String cocktailName, String ingredient);
1720
}

src/main/java/com/back/domain/cocktail/service/CocktailService.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.springframework.data.domain.PageRequest;
88
import org.springframework.stereotype.Service;
99
import org.springframework.transaction.annotation.Transactional;
10-
1110
import java.util.List;
1211
import java.util.stream.Collectors;
1312

@@ -25,6 +24,7 @@ public Cocktail getCocktailById(Long id) {
2524
.orElseThrow(() -> new IllegalArgumentException("User not found. id=" + id));
2625
}
2726

27+
// 칵테일 무한스크롤 조회
2828
@Transactional(readOnly = true)
2929
public List<CocktailSummaryDto> getCocktails(Long lastId, Integer size) { // 무한스크롤 조회, 클라이언트 쪽에서 lastId와 size 정보를 받음.(스크롤 이벤트)
3030
int fetchSize = (size != null) ? size : DEFAULT_SIZE;
@@ -42,4 +42,16 @@ public List<CocktailSummaryDto> getCocktails(Long lastId, Integer size) { // 무
4242
.map(c -> new CocktailSummaryDto(c.getCocktailId(), c.getCocktailName(), c.getCocktailImgUrl()))
4343
.collect(Collectors.toList());
4444
}
45+
46+
// 칵테일 검색기능
47+
public List<Cocktail> cocktailSearch(String keyword) {
48+
// cockTailName, ingredient이 하나만 있을 수도 있고 둘 다 있을 수도 있음
49+
if (keyword == null || keyword.trim().isEmpty()) {
50+
// 아무 검색어 없으면 전체 반환 처리
51+
return cocktailRepository.findAll();
52+
} else {
53+
// 이름 또는 재료 둘 중 하나라도 매칭되면 결과 반환
54+
return cocktailRepository.findByCocktailNameContainingIgnoreCaseOrIngredientContainingIgnoreCase(keyword, keyword);
55+
}
56+
}
4557
}

src/main/java/com/back/global/init/DevInitData.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,14 @@ public void cocktailInit() {
4343
cocktailRepository.save(Cocktail.builder()
4444
.cocktailName("Cocktail " + i)
4545
.cocktailImgUrl("http://example.com/img" + i + ".jpg")
46-
.ingredient("Ingredient1")
46+
.ingredient("Ingredient "+ i)
4747
.alcoholStrength(AlcoholStrength.NON_ALCOHOLIC)
4848
.build());
4949
}
5050
System.out.println("DevInitData: 테스트 칵테일 20개 삽입");
51-
System.out.println(cocktailService.getCocktailById(1l));
51+
System.out.println(cocktailService.getCocktailById(2l));
52+
System.out.println(cocktailService.cocktailSearch("cocktail 3"));
53+
System.out.println(cocktailService.cocktailSearch("Ingredient 4"));
5254
}
5355
}
5456

0 commit comments

Comments
 (0)