company-service http://jira.mfd.msk:8088/browse/CLS-538 CompanyRoleSet
This commit is contained in:
parent
e19cb6876e
commit
a16fe442fa
3 changed files with 125 additions and 12 deletions
|
|
@ -0,0 +1,98 @@
|
||||||
|
package ru.spcex.clearing.company.config.validation;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
|
import ru.clearing.classes.statics.data.company.CompanyRoleSet;
|
||||||
|
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||||
|
import ru.clearing.platform.dictionary.CompanyRoleDictionary;
|
||||||
|
import ru.clearing.platform.dictionary.CompanySymbolDictionary;
|
||||||
|
import ru.clearing.platform.dictionary.WorkflowStatusDictionary;
|
||||||
|
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||||
|
import ru.spcex.clearing.company.validation.CompanySymbolOfSymbolNewRequestNotExistRule;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||||
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyRoleSetNewRequest;
|
||||||
|
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
||||||
|
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
||||||
|
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||||
|
import ru.spcex.clearing.validation.common.rules.specific.IdPresentSpecificRule;
|
||||||
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class CompanyRoleSetValidationConfig {
|
||||||
|
|
||||||
|
@Bean("CompanyRoleSetNewRequestValidator")
|
||||||
|
public Function<CompanyRoleSetNewRequest, IValidator> companyRoleSetNewRequestValidator(Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation) {
|
||||||
|
return companyRoleSetNewRequest -> {
|
||||||
|
ImdgValidationContext<CompanyRoleSetNewRequest> context = new ImdgValidationContext<>();
|
||||||
|
context.setValidatedObject(companyRoleSetNewRequest);
|
||||||
|
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||||
|
// addImdg.accept(IMDGDistributedNames.Map_CompanyRoleSet);
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_CompanyRoleDictionary);
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary);
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_Company);
|
||||||
|
return new ValidatorImpl<>(context,
|
||||||
|
// FieldRequiredRule.instance("companyId", CompanyRoleSetNewRequest::getCompanyId, CompanyErrors.RequiredFieldEmpty),
|
||||||
|
IdPresentRule.instance("companyId",
|
||||||
|
CompanyRoleSetNewRequest::getCompanyId,
|
||||||
|
IMDGDistributedNames.Map_Company,
|
||||||
|
Company.class,
|
||||||
|
CompanyErrors.RequiredFieldEmpty,
|
||||||
|
CompanyErrors.CompanyNotFound,
|
||||||
|
false),
|
||||||
|
DictionaryPresentRule.instance("companyRole",
|
||||||
|
CompanyRoleSetNewRequest::getCompanyRole,
|
||||||
|
IMDGDistributedNames.Map_CompanyRoleDictionary,
|
||||||
|
CompanyRoleDictionary.class,
|
||||||
|
CompanyErrors.RequiredFieldEmpty,
|
||||||
|
CompanyErrors.WrongFieldValue,
|
||||||
|
false),
|
||||||
|
DictionaryPresentRule.instance("workflowStatus",
|
||||||
|
CompanyRoleSetNewRequest::getWorkflowStatus,
|
||||||
|
IMDGDistributedNames.Map_WorkflowStatusDictionary,
|
||||||
|
WorkflowStatusDictionary.class,
|
||||||
|
CompanyErrors.RequiredFieldEmpty,
|
||||||
|
CompanyErrors.WrongFieldValue,
|
||||||
|
false)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Bean("CompanyRoleSetDeleteRequestValidator")
|
||||||
|
public Function<CommonDeleteRequest, IValidator> companyRoleSetDeleteRequestValidator(Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation) {
|
||||||
|
return deleteRequest -> {
|
||||||
|
ImdgValidationContext<CommonDeleteRequest> context = new ImdgValidationContext<>();
|
||||||
|
context.setValidatedObject(deleteRequest);
|
||||||
|
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_CompanyRoleSet);
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_Company);
|
||||||
|
return new ValidatorImpl<>(context,
|
||||||
|
IdPresentSpecificRule.instance("id",
|
||||||
|
CommonDeleteRequest::getId,
|
||||||
|
IMDGDistributedNames.Map_CompanyRoleSet,
|
||||||
|
CompanyRoleSet.class,
|
||||||
|
CompanyErrors.RequiredFieldEmpty,
|
||||||
|
CompanyErrors.CompanyNotFound,
|
||||||
|
true, crs -> {
|
||||||
|
if (crs.getCompanyId() != null) {
|
||||||
|
Company existCompany = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class).getSingleObjectByID(crs.getCompanyId());
|
||||||
|
if (existCompany == null)
|
||||||
|
return new EnumMessage(CompanyErrors.CompanyNotFound, crs.getCompanyId());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5,6 +5,7 @@ import org.springframework.context.annotation.Configuration;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
import ru.clearing.classes.statics.data.account.ClientCode;
|
import ru.clearing.classes.statics.data.account.ClientCode;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
|
import ru.clearing.classes.statics.data.company.CompanyRoleSet;
|
||||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||||
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
||||||
import ru.clearing.classes.statics.data.company.relation.Relation;
|
import ru.clearing.classes.statics.data.company.relation.Relation;
|
||||||
|
|
@ -40,6 +41,9 @@ public class ValidationConfig {
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Contact, Contact.class);
|
addImdg.accept(IMDGDistributedNames.Map_Contact, Contact.class);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_Relation, Relation.class);
|
addImdg.accept(IMDGDistributedNames.Map_Relation, Relation.class);
|
||||||
|
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class);
|
||||||
|
addImdg.accept(IMDGDistributedNames.Map_CompanyRoleDictionary, CompanyRoleDictionary.class);
|
||||||
|
|
||||||
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class);
|
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class);
|
addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class);
|
||||||
addImdg.accept(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
addImdg.accept(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,9 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
import ru.clearing.classes.statics.data.company.CompanyRoleSet;
|
import ru.clearing.classes.statics.data.company.CompanyRoleSet;
|
||||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
|
@ -24,8 +26,10 @@ import ru.spcex.platform.imdg.api.ImdgId;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.error.ValidationException;
|
import ru.spcex.platform.utils.error.ValidationException;
|
||||||
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class CompanyRoleSetService extends QueueConsumer implements InitializingBean {
|
public class CompanyRoleSetService extends QueueConsumer implements InitializingBean {
|
||||||
|
|
@ -40,7 +44,8 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
protected IMessageResolver messageResolver;
|
protected IMessageResolver messageResolver;
|
||||||
|
|
||||||
private ValidationHelper validationHelper;
|
private ValidationHelper validationHelper;
|
||||||
// private Function<CompanyRoleSetNewRequest, IValidator> companyNewRequestValidator;
|
private Function<CompanyRoleSetNewRequest, IValidator> companyRoleSetNewRequestValidator;
|
||||||
|
private Function<CommonDeleteRequest, IValidator> companyRoleSetDeleteRequestValidator;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -48,17 +53,21 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
RequestHelper requestHelper,
|
RequestHelper requestHelper,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
UserRoleVerification userRoleVerification
|
UserRoleVerification userRoleVerification,
|
||||||
// @Qualifier("CompanyRoleSetRequestValidator")
|
@Qualifier("CompanyRoleSetNewRequestValidator")
|
||||||
// Function<CompanyRoleSetNewRequest, IValidator> companyNewRequestValidator,
|
Function<CompanyRoleSetNewRequest, IValidator> companyRoleSetNewRequestValidator,
|
||||||
|
@Qualifier("CompanyRoleSetDeleteRequestValidator")
|
||||||
|
Function<CommonDeleteRequest, IValidator> companyRoleSetDeleteRequestValidator
|
||||||
) {
|
) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.companyRoleSetMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class);
|
this.companyRoleSetMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class);
|
||||||
|
// this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||||
this.userRoleVerification = userRoleVerification;
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
// this.companyDeleteRequestValidator = companyDeleteRequestValidator;
|
this.companyRoleSetNewRequestValidator = companyRoleSetNewRequestValidator;
|
||||||
|
this.companyRoleSetDeleteRequestValidator = companyRoleSetDeleteRequestValidator;
|
||||||
this.requestHelper = requestHelper.setLogger(log);
|
this.requestHelper = requestHelper.setLogger(log);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -83,10 +92,9 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
{ // Валидация, ValidationException
|
{ // Валидация, ValidationException
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleNewRequestBaseRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleNewRequestBaseRequest);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
// RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyRoleNewRequestBaseRequest, companyNewRequestValidator);
|
requestInfoUpdate = validationHelper.validateTillFirstError(companyRoleNewRequestBaseRequest, companyRoleSetNewRequestValidator);
|
||||||
// if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
}
|
}
|
||||||
//todo какие проверки нужны? 1. есть компания, 2. есть справочники
|
|
||||||
CompanyRoleSet newRole = companyRoleSetMap.getFirstObjectByFieldValues(Map.of(
|
CompanyRoleSet newRole = companyRoleSetMap.getFirstObjectByFieldValues(Map.of(
|
||||||
"companyId", req.getCompanyId(),
|
"companyId", req.getCompanyId(),
|
||||||
"companyRole", req.getCompanyRole()
|
"companyRole", req.getCompanyRole()
|
||||||
|
|
@ -102,7 +110,11 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
} else {
|
} else {
|
||||||
isNew = false;
|
isNew = false;
|
||||||
log.trace("Update exist CompanyRoleSet[{}] for company {}", newRole.getId(), req.getCompanyId());
|
log.trace("Update exist CompanyRoleSet[{}] for company {}", newRole.getId(), req.getCompanyId());
|
||||||
// return requestHelper.makeErrorResponse(companyRoleNewRequestBaseRequest, CompanyErrors.RecordAlreadyExist, newRole.getId());
|
return requestHelper.makeErrorResponse(companyRoleNewRequestBaseRequest, CompanyErrors.RecordAlreadyExist, newRole.getId());
|
||||||
|
// if (newRole.getCompanyId() != null && req.getCompanyId() != null && !newRole.getCompanyId().equals(req.getCompanyId())) {
|
||||||
|
//// нельзя сменить компанию
|
||||||
|
// return requestHelper.makeErrorResponse(companyRoleNewRequestBaseRequest, CompanyErrors.WrongFieldValue, "companyId");
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
newRole.setCompanyRole(req.getCompanyRole());
|
newRole.setCompanyRole(req.getCompanyRole());
|
||||||
newRole.setWorkflowStatus(req.getWorkflowStatus());
|
newRole.setWorkflowStatus(req.getWorkflowStatus());
|
||||||
|
|
@ -120,9 +132,8 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
{ // Валидация, ValidationException
|
{ // Валидация, ValidationException
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleSetDeleteRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleSetDeleteRequest);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
if (request.getId() == null) {
|
requestInfoUpdate = validationHelper.validateTillFirstError(companyRoleSetDeleteRequest, companyRoleSetDeleteRequestValidator);
|
||||||
return requestHelper.makeErrorResponse(companyRoleSetDeleteRequest, CompanyErrors.RequiredFieldEmpty, "id");
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
CompanyRoleSet role = companyRoleSetMap.getSingleObjectByID(request.getId());
|
CompanyRoleSet role = companyRoleSetMap.getSingleObjectByID(request.getId());
|
||||||
if (role == null) {
|
if (role == null) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue