dev add inn check for company
Test Workflow / test (push) Successful in 2s

This commit is contained in:
vladp
2026-02-13 16:25:04 +07:00
parent 03a330b570
commit 12aecff5c9
4 changed files with 14 additions and 2 deletions
@@ -13,6 +13,8 @@ public class RegRequest {
private String companyName; private String companyName;
private String inn;
@NotEmpty(message = "Need account type") @NotEmpty(message = "Need account type")
private String accountType; private String accountType;
@@ -32,6 +32,9 @@ public class Company {
@Column(name = "phone") @Column(name = "phone")
private String phone; private String phone;
@Column(name = "inn", unique = true)
private String inn;
@CreatedDate @CreatedDate
@Column(name = "register_date", updatable = false, nullable = false) @Column(name = "register_date", updatable = false, nullable = false)
private LocalDateTime registerDate = LocalDateTime.now(); private LocalDateTime registerDate = LocalDateTime.now();
@@ -13,6 +13,8 @@ import java.util.Optional;
public interface CompanyRepository extends JpaRepository<Company, String> { public interface CompanyRepository extends JpaRepository<Company, String> {
Optional<Company> findByCompanyName(String companyName); Optional<Company> findByCompanyName(String companyName);
Optional<Company> findByInn(String companyName);
boolean existsByCompanyName(String companyName); boolean existsByCompanyName(String companyName);
List<Company> findByCompanyNameContainingIgnoreCase(String name); List<Company> findByCompanyNameContainingIgnoreCase(String name);
@@ -17,7 +17,6 @@ import ru.soune.nocopy.entity.tarif.TariffType;
import ru.soune.nocopy.entity.user.AuthToken; import ru.soune.nocopy.entity.user.AuthToken;
import ru.soune.nocopy.entity.user.Permission; import ru.soune.nocopy.entity.user.Permission;
import ru.soune.nocopy.entity.user.User; import ru.soune.nocopy.entity.user.User;
import ru.soune.nocopy.exception.MaxUserCountIsOver;
import ru.soune.nocopy.exception.NotFoundAuthToken; import ru.soune.nocopy.exception.NotFoundAuthToken;
import ru.soune.nocopy.exception.NotValidFieldException; import ru.soune.nocopy.exception.NotValidFieldException;
import ru.soune.nocopy.repository.AuthTokenRepository; import ru.soune.nocopy.repository.AuthTokenRepository;
@@ -26,7 +25,6 @@ import ru.soune.nocopy.repository.TariffInfoRepository;
import ru.soune.nocopy.repository.UserRepository; import ru.soune.nocopy.repository.UserRepository;
import ru.soune.nocopy.service.file.CheckCounterService; import ru.soune.nocopy.service.file.CheckCounterService;
import ru.soune.nocopy.service.tariff.TariffInfoService; import ru.soune.nocopy.service.tariff.TariffInfoService;
import ru.soune.nocopy.service.tariff.TariffService;
import java.security.SecureRandom; import java.security.SecureRandom;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -153,8 +151,15 @@ public class AuthService {
} }
private void createCompanyAccount(RegRequest request, User user) { private void createCompanyAccount(RegRequest request, User user) {
Optional<Company> byInn = companyRepository.findByInn(request.getInn());
if (byInn.isPresent()) {
throw new IllegalStateException("Company was already created");
}
Company company = new Company(); Company company = new Company();
company.setCompanyName(request.getCompanyName()); company.setCompanyName(request.getCompanyName());
company.setInn(request.getInn());
TariffInfo companyTariff = tariffInfoService.createTariffInfo(TariffType.DEMO); TariffInfo companyTariff = tariffInfoService.createTariffInfo(TariffType.DEMO);
company.setTariffInfo(companyTariff); company.setTariffInfo(companyTariff);