From 33883faa982926b75835e295ec5caeaab99350d2 Mon Sep 17 00:00:00 2001 From: vladp Date: Mon, 9 Feb 2026 17:25:06 +0700 Subject: [PATCH] dev split tokens --- .../java/ru/soune/nocopy/controller/UserController.java | 1 + .../java/ru/soune/nocopy/entity/tarif/TariffInfo.java | 3 +++ .../soune/nocopy/service/tariff/TariffInfoService.java | 9 ++++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/soune/nocopy/controller/UserController.java b/src/main/java/ru/soune/nocopy/controller/UserController.java index 29d88ce..e16d722 100644 --- a/src/main/java/ru/soune/nocopy/controller/UserController.java +++ b/src/main/java/ru/soune/nocopy/controller/UserController.java @@ -116,6 +116,7 @@ public class UserController { .maxFileOnDisk(tariff.getDiskSize()) .startTariff(personalTariffInfo.getStartTariff()) .endTariff(personalTariffInfo.getEndTariff()) + .tokens(personalTariffInfo.getTokens() + personalTariffInfo.getBoughtTokens()) .build(); userDTO.setTariffInfo(infoDTO); diff --git a/src/main/java/ru/soune/nocopy/entity/tarif/TariffInfo.java b/src/main/java/ru/soune/nocopy/entity/tarif/TariffInfo.java index 18504d0..c8f647e 100644 --- a/src/main/java/ru/soune/nocopy/entity/tarif/TariffInfo.java +++ b/src/main/java/ru/soune/nocopy/entity/tarif/TariffInfo.java @@ -31,6 +31,9 @@ public class TariffInfo { @Column(name = "tokens") private Integer tokens; + @Column(name = "bought_tokens") + private Integer boughtTokens = 0; + @ManyToOne @JoinColumn(name = "tariff_id") private Tariff tariff; diff --git a/src/main/java/ru/soune/nocopy/service/tariff/TariffInfoService.java b/src/main/java/ru/soune/nocopy/service/tariff/TariffInfoService.java index ca2fe8c..951f7c3 100644 --- a/src/main/java/ru/soune/nocopy/service/tariff/TariffInfoService.java +++ b/src/main/java/ru/soune/nocopy/service/tariff/TariffInfoService.java @@ -35,6 +35,7 @@ public class TariffInfoService { tariffInfo.setStatus(tariffStatus); tariffInfo.setEndTariff(endTariff); tariffInfo.setTokens(tokens); + tariffInfo.setBoughtTokens(0); return tariffInfoRepository.save(tariffInfo); } @@ -52,10 +53,15 @@ public class TariffInfoService { } Integer tokens = activeTariffInfo.getTokens(); + Integer boughtTokens = activeTariffInfo.getBoughtTokens(); if (tokens - value >= 0) { activeTariffInfo.setTokens(activeTariffInfo.getTokens() - value); + tariffInfoRepository.save(activeTariffInfo); + } else if (boughtTokens - value >= 0) { + activeTariffInfo.setTokens(activeTariffInfo.getBoughtTokens() - value); + tariffInfoRepository.save(activeTariffInfo); } else { throw new TariffNotFoundException("User not have tokens for protect"); @@ -118,7 +124,8 @@ public class TariffInfoService { tariffInfo.getStartTariff(), tariffInfo.getEndTariff(), tariffInfo.getTariff() != null ? tariffInfo.getTariff().getId() : null, - tariffInfo.getTariff() != null ? tariffInfo.getTariff().getName() : null, tariffInfo.getTokens(), + tariffInfo.getTariff() != null ? tariffInfo.getTariff().getName() : null, + tariffInfo.getTokens() + tariffInfo.getBoughtTokens(), tariffInfo.getTariff().getDiskSize(), 0L, 0, tariffInfo.getTariff().getMaxFilesCount()); }