This commit is contained in:
@@ -16,4 +16,5 @@ public class TariffDTO {
|
|||||||
private int maxFilesCount;
|
private int maxFilesCount;
|
||||||
private Long diskSize;
|
private Long diskSize;
|
||||||
private Long maxUsers;
|
private Long maxUsers;
|
||||||
|
private String tariffTerm;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,4 +49,7 @@ public class TariffRequest {
|
|||||||
|
|
||||||
@JsonProperty("user_token")
|
@JsonProperty("user_token")
|
||||||
private String userToken;
|
private String userToken;
|
||||||
|
|
||||||
|
@JsonProperty("tariff_term")
|
||||||
|
private String tariffTerm;
|
||||||
}
|
}
|
||||||
@@ -40,4 +40,8 @@ public class Tariff {
|
|||||||
|
|
||||||
@Column(name = "tariffAccountType")
|
@Column(name = "tariffAccountType")
|
||||||
private String tariffAccountType;
|
private String tariffAccountType;
|
||||||
|
|
||||||
|
@Column(name = "tariff_term")
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
private TariffTimeTerm tariffTerm;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package ru.soune.nocopy.entity.tarif;
|
||||||
|
|
||||||
|
public enum TariffTimeTerm {
|
||||||
|
MONTHLY(30),YEAR(365);
|
||||||
|
|
||||||
|
private final Integer days;
|
||||||
|
|
||||||
|
TariffTimeTerm(Integer days) {
|
||||||
|
this.days = days;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getDays() {
|
||||||
|
return days;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package ru.soune.nocopy.entity.tarif;
|
|||||||
|
|
||||||
|
|
||||||
public enum TariffType {
|
public enum TariffType {
|
||||||
START, BASIC, PRO, ENTERPRISE, DEMO, BUISNES, CORPORAT, STUDIO, FREE, TOKEN_100, TOKEN_500, TOKEN_1000, TOKEN_5000,
|
START, START_YEAR, BASIC, BASIC_YEAR, PRO, PRO_YEAR, ENTERPRISE, ENTERPRISE_YEAR, DEMO, BUISNES, BUISNES_YEAR,
|
||||||
|
CORPORAT, CORPORAT_YEAR, STUDIO, STUDIO_YEAR, FREE, TOKEN_100, TOKEN_500, TOKEN_1000, TOKEN_5000,
|
||||||
MONITORING_DAILY, MONITORING_WEEKLY, MONITORING_MONTHLY;
|
MONITORING_DAILY, MONITORING_WEEKLY, MONITORING_MONTHLY;
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,7 @@ import ru.soune.nocopy.dto.MessageCode;
|
|||||||
import ru.soune.nocopy.dto.tarriff.TariffDTO;
|
import ru.soune.nocopy.dto.tarriff.TariffDTO;
|
||||||
import ru.soune.nocopy.dto.tarriff.TariffRequest;
|
import ru.soune.nocopy.dto.tarriff.TariffRequest;
|
||||||
import ru.soune.nocopy.dto.tarriff.TariffResponse;
|
import ru.soune.nocopy.dto.tarriff.TariffResponse;
|
||||||
|
import ru.soune.nocopy.entity.tarif.TariffTimeTerm;
|
||||||
import ru.soune.nocopy.entity.user.AuthToken;
|
import ru.soune.nocopy.entity.user.AuthToken;
|
||||||
import ru.soune.nocopy.entity.user.User;
|
import ru.soune.nocopy.entity.user.User;
|
||||||
import ru.soune.nocopy.repository.AuthTokenRepository;
|
import ru.soune.nocopy.repository.AuthTokenRepository;
|
||||||
@@ -64,7 +65,7 @@ public class TariffHandler implements RequestHandler {
|
|||||||
private BaseResponse handleAddTariff(BaseRequest request, TariffRequest tariffRequest) {
|
private BaseResponse handleAddTariff(BaseRequest request, TariffRequest tariffRequest) {
|
||||||
tariffService.addTariff(tariffRequest.getName(), tariffRequest.getPrice(), tariffRequest.getType(),
|
tariffService.addTariff(tariffRequest.getName(), tariffRequest.getPrice(), tariffRequest.getType(),
|
||||||
tariffRequest.getTokens(), tariffRequest.getDiskSize(), tariffRequest.getMaxUsers(),
|
tariffRequest.getTokens(), tariffRequest.getDiskSize(), tariffRequest.getMaxUsers(),
|
||||||
tariffRequest.getMaxFilesCount());
|
tariffRequest.getMaxFilesCount(), tariffRequest.getTariffTerm());
|
||||||
|
|
||||||
TariffResponse tariffResponse = TariffResponse.builder()
|
TariffResponse tariffResponse = TariffResponse.builder()
|
||||||
.tariffName(tariffRequest.getName())
|
.tariffName(tariffRequest.getName())
|
||||||
@@ -122,7 +123,8 @@ public class TariffHandler implements RequestHandler {
|
|||||||
private BaseResponse handleGetTariffs(BaseRequest request, TariffRequest tariffRequest) {
|
private BaseResponse handleGetTariffs(BaseRequest request, TariffRequest tariffRequest) {
|
||||||
AuthToken authToken = authTokenRepository.findByToken(tariffRequest.getUserToken()).orElseThrow();
|
AuthToken authToken = authTokenRepository.findByToken(tariffRequest.getUserToken()).orElseThrow();
|
||||||
User user = authToken.getUser();
|
User user = authToken.getUser();
|
||||||
List<TariffDTO> allTariffs = tariffService.getTariffByAccountType(user);
|
List<TariffDTO> allTariffs = tariffService.getTariffByAccountTypeAndTariffTerm(user,
|
||||||
|
TariffTimeTerm.valueOf(tariffRequest.getTariffTerm().toUpperCase()));
|
||||||
|
|
||||||
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
|
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
|
||||||
MessageCode.SUCCESS.getDescription(),
|
MessageCode.SUCCESS.getDescription(),
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import ru.soune.nocopy.dto.tarriff.TariffInfoRequest;
|
|||||||
import ru.soune.nocopy.dto.tarriff.TariffInfoResponse;
|
import ru.soune.nocopy.dto.tarriff.TariffInfoResponse;
|
||||||
import ru.soune.nocopy.entity.tarif.Tariff;
|
import ru.soune.nocopy.entity.tarif.Tariff;
|
||||||
import ru.soune.nocopy.entity.tarif.TariffStatus;
|
import ru.soune.nocopy.entity.tarif.TariffStatus;
|
||||||
|
import ru.soune.nocopy.entity.tarif.TariffTimeTerm;
|
||||||
import ru.soune.nocopy.entity.tarif.TariffType;
|
import ru.soune.nocopy.entity.tarif.TariffType;
|
||||||
import ru.soune.nocopy.repository.TariffRepository;
|
import ru.soune.nocopy.repository.TariffRepository;
|
||||||
import ru.soune.nocopy.service.tariff.TariffInfoService;
|
import ru.soune.nocopy.service.tariff.TariffInfoService;
|
||||||
@@ -75,13 +76,14 @@ public class TariffInfoHandler implements RequestHandler {
|
|||||||
try {
|
try {
|
||||||
Long tariffId = tariffInfoRequest.getTariffId();
|
Long tariffId = tariffInfoRequest.getTariffId();
|
||||||
Tariff tariff= tariffRepository.findById(tariffId).orElseThrow();
|
Tariff tariff= tariffRepository.findById(tariffId).orElseThrow();
|
||||||
|
TariffTimeTerm tariffTerm = tariff.getTariffTerm();
|
||||||
|
LocalDateTime endDateTime = LocalDateTime.now().plusDays(tariffTerm.getDays());
|
||||||
|
|
||||||
TariffInfoDTO tariffInfoDTO = new TariffInfoDTO(null,
|
TariffInfoDTO tariffInfoDTO = new TariffInfoDTO(null,
|
||||||
tariffInfoRequest.getStatus() != null ? tariffInfoRequest.getStatus() : TariffStatus.ACTIVE.name(),
|
tariffInfoRequest.getStatus() != null ? tariffInfoRequest.getStatus() : TariffStatus.ACTIVE.name(),
|
||||||
tariffInfoRequest.getStartTariff() != null ? tariffInfoRequest.getStartTariff() : LocalDateTime.now(),
|
tariffInfoRequest.getStartTariff() != null ? tariffInfoRequest.getStartTariff() : LocalDateTime.now(),
|
||||||
tariffInfoRequest.getEndTariff() != null ? tariffInfoRequest.getEndTariff() : LocalDateTime.now().plusDays(30),
|
endDateTime, tariffInfoRequest.getTariffId(), tariff.getName(), tariff.getTokens(),
|
||||||
tariffInfoRequest.getTariffId(), tariff.getName(), tariff.getTokens(), tariff.getDiskSize(), 0L,
|
tariff.getDiskSize(), 0L, 0, tariff.getMaxFilesCount());
|
||||||
0, tariff.getMaxFilesCount());
|
|
||||||
|
|
||||||
TariffInfoDTO createdTariffInfo = tariffInfoService.createTariffInfo(tariffInfoDTO);
|
TariffInfoDTO createdTariffInfo = tariffInfoService.createTariffInfo(tariffInfoDTO);
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package ru.soune.nocopy.repository;
|
|||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
import ru.soune.nocopy.entity.tarif.Tariff;
|
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.tarif.TariffType;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -13,5 +14,6 @@ public interface TariffRepository extends JpaRepository<Tariff, Long> {
|
|||||||
Optional<Tariff> findByType(String type);
|
Optional<Tariff> findByType(String type);
|
||||||
List<Tariff> findAllByOrderByPriceAsc();
|
List<Tariff> findAllByOrderByPriceAsc();
|
||||||
List<Tariff> findByTariffAccountType(String typeAccount);
|
List<Tariff> findByTariffAccountType(String typeAccount);
|
||||||
|
List<Tariff> findByTariffAccountTypeAndTariffTerm(String typeAccount, TariffTimeTerm tariffTerm);
|
||||||
Tariff findByName(String name);
|
Tariff findByName(String name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,8 +75,8 @@ public class TariffInfoService {
|
|||||||
public TariffInfo createTariffInfo(TariffType tariffType) {
|
public TariffInfo createTariffInfo(TariffType tariffType) {
|
||||||
Tariff tariff = tariffRepository.findByType(tariffType.toString()).orElseThrow();
|
Tariff tariff = tariffRepository.findByType(tariffType.toString()).orElseThrow();
|
||||||
|
|
||||||
TariffInfo tariffInfo = createTariffInfo(LocalDateTime.now(), LocalDateTime.now().plusDays(30),
|
TariffInfo tariffInfo = createTariffInfo(LocalDateTime.now(),
|
||||||
TariffStatus.ACTIVE, tariff.getTokens());
|
LocalDateTime.now().plusDays(tariff.getTariffTerm().getDays()), TariffStatus.ACTIVE, tariff.getTokens());
|
||||||
tariffInfo.setTariff(tariff);
|
tariffInfo.setTariff(tariff);
|
||||||
|
|
||||||
return tariffInfoRepository.save(tariffInfo);
|
return tariffInfoRepository.save(tariffInfo);
|
||||||
|
|||||||
@@ -7,13 +7,12 @@ import org.springframework.context.event.EventListener;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import ru.soune.nocopy.entity.tarif.Tariff;
|
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.tarif.TariffType;
|
||||||
import ru.soune.nocopy.repository.TariffRepository;
|
import ru.soune.nocopy.repository.TariffRepository;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -109,6 +108,7 @@ public class TariffInitializationService {
|
|||||||
tariff.setDiskSize(1024L * 1024 * 100);
|
tariff.setDiskSize(1024L * 1024 * 100);
|
||||||
tariff.setMaxUsers(1L);
|
tariff.setMaxUsers(1L);
|
||||||
tariff.setTariffAccountType("b2c");
|
tariff.setTariffAccountType("b2c");
|
||||||
|
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case START:
|
case START:
|
||||||
@@ -119,6 +119,18 @@ public class TariffInitializationService {
|
|||||||
tariff.setDiskSize(1024L * 1024 * 500);
|
tariff.setDiskSize(1024L * 1024 * 500);
|
||||||
tariff.setMaxUsers(1L);
|
tariff.setMaxUsers(1L);
|
||||||
tariff.setTariffAccountType("b2c");
|
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;
|
break;
|
||||||
|
|
||||||
case PRO:
|
case PRO:
|
||||||
@@ -129,8 +141,21 @@ public class TariffInitializationService {
|
|||||||
tariff.setDiskSize(1024L * 1024 * 1024 * 10L);
|
tariff.setDiskSize(1024L * 1024 * 1024 * 10L);
|
||||||
tariff.setMaxUsers(1L);
|
tariff.setMaxUsers(1L);
|
||||||
tariff.setTariffAccountType("b2c");
|
tariff.setTariffAccountType("b2c");
|
||||||
|
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||||
break;
|
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:
|
case STUDIO:
|
||||||
tariff.setName("studio");
|
tariff.setName("studio");
|
||||||
tariff.setPrice(9750);
|
tariff.setPrice(9750);
|
||||||
@@ -139,6 +164,18 @@ public class TariffInitializationService {
|
|||||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||||
tariff.setMaxUsers(2L);
|
tariff.setMaxUsers(2L);
|
||||||
tariff.setTariffAccountType("b2c");
|
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;
|
break;
|
||||||
|
|
||||||
case BASIC:
|
case BASIC:
|
||||||
@@ -149,6 +186,18 @@ public class TariffInitializationService {
|
|||||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||||
tariff.setMaxUsers(basicUserCount);
|
tariff.setMaxUsers(basicUserCount);
|
||||||
tariff.setTariffAccountType("b2c");
|
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;
|
break;
|
||||||
|
|
||||||
case ENTERPRISE:
|
case ENTERPRISE:
|
||||||
@@ -159,6 +208,18 @@ public class TariffInitializationService {
|
|||||||
tariff.setDiskSize(1024L * 1024 * 1024 * 10L);
|
tariff.setDiskSize(1024L * 1024 * 1024 * 10L);
|
||||||
tariff.setMaxUsers(10L);
|
tariff.setMaxUsers(10L);
|
||||||
tariff.setTariffAccountType("b2b");
|
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;
|
break;
|
||||||
|
|
||||||
case BUISNES:
|
case BUISNES:
|
||||||
@@ -169,8 +230,21 @@ public class TariffInitializationService {
|
|||||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||||
tariff.setMaxUsers(5L);
|
tariff.setMaxUsers(5L);
|
||||||
tariff.setTariffAccountType("b2b");
|
tariff.setTariffAccountType("b2b");
|
||||||
|
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||||
break;
|
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:
|
case CORPORAT:
|
||||||
tariff.setName("corporat");
|
tariff.setName("corporat");
|
||||||
tariff.setPrice(99000);
|
tariff.setPrice(99000);
|
||||||
@@ -179,8 +253,21 @@ public class TariffInitializationService {
|
|||||||
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
tariff.setDiskSize(1024L * 1024 * 1024 * 50L);
|
||||||
tariff.setMaxUsers(10L);
|
tariff.setMaxUsers(10L);
|
||||||
tariff.setTariffAccountType("b2b");
|
tariff.setTariffAccountType("b2b");
|
||||||
|
tariff.setTariffTerm(TariffTimeTerm.MONTHLY);
|
||||||
break;
|
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:
|
case TOKEN_100:
|
||||||
tariff.setName("token_100");
|
tariff.setName("token_100");
|
||||||
tariff.setPrice(299);
|
tariff.setPrice(299);
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import ru.soune.nocopy.dto.tarriff.TariffDTO;
|
import ru.soune.nocopy.dto.tarriff.TariffDTO;
|
||||||
import ru.soune.nocopy.entity.tarif.Tariff;
|
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.tarif.TariffType;
|
||||||
import ru.soune.nocopy.entity.user.User;
|
import ru.soune.nocopy.entity.user.User;
|
||||||
import ru.soune.nocopy.exception.TariffNotFoundException;
|
import ru.soune.nocopy.exception.TariffNotFoundException;
|
||||||
@@ -20,7 +21,7 @@ public class TariffService {
|
|||||||
private final TariffRepository tariffRepository;
|
private final TariffRepository tariffRepository;
|
||||||
|
|
||||||
public void addTariff(String tariffName, double price, String type, int tokens, long diskSize, long maxUsers,
|
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 tariff = new Tariff();
|
||||||
tariff.setName(tariffName);
|
tariff.setName(tariffName);
|
||||||
tariff.setPrice(price);
|
tariff.setPrice(price);
|
||||||
@@ -29,6 +30,7 @@ public class TariffService {
|
|||||||
tariff.setDiskSize(diskSize);
|
tariff.setDiskSize(diskSize);
|
||||||
tariff.setMaxUsers(maxUsers);
|
tariff.setMaxUsers(maxUsers);
|
||||||
tariff.setMaxFilesCount(maxFilesCount);
|
tariff.setMaxFilesCount(maxFilesCount);
|
||||||
|
tariff.setTariffTerm(TariffTimeTerm.valueOf(tariffTerm.toUpperCase()));
|
||||||
|
|
||||||
tariffRepository.save(tariff);
|
tariffRepository.save(tariff);
|
||||||
}
|
}
|
||||||
@@ -42,6 +44,15 @@ public class TariffService {
|
|||||||
.collect(Collectors.toList());
|
.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) {
|
public List<TariffDTO> getTariffByType(String type) {
|
||||||
return tariffRepository.findByTariffAccountType(type)
|
return tariffRepository.findByTariffAccountType(type)
|
||||||
.stream()
|
.stream()
|
||||||
@@ -99,7 +110,8 @@ public class TariffService {
|
|||||||
tariff.getTokens(),
|
tariff.getTokens(),
|
||||||
tariff.getMaxFilesCount(),
|
tariff.getMaxFilesCount(),
|
||||||
tariff.getDiskSize(),
|
tariff.getDiskSize(),
|
||||||
tariff.getMaxUsers()
|
tariff.getMaxUsers(),
|
||||||
|
tariff.getTariffTerm().name()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,5 +123,6 @@ public class TariffService {
|
|||||||
tariff.setMaxFilesCount(dto.getMaxFilesCount());
|
tariff.setMaxFilesCount(dto.getMaxFilesCount());
|
||||||
tariff.setDiskSize(dto.getDiskSize());
|
tariff.setDiskSize(dto.getDiskSize());
|
||||||
tariff.setMaxUsers(dto.getMaxUsers());
|
tariff.setMaxUsers(dto.getMaxUsers());
|
||||||
|
tariff.setTariffTerm(TariffTimeTerm.valueOf(dto.getTariffTerm().toUpperCase()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user