dev split tokens
Test Workflow / test (push) Successful in 2s

This commit is contained in:
vladp
2026-02-09 17:25:06 +07:00
parent 7cc744829b
commit 33883faa98
3 changed files with 12 additions and 1 deletions
@@ -116,6 +116,7 @@ public class UserController {
.maxFileOnDisk(tariff.getDiskSize()) .maxFileOnDisk(tariff.getDiskSize())
.startTariff(personalTariffInfo.getStartTariff()) .startTariff(personalTariffInfo.getStartTariff())
.endTariff(personalTariffInfo.getEndTariff()) .endTariff(personalTariffInfo.getEndTariff())
.tokens(personalTariffInfo.getTokens() + personalTariffInfo.getBoughtTokens())
.build(); .build();
userDTO.setTariffInfo(infoDTO); userDTO.setTariffInfo(infoDTO);
@@ -31,6 +31,9 @@ public class TariffInfo {
@Column(name = "tokens") @Column(name = "tokens")
private Integer tokens; private Integer tokens;
@Column(name = "bought_tokens")
private Integer boughtTokens = 0;
@ManyToOne @ManyToOne
@JoinColumn(name = "tariff_id") @JoinColumn(name = "tariff_id")
private Tariff tariff; private Tariff tariff;
@@ -35,6 +35,7 @@ public class TariffInfoService {
tariffInfo.setStatus(tariffStatus); tariffInfo.setStatus(tariffStatus);
tariffInfo.setEndTariff(endTariff); tariffInfo.setEndTariff(endTariff);
tariffInfo.setTokens(tokens); tariffInfo.setTokens(tokens);
tariffInfo.setBoughtTokens(0);
return tariffInfoRepository.save(tariffInfo); return tariffInfoRepository.save(tariffInfo);
} }
@@ -52,10 +53,15 @@ public class TariffInfoService {
} }
Integer tokens = activeTariffInfo.getTokens(); Integer tokens = activeTariffInfo.getTokens();
Integer boughtTokens = activeTariffInfo.getBoughtTokens();
if (tokens - value >= 0) { if (tokens - value >= 0) {
activeTariffInfo.setTokens(activeTariffInfo.getTokens() - value); activeTariffInfo.setTokens(activeTariffInfo.getTokens() - value);
tariffInfoRepository.save(activeTariffInfo);
} else if (boughtTokens - value >= 0) {
activeTariffInfo.setTokens(activeTariffInfo.getBoughtTokens() - value);
tariffInfoRepository.save(activeTariffInfo); tariffInfoRepository.save(activeTariffInfo);
} else { } else {
throw new TariffNotFoundException("User not have tokens for protect"); throw new TariffNotFoundException("User not have tokens for protect");
@@ -118,7 +124,8 @@ public class TariffInfoService {
tariffInfo.getStartTariff(), tariffInfo.getStartTariff(),
tariffInfo.getEndTariff(), tariffInfo.getEndTariff(),
tariffInfo.getTariff() != null ? tariffInfo.getTariff().getId() : null, 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().getDiskSize(), 0L, 0,
tariffInfo.getTariff().getMaxFilesCount()); tariffInfo.getTariff().getMaxFilesCount());
} }