добавлена страница калькулятора

This commit is contained in:
Kayashov.SM
2025-08-21 02:50:09 +04:00
parent 9da769beb5
commit d98686de12

View File

@@ -29,13 +29,11 @@ import ru.kayashov.bar.repository.ReceiptRepository;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Expression;
import javax.persistence.criteria.Join; import javax.persistence.criteria.Join;
import javax.persistence.criteria.JoinType; import javax.persistence.criteria.JoinType;
import javax.persistence.criteria.Order; import javax.persistence.criteria.Order;
import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
import javax.persistence.criteria.Subquery;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
@@ -80,7 +78,7 @@ public class CocktailService {
dto.setOnlyFavourite(false); dto.setOnlyFavourite(false);
dto.setSort(SortingEnum.NAME_ASC); dto.setSort(SortingEnum.NAME_ASC);
return mapper.cocktailsToDtoList(criteria(dto),false, true); return mapper.cocktailsToDtoList(criteria(dto), false, true);
} }
private List<CocktailEntity> criteria(CocktailFilterRequestDto dto) { private List<CocktailEntity> criteria(CocktailFilterRequestDto dto) {
@@ -239,12 +237,12 @@ public class CocktailService {
//todo: так и не придумал я нормальный запрос //todo: так и не придумал я нормальный запрос
private List<Long> findCocktailByCountNotHaveIngredient() { private List<Long> findCocktailByCountNotHaveIngredient() {
String sql = "SELECT cifc.cocktail_id" + String sql = "SELECT cifc.cocktail_id" +
" FROM (SELECT r.cocktail_id," + " FROM (SELECT r.cocktail_id," +
" COUNT(CASE WHEN i.is_have = false THEN 1 END) AS false_count" + " COUNT(CASE WHEN i.is_have = false THEN 1 END) AS false_count" +
" FROM receipt r" + " FROM receipt r" +
" LEFT JOIN public.ingredient i ON i.id = r.ingredient_id" + " LEFT JOIN public.ingredient i ON i.id = r.ingredient_id" +
" GROUP BY r.cocktail_id) AS cifc" + " GROUP BY r.cocktail_id) AS cifc" +
" WHERE false_count = 0"; " WHERE false_count = 0";
javax.persistence.Query query = entityManager.createNativeQuery(sql); javax.persistence.Query query = entityManager.createNativeQuery(sql);
return query.getResultList(); return query.getResultList();