From 12aecff5c941060078ee038de819fdefd77af2d0 Mon Sep 17 00:00:00 2001 From: vladp Date: Fri, 13 Feb 2026 16:25:04 +0700 Subject: [PATCH] dev add inn check for company --- .../java/ru/soune/nocopy/dto/register/RegRequest.java | 2 ++ .../java/ru/soune/nocopy/entity/company/Company.java | 3 +++ .../ru/soune/nocopy/repository/CompanyRepository.java | 2 ++ .../ru/soune/nocopy/service/register/AuthService.java | 9 +++++++-- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/dto/register/RegRequest.java b/src/main/java/ru/soune/nocopy/dto/register/RegRequest.java index 15d1c47..af948fa 100644 --- a/src/main/java/ru/soune/nocopy/dto/register/RegRequest.java +++ b/src/main/java/ru/soune/nocopy/dto/register/RegRequest.java @@ -13,6 +13,8 @@ public class RegRequest { private String companyName; + private String inn; + @NotEmpty(message = "Need account type") private String accountType; diff --git a/src/main/java/ru/soune/nocopy/entity/company/Company.java b/src/main/java/ru/soune/nocopy/entity/company/Company.java index 09faf32..6135ed8 100644 --- a/src/main/java/ru/soune/nocopy/entity/company/Company.java +++ b/src/main/java/ru/soune/nocopy/entity/company/Company.java @@ -32,6 +32,9 @@ public class Company { @Column(name = "phone") private String phone; + @Column(name = "inn", unique = true) + private String inn; + @CreatedDate @Column(name = "register_date", updatable = false, nullable = false) private LocalDateTime registerDate = LocalDateTime.now(); diff --git a/src/main/java/ru/soune/nocopy/repository/CompanyRepository.java b/src/main/java/ru/soune/nocopy/repository/CompanyRepository.java index b075868..258481f 100644 --- a/src/main/java/ru/soune/nocopy/repository/CompanyRepository.java +++ b/src/main/java/ru/soune/nocopy/repository/CompanyRepository.java @@ -13,6 +13,8 @@ import java.util.Optional; public interface CompanyRepository extends JpaRepository { Optional findByCompanyName(String companyName); + Optional findByInn(String companyName); + boolean existsByCompanyName(String companyName); List findByCompanyNameContainingIgnoreCase(String name); diff --git a/src/main/java/ru/soune/nocopy/service/register/AuthService.java b/src/main/java/ru/soune/nocopy/service/register/AuthService.java index f90a75c..29b0be6 100644 --- a/src/main/java/ru/soune/nocopy/service/register/AuthService.java +++ b/src/main/java/ru/soune/nocopy/service/register/AuthService.java @@ -17,7 +17,6 @@ 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.MaxUserCountIsOver; import ru.soune.nocopy.exception.NotFoundAuthToken; import ru.soune.nocopy.exception.NotValidFieldException; 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.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; @@ -153,8 +151,15 @@ public class AuthService { } private void createCompanyAccount(RegRequest request, User user) { + Optional byInn = companyRepository.findByInn(request.getInn()); + + if (byInn.isPresent()) { + throw new IllegalStateException("Company was already created"); + } + Company company = new Company(); company.setCompanyName(request.getCompanyName()); + company.setInn(request.getInn()); TariffInfo companyTariff = tariffInfoService.createTariffInfo(TariffType.DEMO); company.setTariffInfo(companyTariff);