ialbert 2022-08-15 14:58:11 +03:00
parent 38a50d1775
commit c49fc00d0e
4 changed files with 19 additions and 11 deletions

View file

@ -4,12 +4,12 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import ru.spcex.clearing.backendapi.domain.actions.IAction; import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketCreateRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest;
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDeserializer; import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDeserializer;
import java.time.Instant; import java.time.Instant;
public class MoneyMarketCreateAction implements IAction<MoneyMarketCreateRequest> { public class MoneyMarketSecurityNewAction implements IAction<MoneyMarketSecurityNewRequest> {
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow")
@JsonDeserialize(using = InstantDeserializer.class) @JsonDeserialize(using = InstantDeserializer.class)
@JsonProperty @JsonProperty
@ -32,8 +32,8 @@ public class MoneyMarketCreateAction implements IAction<MoneyMarketCreateRequest
public Double lotSize; public Double lotSize;
@Override @Override
public MoneyMarketCreateRequest toRequest() { public MoneyMarketSecurityNewRequest toRequest() {
var req = new MoneyMarketCreateRequest(); var req = new MoneyMarketSecurityNewRequest();
req.setStartDate(this.getStartDate()); req.setStartDate(this.getStartDate());
req.setEndDate(this.getEndDate()); req.setEndDate(this.getEndDate());
req.setNominalValue(this.getNominalValue()); req.setNominalValue(this.getNominalValue());

View file

@ -1,7 +1,7 @@
package ru.spcex.clearing.backendapi.meta; package ru.spcex.clearing.backendapi.meta;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.spcex.clearing.backendapi.controller.request.cud.MoneyMarketCreateAction; import ru.spcex.clearing.backendapi.controller.request.cud.MoneyMarketSecurityNewAction;
import ru.spcex.clearing.backendapi.domain.actions.IAction; import ru.spcex.clearing.backendapi.domain.actions.IAction;
import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.Consts;
@ -14,7 +14,7 @@ public class CudMetaService {
public CudMetaService() { public CudMetaService() {
this.mapping = new HashMap<>(); this.mapping = new HashMap<>();
this.mapping.put(Consts.DESTINATION_MONEY_MARKET_SECURITY_NEW, MoneyMarketCreateAction.class); this.mapping.put(Consts.DESTINATION_MONEY_MARKET_SECURITY_NEW, MoneyMarketSecurityNewAction.class);
} }
public <T extends IAction<?>> Class<T> byDestination(String destination) { public <T extends IAction<?>> Class<T> byDestination(String destination) {

View file

@ -1,13 +1,15 @@
package ru.spcex.clearing.securities.service.cud; package ru.spcex.clearing.securities.service.cud;
import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.consumer.Consumer;
import org.slf4j.Logger;
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.stereotype.Service; import org.springframework.stereotype.Service;
import ru.clearing.classes.StaticData.Misc.MoneyMarketSecurity; import ru.clearing.classes.StaticData.Misc.MoneyMarketSecurity;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketCreateRequest; import ru.spcex.clearing.platform.messaging.domain.cud.securitites.MoneyMarketSecurityNewRequest;
import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgProvider;
@ -16,6 +18,7 @@ import java.math.BigDecimal;
@Service @Service
public class MoneyMarketSecurityService extends QueueConsumer implements InitializingBean { public class MoneyMarketSecurityService extends QueueConsumer implements InitializingBean {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<MoneyMarketSecurity> moneyMarketSecurityMap; private final Imdg<MoneyMarketSecurity> moneyMarketSecurityMap;
@Autowired @Autowired
public MoneyMarketSecurityService(Consumer<String, Object> kafkaQueue, ImdgProvider imdgProvider) { public MoneyMarketSecurityService(Consumer<String, Object> kafkaQueue, ImdgProvider imdgProvider) {
@ -25,14 +28,15 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
@Override @Override
public void afterPropertiesSet() { public void afterPropertiesSet() {
callback(MoneyMarketCreateRequest.class) callback(MoneyMarketSecurityNewRequest.class)
.setConsumer(this::newMoneyMarket) .setConsumer(this::newMoneyMarket)
.setDestination(Consts.DESTINATION_MONEY_MARKET_SECURITY_NEW, callbacks::put) .setDestination(Consts.DESTINATION_MONEY_MARKET_SECURITY_NEW, callbacks::put)
.build(); .build();
init(); init();
} }
private void newMoneyMarket(MoneyMarketCreateRequest req) { private void newMoneyMarket(MoneyMarketSecurityNewRequest req) {
log.debug("MoneyMarketSecurityNewRequest received");
MoneyMarketSecurity mms = new MoneyMarketSecurity(); MoneyMarketSecurity mms = new MoneyMarketSecurity();
mms.setStartDate(req.getStartDate()); mms.setStartDate(req.getStartDate());
mms.setEndDate(req.getEndDate()); mms.setEndDate(req.getEndDate());
@ -42,6 +46,6 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
mms.setFullName(req.getFullName()); mms.setFullName(req.getFullName());
mms.setSecuritySymbol(req.getSecuritySymbol()); mms.setSecuritySymbol(req.getSecuritySymbol());
moneyMarketSecurityMap.insert(mms); moneyMarketSecurityMap.insert(mms);
// (req.getLotSize()); log.debug("successfully processed, new id {}", mms.getId());
} }
} }

View file

@ -1,17 +1,21 @@
package ru.spcex.clearing.platform.messaging.domain.cud.securitites; package ru.spcex.clearing.platform.messaging.domain.cud.securitites;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDeserializer;
import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer; import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantSerializer;
import java.time.Instant; import java.time.Instant;
public class MoneyMarketCreateRequest { public class MoneyMarketSecurityNewRequest {
@JsonProperty @JsonProperty
@JsonSerialize(using = InstantSerializer.class) @JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantDeserializer.class)
public Instant startDate; public Instant startDate;
@JsonProperty @JsonProperty
@JsonSerialize(using = InstantSerializer.class) @JsonSerialize(using = InstantSerializer.class)
@JsonDeserialize(using = InstantDeserializer.class)
public Instant endDate; public Instant endDate;
@JsonProperty @JsonProperty
public Double nominalValue; public Double nominalValue;