From f5736603252a8d2a2aad33a3a022cf9188e4fac5 Mon Sep 17 00:00:00 2001 From: "Kayashov.SM" Date: Sat, 27 Dec 2025 16:14:36 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20=D0=BA=D0=BE=D0=BF=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B1=D0=B0=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/kayashov/bar/service/BarService.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/ru/kayashov/bar/service/BarService.java b/src/main/java/ru/kayashov/bar/service/BarService.java index eac8e23..212d398 100644 --- a/src/main/java/ru/kayashov/bar/service/BarService.java +++ b/src/main/java/ru/kayashov/bar/service/BarService.java @@ -92,17 +92,24 @@ public class BarService { return BarResponseDto.mapToDto(bar); } + @Transactional public BarResponseDto copyBar(Long id, String name) { BarEntity barEntity = barEntityRepository.findById(id).orElseThrow(); - Long oldId = barEntity.getId(); - String oldName = barEntity.getName(); - barEntity.setName(name); - barEntity.setActive(false); - barEntity.setId(null); - BarEntity newBar = barEntityRepository.save(barEntity); - log.info("Бар {} - {} скопирован как {} - {}", oldId, oldName, newBar.getId(), name); - return BarResponseDto.mapToDto(newBar); + BarEntity entity = new BarEntity(); + entity.setName(name); + entity.setActive(false); + entity.setIngredients(new ArrayList<>()); + barEntityRepository.save(entity); + List ingredients = barEntity.getIngredients() + .stream() + .peek(i -> i.getBars().add(entity)) + .toList(); + entity.setIngredients(ingredients); + ingredientRepository.saveAll(ingredients); + log.info("Бар {} - {}, скопирован как {} - {}", barEntity.getId(), barEntity.getName(), entity.getId(), name); + + return BarResponseDto.mapToDto(entity); } private List findAllowedCocktails(List ingredients) {