diff --git a/src/main/java/ru/soune/nocopy/dto/MessageCode.java b/src/main/java/ru/soune/nocopy/dto/MessageCode.java index 901644b..122227e 100644 --- a/src/main/java/ru/soune/nocopy/dto/MessageCode.java +++ b/src/main/java/ru/soune/nocopy/dto/MessageCode.java @@ -44,6 +44,7 @@ public enum MessageCode { FILE_IS_NOT_PROTECTED(0, "File is not protected"), TARIFF_IS_ADD(0, "Tariff is added"), TARIFF_IS_DELETED(0, "Tariff is deleted"), + TARIFF_IS_NOT_DELETED(0, "Tariff is not deleted,use some users"), TARIFF_IS_UPDATED(0, "Tariff is updated"), TARIFF_IS_NOT_FOUND(0, "Tariff is not found"), VALIDATION_ERROR(2, "Validation error"), diff --git a/src/main/java/ru/soune/nocopy/handler/TariffHandler.java b/src/main/java/ru/soune/nocopy/handler/TariffHandler.java index 45e7151..7f25090 100644 --- a/src/main/java/ru/soune/nocopy/handler/TariffHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/TariffHandler.java @@ -91,6 +91,12 @@ public class TariffHandler implements RequestHandler { .tariffType(tariff.getType()) .build(); + if (tariffService.existTariffInfoByTariffId(tariffRequest.getId())) { + return new BaseResponse(request.getMsgId(), MessageCode.TARIFF_IS_NOT_DELETED.getCode(), + MessageCode.TARIFF_IS_NOT_DELETED.getDescription(), + tariffResponse); + } + tariffService.deleteTariff(tariffRequest.getId()); return new BaseResponse(request.getMsgId(), MessageCode.TARIFF_IS_DELETED.getCode(), diff --git a/src/main/java/ru/soune/nocopy/repository/TariffInfoRepository.java b/src/main/java/ru/soune/nocopy/repository/TariffInfoRepository.java index 2be839d..6c24145 100644 --- a/src/main/java/ru/soune/nocopy/repository/TariffInfoRepository.java +++ b/src/main/java/ru/soune/nocopy/repository/TariffInfoRepository.java @@ -15,6 +15,8 @@ public interface TariffInfoRepository extends JpaRepository @Query("SELECT t FROM TariffInfo t WHERE t.autoRenewal = true AND t.endTariff <= :date") List findForAutoRenewal(@Param("date") LocalDateTime date); + Boolean existsByTariffId(Long tariffId); + @Query(""" SELECT COUNT(u.Id) FROM User u diff --git a/src/main/java/ru/soune/nocopy/service/tariff/TariffService.java b/src/main/java/ru/soune/nocopy/service/tariff/TariffService.java index dee2260..936cfd9 100644 --- a/src/main/java/ru/soune/nocopy/service/tariff/TariffService.java +++ b/src/main/java/ru/soune/nocopy/service/tariff/TariffService.java @@ -10,6 +10,7 @@ import ru.soune.nocopy.entity.tarif.TariffTimeTerm; import ru.soune.nocopy.entity.tarif.TariffType; import ru.soune.nocopy.entity.user.User; import ru.soune.nocopy.exception.TariffNotFoundException; +import ru.soune.nocopy.repository.TariffInfoRepository; import ru.soune.nocopy.repository.TariffRepository; import java.util.List; @@ -21,6 +22,8 @@ public class TariffService { private final TariffRepository tariffRepository; + private final TariffInfoRepository tariffInfoRepository; + public void addTariff(String tariffName, double price, String type, int tokens, long diskSize, long maxUsers, int maxFilesCount, String tariffTerm, String description) { Tariff tariff = new Tariff(); @@ -46,6 +49,10 @@ public class TariffService { .collect(Collectors.toList()); } + public Boolean existTariffInfoByTariffId(Long id) { + return tariffInfoRepository.existsByTariffId(id); + } + public List getTariffByAccountTypeAndTariffTerm(User user, TariffTimeTerm tariffTerm) { String typeAccount = user.canManageCompanySettings() ? "b2b": "b2c"; @@ -120,7 +127,7 @@ public class TariffService { if (tariffRequest.getName() != null) { tariff.setName(tariffRequest.getName()); } - if (tariffRequest.getPrice() != null) { // null = не обновляем + if (tariffRequest.getPrice() != null) { tariff.setPrice(tariffRequest.getPrice()); } if (tariffRequest.getTokens() != null) {