This commit is contained in:
etreshenkov 2023-06-13 18:38:18 +03:00
parent 75bf1db1ab
commit b1af5cc68f
5 changed files with 40 additions and 23 deletions

View file

@ -0,0 +1,21 @@
package ru.spcex.clearing.gatewayapi.config.serializers;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import ru.spcex.platform.utils.time.TimeUtil;
import java.io.IOException;
import java.time.Instant;
import java.time.format.DateTimeFormatter;
public class InstantWithMillisSerializer extends JsonSerializer<Instant> {
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss:SSS");
@Override
public void serialize(Instant value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if (value == null) return;
gen.writeString(TimeUtil.formatInstant(value, formatter));
}
}

View file

@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.config.deserializers.InstantDeserializer;
import ru.spcex.clearing.gatewayapi.config.serializers.InstantSerializer;
import ru.spcex.clearing.gatewayapi.config.serializers.InstantWithMillisSerializer;
import java.time.Instant;
import java.util.Map;
@ -35,7 +35,7 @@ public class InboundRequest {
@JsonProperty("datetime")
@JsonDeserialize(using = InstantDeserializer.class)
@JsonSerialize(using = InstantSerializer.class)
@JsonSerialize(using = InstantWithMillisSerializer.class)
@ApiModelProperty(
value = "Передавать дату и время формирования JSON объекта в формате «ДД.ММ.ГГГГ ЧЧ:ММ:СС:ссс».",
example = "01.01.2023 12:34:56:789"

View file

@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import ru.spcex.clearing.gatewayapi.config.serializers.InstantSerializer;
import ru.spcex.clearing.gatewayapi.config.serializers.InstantWithMillisSerializer;
import java.time.Instant;
import java.util.UUID;
@ -26,7 +26,7 @@ public class CommonResponse {
private String type;
@JsonProperty("datetime")
@JsonSerialize(using = InstantSerializer.class)
@JsonSerialize(using = InstantWithMillisSerializer.class)
@ApiModelProperty(
value = "Значение соответствует полученному из запроса",
example = "01.01.2023 12:34:56:789"

View file

@ -5,9 +5,7 @@ import org.apache.kafka.clients.producer.Producer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import ru.spcex.clearing.gatewayapi.config.GatewayApiSettings;
@ -80,9 +78,9 @@ public class GatewayService extends QueueConsumer implements InitializingBean {
inboundRequest.setDatetime(Instant.now());
HttpEntity<InboundRequest> request = new HttpEntity<>(inboundRequest, httpHeaders);
String response = restTemplate.postForObject(url, request, String.class);
log.debug("LOCM task complete, response: {}", response);
ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
Map bodyResponse = response.getBody();
log.debug("LOCM task complete, response: {}", bodyResponse);
}
public void requestOnLimit(BaseRequest<LimExportedRequest> userRequest) {
@ -102,9 +100,9 @@ public class GatewayService extends QueueConsumer implements InitializingBean {
inboundRequest.setContent(content);
HttpEntity<InboundRequest> request = new HttpEntity<>(inboundRequest, httpHeaders);
String response = restTemplate.postForObject(url, request, String.class);
log.debug("Limit request complete, response: {}", response);
ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
Map bodyResponse = response.getBody();
log.debug("Limit request complete, response: {}", bodyResponse);
}
public void requestOnDemandSecurity(BaseRequest<GatewayTaskRequest> userRequest) {
@ -126,14 +124,15 @@ public class GatewayService extends QueueConsumer implements InitializingBean {
inboundRequest.setDatetime(Instant.now());
HttpEntity<InboundRequest> request = new HttpEntity<>(inboundRequest, httpHeaders);
String response = restTemplate.postForObject(url, request, String.class);
log.debug("LOSC task 1/2 complete (FOND section), response: {}", response);
ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
Map bodyResponse = response.getBody();
log.debug("LOSC task 1/2 complete (FOND section), response: {}", bodyResponse);
inboundRequest.setSection(Section.MKR.getKey());
request = new HttpEntity<>(inboundRequest, httpHeaders);
response = restTemplate.postForObject(url, request, String.class);
log.debug("LOSC task 2/2 complete (MKR section), response: {}", response);
response = restTemplate.exchange(url, HttpMethod.POST, request, Map.class);
bodyResponse = response.getBody();
log.debug("LOSC task 2/2 complete (MKR section), response: {}", bodyResponse);
}
private String formingInboundUrl(String path) {

View file

@ -13,10 +13,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@ -63,7 +60,7 @@ public class MoneyExporterService extends AbstractExporterService {
for (Map.Entry<String, List<Registry>> entryA : byTcrA.entrySet()) {
List<Registry> registriesListA = entryA.getValue();
List<Registry> registriesListB = byTcrD.get(entryA.getKey());
List<Registry> registriesListB = byTcrD.getOrDefault(entryA.getKey(), Collections.emptyList());
for (Registry registryA : registriesListA) {
if (checkNotBlocked(registryA)) {
Registry registryD = findRegistryBySecurityId(registryA.getSecurityId(), registriesListB);