dev add tariff and temp flag for files
Test Workflow / test (push) Successful in 2s

This commit is contained in:
vladp
2026-01-30 12:52:16 +07:00
parent fb5642db9e
commit 49dc19cd04
21 changed files with 612 additions and 24 deletions
@@ -10,14 +10,20 @@ import ru.soune.nocopy.dto.register.LoginAnswer;
import ru.soune.nocopy.dto.register.LoginRequest;
import ru.soune.nocopy.dto.register.RegRequest;
import ru.soune.nocopy.entity.company.Company;
import ru.soune.nocopy.entity.tarif.TariffInfo;
import ru.soune.nocopy.entity.tarif.TariffType;
import ru.soune.nocopy.entity.user.AuthToken;
import ru.soune.nocopy.entity.user.Permission;
import ru.soune.nocopy.entity.user.User;
import ru.soune.nocopy.exception.NotFoundAuthToken;
import ru.soune.nocopy.exception.NotValidFieldException;
import ru.soune.nocopy.repository.AuthTokenRepository;
import ru.soune.nocopy.repository.CompanyRepository;
import ru.soune.nocopy.repository.TariffInfoRepository;
import ru.soune.nocopy.repository.UserRepository;
import ru.soune.nocopy.service.file.CheckCounterService;
import ru.soune.nocopy.service.tariff.TariffInfoService;
import ru.soune.nocopy.service.tariff.TariffService;
import java.security.SecureRandom;
import java.time.LocalDateTime;
@@ -37,6 +43,10 @@ public class AuthService {
private final CheckCounterService checkCounterService;
private final TariffInfoRepository tariffInfoRepository;
private final TariffInfoService tariffInfoService;
private final SecureRandom secureRandom = new SecureRandom();
@Transactional
@@ -48,20 +58,20 @@ public class AuthService {
user.setActive(true);
user.setEmailVerified(true);
if (registerRequest.getCompanyName() != null &&
AccountType.valueOf(registerRequest.getAccountType().toUpperCase()).equals(AccountType.B2B)) {
Company company = new Company();
company.setCompanyName(registerRequest.getCompanyName());
AccountType accountType = AccountType.valueOf(registerRequest.getAccountType().toUpperCase());
companyRepository.save(company);
user.setCompany(company);
if (accountType == AccountType.B2B && registerRequest.getCompanyName() != null) {
createCompanyAccount(registerRequest, user);
} else {
createIndividualAccount(user);
}
if (registerRequest.getPhone() != null) {
user.setPhone(registerRequest.getPhone());
}
user.grantPermission(Permission.LOGIN_BIT);
User savedUser = userRepository.save(user);
AuthToken authToken = genereateAuthToken(savedUser);
@@ -138,4 +148,26 @@ public class AuthService {
secureRandom.nextBytes(bytes);
return Base64.getUrlEncoder().withoutPadding().encodeToString(bytes);
}
private void createCompanyAccount(RegRequest request, User user) {
Company company = new Company();
company.setCompanyName(request.getCompanyName());
TariffInfo companyTariff = tariffInfoService.createTariffInfo(TariffType.DEMO);
company.setTariffInfo(companyTariff);
companyRepository.save(company);
tariffInfoService.addTariffInfo(companyTariff);
user.setCompany(company);
user.grantPermission(Permission.COMPANY_SETTINGS_BIT);
}
private void createIndividualAccount(User user) {
TariffInfo personalTariff = tariffInfoService.createTariffInfo(TariffType.DEMO);
tariffInfoService.addTariffInfo(personalTariff);
user.setPersonalTariffInfo(personalTariff);
}
}