send error msg to gateway [4]

This commit is contained in:
etreschenkov 2024-07-02 11:23:31 +03:00
parent 9147c6cf87
commit 49f54f4b39

View file

@ -27,6 +27,7 @@ import ru.clearing.classes.statics.data.company.relation.Relation;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistryList; import ru.clearing.classes.statics.data.registry.TradingClearingRegistryList;
import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.account.errors.AccountError;
import ru.spcex.clearing.account.service.v2.GatewayRequestCreator;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.Consts;
@ -91,6 +92,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
private final IMessageResolver messageResolver; private final IMessageResolver messageResolver;
private final Producer<String, Object> kafkaProducer; private final Producer<String, Object> kafkaProducer;
private final KafkaSender kafkaSender; private final KafkaSender kafkaSender;
private final GatewayRequestCreator gatewayRequestCreator;
public TradingClearingRegistryService(Consumer<String, Object> kafkaQueue, public TradingClearingRegistryService(Consumer<String, Object> kafkaQueue,
Producer<String, Object> kafkaProducer, Producer<String, Object> kafkaProducer,
@ -105,7 +107,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
@Qualifier("tradingClearingRegistryUpdateRequest") @Qualifier("tradingClearingRegistryUpdateRequest")
Function<TradingClearingRegistryUpdateRequest, IValidator> tradingClearingRegistryUpdateRequestValidator, Function<TradingClearingRegistryUpdateRequest, IValidator> tradingClearingRegistryUpdateRequestValidator,
@Qualifier("tradingClearingRegistryBlockRequest") @Qualifier("tradingClearingRegistryBlockRequest")
Function<CommonIdRequest, IValidator> tradingClearingRegistryBlockRequestValidator) { Function<CommonIdRequest, IValidator> tradingClearingRegistryBlockRequestValidator, GatewayRequestCreator gatewayRequestCreator) {
super(kafkaQueue, kafkaProducer); super(kafkaQueue, kafkaProducer);
this.kafkaProducer = kafkaProducer; this.kafkaProducer = kafkaProducer;
this.kafkaSender = kafkaSender; this.kafkaSender = kafkaSender;
@ -128,6 +130,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator;
this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator; this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator;
this.messageResolver = messageResolver; this.messageResolver = messageResolver;
this.gatewayRequestCreator = gatewayRequestCreator;
} }
@Override @Override
@ -519,12 +522,18 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
Map.of("code", accountForCheck.getTkrCode()) Map.of("code", accountForCheck.getTkrCode())
); );
Optional<Tkr> tkr = createRequestToGateway(tradingClearingRegistry); Optional<Tkr> tkr = createRequestToGateway(tradingClearingRegistry);
SendTkrRequest sendTkrRequest = new SendTkrRequest();
if (tkr.isPresent()) { if (tkr.isPresent()) {
SendTkrRequest sendTkrRequest = new SendTkrRequest();
sendTkrRequest.getTkrs().add(tkr.get()); sendTkrRequest.getTkrs().add(tkr.get());
sendTkrRequest.setRequestId(req.getRequestId()); sendTkrRequest.setRequestId(req.getRequestId());
kafkaSender.sendRequestToQueue(Consts.ACCOUNTS_TO_GATEWAY, sendTkrRequest); } else {
Optional<String> errorMsg = Optional.of(
messageResolver.resolve(AccountError.TradingClearingRegistryNotFound, accountForCheck.getTkrCode()));
Tkr errorTkr = gatewayRequestCreator.crateErrorTkrToGateway(accountForCheck, errorMsg);
sendTkrRequest.getTkrs().add(errorTkr);
sendTkrRequest.setRequestId(req.getRequestId());
} }
kafkaSender.sendRequestToQueue(Consts.ACCOUNTS_TO_GATEWAY, sendTkrRequest);
} }
return null; return null;
} }