This commit is contained in:
@@ -75,8 +75,8 @@ public class TariffInfoService {
|
||||
public TariffInfo createTariffInfo(TariffType tariffType) {
|
||||
Tariff tariff = tariffRepository.findByType(tariffType.toString()).orElseThrow();
|
||||
|
||||
TariffInfo tariffInfo = createTariffInfo(LocalDateTime.now(), LocalDateTime.now().plusDays(30),
|
||||
TariffStatus.ACTIVE, tariff.getTokens());
|
||||
TariffInfo tariffInfo = createTariffInfo(LocalDateTime.now(),
|
||||
LocalDateTime.now().plusDays(tariff.getTariffTerm().getDays()), TariffStatus.ACTIVE, tariff.getTokens());
|
||||
tariffInfo.setTariff(tariff);
|
||||
|
||||
return tariffInfoRepository.save(tariffInfo);
|
||||
|
||||
@@ -7,13 +7,12 @@ import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.soune.nocopy.entity.tarif.Tariff;
|
||||
import ru.soune.nocopy.entity.tarif.TariffTimeTerm;
|
||||
import ru.soune.nocopy.entity.tarif.TariffType;
|
||||
import ru.soune.nocopy.repository.TariffRepository;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -109,6 +108,7 @@ public class TariffInitializationService {
|
||||
tariff.setDiskSize(1024L * 1024 * 100);
|
||||
tariff.setMaxUsers(1L);
|
||||
tariff.setTariffAccountType("b2c");
|
||||
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||
break;
|
||||
|
||||
case START:
|
||||
@@ -119,6 +119,18 @@ public class TariffInitializationService {
|
||||
tariff.setDiskSize(1024L * 1024 * 500);
|
||||
tariff.setMaxUsers(1L);
|
||||
tariff.setTariffAccountType("b2c");
|
||||
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||
break;
|
||||
|
||||
case START_YEAR:
|
||||
tariff.setName("start_year");
|
||||
tariff.setPrice(1100);
|
||||
tariff.setTokens(300);
|
||||
tariff.setMaxFilesCount(80);
|
||||
tariff.setDiskSize(1024L * 1024 * 500);
|
||||
tariff.setMaxUsers(1L);
|
||||
tariff.setTariffAccountType("b2c");
|
||||
tariff.setTariffTerm(TariffTimeTerm.YEAR);
|
||||
break;
|
||||
|
||||
case PRO:
|
||||
@@ -129,8 +141,21 @@ public class TariffInitializationService {
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 10L);
|
||||
tariff.setMaxUsers(1L);
|
||||
tariff.setTariffAccountType("b2c");
|
||||
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||
break;
|
||||
|
||||
case PRO_YEAR:
|
||||
tariff.setName("pro_year");
|
||||
tariff.setPrice(4100);
|
||||
tariff.setTokens(900);
|
||||
tariff.setMaxFilesCount(300);
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 10L);
|
||||
tariff.setMaxUsers(1L);
|
||||
tariff.setTariffAccountType("b2c");
|
||||
tariff.setTariffTerm(TariffTimeTerm.YEAR);
|
||||
break;
|
||||
|
||||
|
||||
case STUDIO:
|
||||
tariff.setName("studio");
|
||||
tariff.setPrice(9750);
|
||||
@@ -139,6 +164,18 @@ public class TariffInitializationService {
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||
tariff.setMaxUsers(2L);
|
||||
tariff.setTariffAccountType("b2c");
|
||||
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||
break;
|
||||
|
||||
case STUDIO_YEAR:
|
||||
tariff.setName("studio_year");
|
||||
tariff.setPrice(9500);
|
||||
tariff.setTokens(3000);
|
||||
tariff.setMaxFilesCount(1000);
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||
tariff.setMaxUsers(2L);
|
||||
tariff.setTariffAccountType("b2c");
|
||||
tariff.setTariffTerm(TariffTimeTerm.YEAR);
|
||||
break;
|
||||
|
||||
case BASIC:
|
||||
@@ -149,6 +186,18 @@ public class TariffInitializationService {
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||
tariff.setMaxUsers(basicUserCount);
|
||||
tariff.setTariffAccountType("b2c");
|
||||
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||
break;
|
||||
|
||||
case BASIC_YEAR:
|
||||
tariff.setName("basic_year");
|
||||
tariff.setPrice(basicPrice);
|
||||
tariff.setTokens(basicTokens);
|
||||
tariff.setMaxFilesCount(enterpriceMaxFileCount);
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||
tariff.setMaxUsers(basicUserCount);
|
||||
tariff.setTariffAccountType("b2c");
|
||||
tariff.setTariffTerm(TariffTimeTerm.YEAR);
|
||||
break;
|
||||
|
||||
case ENTERPRISE:
|
||||
@@ -159,6 +208,18 @@ public class TariffInitializationService {
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 10L);
|
||||
tariff.setMaxUsers(10L);
|
||||
tariff.setTariffAccountType("b2b");
|
||||
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||
break;
|
||||
|
||||
case ENTERPRISE_YEAR:
|
||||
tariff.setName("enterprise_year");
|
||||
tariff.setPrice(200000);
|
||||
tariff.setTokens(30000);
|
||||
tariff.setMaxFilesCount(100000);
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 10L);
|
||||
tariff.setMaxUsers(10L);
|
||||
tariff.setTariffAccountType("b2b");
|
||||
tariff.setTariffTerm(TariffTimeTerm.YEAR);
|
||||
break;
|
||||
|
||||
case BUISNES:
|
||||
@@ -169,8 +230,21 @@ public class TariffInitializationService {
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||
tariff.setMaxUsers(5L);
|
||||
tariff.setTariffAccountType("b2b");
|
||||
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||
break;
|
||||
|
||||
case BUISNES_YEAR:
|
||||
tariff.setName("buisnes_year");
|
||||
tariff.setPrice(29000);
|
||||
tariff.setTokens(5000);
|
||||
tariff.setMaxFilesCount(5000);
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||
tariff.setMaxUsers(5L);
|
||||
tariff.setTariffAccountType("b2b");
|
||||
tariff.setTariffTerm(TariffTimeTerm.YEAR);
|
||||
break;
|
||||
|
||||
|
||||
case CORPORAT:
|
||||
tariff.setName("corporat");
|
||||
tariff.setPrice(99000);
|
||||
@@ -179,8 +253,21 @@ public class TariffInitializationService {
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||
tariff.setMaxUsers(10L);
|
||||
tariff.setTariffAccountType("b2b");
|
||||
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||
break;
|
||||
|
||||
case CORPORAT_YEAR:
|
||||
tariff.setName("corporat_year");
|
||||
tariff.setPrice(99000);
|
||||
tariff.setTokens(20000);
|
||||
tariff.setMaxFilesCount(50000);
|
||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||
tariff.setMaxUsers(10L);
|
||||
tariff.setTariffAccountType("b2b");
|
||||
tariff.setTariffTerm(TariffTimeTerm.YEAR);
|
||||
break;
|
||||
|
||||
|
||||
case TOKEN_100:
|
||||
tariff.setName("token_100");
|
||||
tariff.setPrice(299);
|
||||
|
||||
@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.soune.nocopy.dto.tarriff.TariffDTO;
|
||||
import ru.soune.nocopy.entity.tarif.Tariff;
|
||||
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;
|
||||
@@ -20,7 +21,7 @@ public class TariffService {
|
||||
private final TariffRepository tariffRepository;
|
||||
|
||||
public void addTariff(String tariffName, double price, String type, int tokens, long diskSize, long maxUsers,
|
||||
int maxFilesCount) {
|
||||
int maxFilesCount, String tariffTerm) {
|
||||
Tariff tariff = new Tariff();
|
||||
tariff.setName(tariffName);
|
||||
tariff.setPrice(price);
|
||||
@@ -29,6 +30,7 @@ public class TariffService {
|
||||
tariff.setDiskSize(diskSize);
|
||||
tariff.setMaxUsers(maxUsers);
|
||||
tariff.setMaxFilesCount(maxFilesCount);
|
||||
tariff.setTariffTerm(TariffTimeTerm.valueOf(tariffTerm.toUpperCase()));
|
||||
|
||||
tariffRepository.save(tariff);
|
||||
}
|
||||
@@ -42,6 +44,15 @@ public class TariffService {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<TariffDTO> getTariffByAccountTypeAndTariffTerm(User user, TariffTimeTerm tariffTerm) {
|
||||
String typeAccount = user.canManageCompanySettings() ? "b2b": "b2c";
|
||||
|
||||
return tariffRepository.findByTariffAccountTypeAndTariffTerm(typeAccount, tariffTerm)
|
||||
.stream()
|
||||
.map(this::convertToDTO)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<TariffDTO> getTariffByType(String type) {
|
||||
return tariffRepository.findByTariffAccountType(type)
|
||||
.stream()
|
||||
@@ -99,7 +110,8 @@ public class TariffService {
|
||||
tariff.getTokens(),
|
||||
tariff.getMaxFilesCount(),
|
||||
tariff.getDiskSize(),
|
||||
tariff.getMaxUsers()
|
||||
tariff.getMaxUsers(),
|
||||
tariff.getTariffTerm().name()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -111,5 +123,6 @@ public class TariffService {
|
||||
tariff.setMaxFilesCount(dto.getMaxFilesCount());
|
||||
tariff.setDiskSize(dto.getDiskSize());
|
||||
tariff.setMaxUsers(dto.getMaxUsers());
|
||||
tariff.setTariffTerm(TariffTimeTerm.valueOf(dto.getTariffTerm().toUpperCase()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user