http://jira.mfd.msk:8088/browse/CLS-742 bug fixes
This commit is contained in:
parent
3a43598223
commit
426d608a44
4 changed files with 32 additions and 30 deletions
|
|
@ -4,6 +4,8 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.MapperFeature;
|
import com.fasterxml.jackson.databind.MapperFeature;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
@ -12,12 +14,9 @@ import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.Resource;
|
||||||
import ru.spcex.clearing.backendapi.meta.MetaServer;
|
import ru.spcex.clearing.backendapi.meta.MetaServer;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class MetaConfiguration {
|
public class MetaConfiguration {
|
||||||
@Value("file:${spring.config.location}/meta/meta.json")
|
@Value("file:${spring.config.location}/meta.json")
|
||||||
private Resource meta;
|
private Resource meta;
|
||||||
|
|
||||||
@Bean("metaJson")
|
@Bean("metaJson")
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
package ru.spcex.clearing.service.payment;
|
package ru.spcex.clearing.service.payment;
|
||||||
|
|
||||||
|
import static ru.spcex.clearing.session.stage.impl.GatewayRequester.mapError;
|
||||||
|
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
@ -40,7 +43,6 @@ import ru.spcex.clearing.service.registry.RegistryManager;
|
||||||
import ru.spcex.clearing.service.schedule.TradingTimeService;
|
import ru.spcex.clearing.service.schedule.TradingTimeService;
|
||||||
import ru.spcex.clearing.service.validation.ValidationStored;
|
import ru.spcex.clearing.service.validation.ValidationStored;
|
||||||
import ru.spcex.clearing.session.stage.impl.GatewayRequester;
|
import ru.spcex.clearing.session.stage.impl.GatewayRequester;
|
||||||
import static ru.spcex.clearing.session.stage.impl.GatewayRequester.mapError;
|
|
||||||
import ru.spcex.clearing.util.LocaleUtil;
|
import ru.spcex.clearing.util.LocaleUtil;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.platform.enumeration.CurrencyCode;
|
import ru.spcex.platform.enumeration.CurrencyCode;
|
||||||
|
|
@ -55,7 +57,6 @@ import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumId;
|
import ru.spcex.platform.utils.enumeration.IEnumId;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.localization.SpringPropertiesLocalizer;
|
import ru.spcex.platform.utils.localization.SpringPropertiesLocalizer;
|
||||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
|
||||||
import ru.spcex.platform.utils.text.TextUtil;
|
import ru.spcex.platform.utils.text.TextUtil;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
|
|
@ -188,14 +189,9 @@ public class PaymentInstructionOutboundService {
|
||||||
sDf54.setId(idGenerator.nextId());
|
sDf54.setId(idGenerator.nextId());
|
||||||
sDf54.setGenerationId(pmt.getId());
|
sDf54.setGenerationId(pmt.getId());
|
||||||
if (time.isTradingTime()) {
|
if (time.isTradingTime()) {
|
||||||
Supplier<AssetOperationRequest> builder = () -> {
|
Supplier<AssetOperationRequest> builder = () -> GatewayRequestCreator.from(pmt,
|
||||||
if (tcr != null) {
|
|
||||||
return GatewayRequestCreator.from(pmt,
|
|
||||||
assets.get().a__b().getTradingCode(),
|
assets.get().a__b().getTradingCode(),
|
||||||
tcr.getCode());
|
tcr == null ? null : tcr.getCode());
|
||||||
}
|
|
||||||
return null;
|
|
||||||
};
|
|
||||||
Optional<Boolean> gatewayOk = gateway.gatewayRequestAndWait(builder);
|
Optional<Boolean> gatewayOk = gateway.gatewayRequestAndWait(builder);
|
||||||
if (gatewayOk.isEmpty() || gatewayOk.get().equals(Boolean.FALSE)) {
|
if (gatewayOk.isEmpty() || gatewayOk.get().equals(Boolean.FALSE)) {
|
||||||
String gtwErrMsg = msgs.resolve(mapError(gatewayOk));
|
String gtwErrMsg = msgs.resolve(mapError(gatewayOk));
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,17 @@ package ru.spcex.clearing.platform.messaging.service;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JavaType;
|
import com.fasterxml.jackson.databind.JavaType;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.Future;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
import java.util.function.Function;
|
||||||
import org.apache.kafka.clients.consumer.Consumer;
|
import org.apache.kafka.clients.consumer.Consumer;
|
||||||
import org.apache.kafka.clients.consumer.ConsumerRecord;
|
import org.apache.kafka.clients.consumer.ConsumerRecord;
|
||||||
import org.apache.kafka.clients.consumer.ConsumerRecords;
|
import org.apache.kafka.clients.consumer.ConsumerRecords;
|
||||||
|
|
@ -25,17 +35,6 @@ import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
import java.time.Duration;
|
|
||||||
import java.time.temporal.ChronoUnit;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.Future;
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* утилитный класс для обработки сообщений из очереди
|
* утилитный класс для обработки сообщений из очереди
|
||||||
*/
|
*/
|
||||||
|
|
@ -130,6 +129,7 @@ public class QueueConsumer implements AutoCloseable {
|
||||||
try {
|
try {
|
||||||
Thread.sleep(1000L);
|
Thread.sleep(1000L);
|
||||||
} catch (InterruptedException ie) {
|
} catch (InterruptedException ie) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
log.info("Thread interrupted. {}", ExceptionUtils.getStackTrace(ie));
|
log.info("Thread interrupted. {}", ExceptionUtils.getStackTrace(ie));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -197,7 +197,10 @@ public class QueueConsumer implements AutoCloseable {
|
||||||
}
|
}
|
||||||
send = producer.send(respRec);
|
send = producer.send(respRec);
|
||||||
send.get();
|
send.get();
|
||||||
} catch (InterruptedException | ExecutionException e) {
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
log.error(ExceptionUtils.getStackTrace(e));
|
||||||
|
} catch (ExecutionException e) {
|
||||||
log.error(ExceptionUtils.getStackTrace(e));
|
log.error(ExceptionUtils.getStackTrace(e));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package ru.spcex.clearing.platform.messaging.service;
|
package ru.spcex.clearing.platform.messaging.service;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.JavaType;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -13,8 +15,6 @@ import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import com.fasterxml.jackson.databind.JavaType;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import org.apache.kafka.clients.consumer.Consumer;
|
import org.apache.kafka.clients.consumer.Consumer;
|
||||||
import org.apache.kafka.clients.consumer.ConsumerRecord;
|
import org.apache.kafka.clients.consumer.ConsumerRecord;
|
||||||
import org.apache.kafka.clients.consumer.ConsumerRecords;
|
import org.apache.kafka.clients.consumer.ConsumerRecords;
|
||||||
|
|
@ -104,7 +104,8 @@ public class QueueConsumerV2 implements AutoCloseable {
|
||||||
log.warn("Too many error at row, {}. Sleep.", lastErrors);
|
log.warn("Too many error at row, {}. Sleep.", lastErrors);
|
||||||
try {
|
try {
|
||||||
Thread.sleep(1000L);
|
Thread.sleep(1000L);
|
||||||
} catch (InterruptedException e){
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
log.info("Thread interrupted. {}", ExceptionUtils.getStackTrace(e));
|
log.info("Thread interrupted. {}", ExceptionUtils.getStackTrace(e));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -216,7 +217,10 @@ public class QueueConsumerV2 implements AutoCloseable {
|
||||||
}
|
}
|
||||||
send = producer.send(respRec);
|
send = producer.send(respRec);
|
||||||
send.get();
|
send.get();
|
||||||
} catch (InterruptedException | ExecutionException e) {
|
} catch (InterruptedException e) {
|
||||||
|
Thread.currentThread().interrupt();
|
||||||
|
log.error(ExceptionUtils.getStackTrace(e));
|
||||||
|
} catch (ExecutionException e) {
|
||||||
log.error(ExceptionUtils.getStackTrace(e));
|
log.error(ExceptionUtils.getStackTrace(e));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue