gateway-api securities-service http://jira.mfd.msk:8088/browse/CLS-663 CURR(currency-pair) Listing
This commit is contained in:
parent
bbef81e867
commit
f4425bd987
6 changed files with 87 additions and 9 deletions
|
|
@ -22,9 +22,11 @@ public class CurrencyPairSecurityRequestAdapter {
|
|||
securityNewRequest.setClearingOrganization(currencyInstrument.getClearingOrganization());
|
||||
securityNewRequest.setWorkflowStatus(currencyInstrument.getWorkflowStatus());
|
||||
|
||||
// Для listing
|
||||
securityNewRequest.setMinStep(currencyInstrument.getMinStep());
|
||||
securityNewRequest.setPrecision(currencyInstrument.getPrecision());
|
||||
securityNewRequest.setLotSize(currencyInstrument.getLotSize());
|
||||
req.setTradeMode(currencyInstrument.getTradingMode());
|
||||
|
||||
// для currencyPairId
|
||||
req.setLotCurrencyLetterCode(currencyInstrument.getLotCurrencyLetterCode());
|
||||
|
|
|
|||
|
|
@ -36,10 +36,7 @@ import ru.spcex.clearing.securities.validation.ValidationProvider;
|
|||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||
import ru.spcex.clearing.util.services.RequestHelper;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||
import ru.spcex.platform.enumeration.InstrumentType;
|
||||
import ru.spcex.platform.enumeration.UserRole;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.enumeration.*;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -195,6 +192,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
|||
CurrencyPairSecurityNewGatewayRequest req = (CurrencyPairSecurityNewGatewayRequest) baseRequest.getRequestPayload();
|
||||
|
||||
Security security = null;
|
||||
Long securityId = null;
|
||||
|
||||
try {
|
||||
CurrencyPairSecurityNewRequest currencyPairRequest = req.getCurrencySecurityNewRequest();
|
||||
|
|
@ -231,6 +229,31 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
|||
CurrencyPairSecurityUpdateRequest updateRequest = toUpdateRequest(security, currencyPairRequest);
|
||||
security = currencyPairSecurityService.updateCurrencyPairSecurity0(updateRequest);
|
||||
}
|
||||
securityId = security.getId();
|
||||
|
||||
|
||||
{
|
||||
ListingNewRequest listingReq = new ListingNewRequest();
|
||||
listingReq.setSecurityId(securityId);
|
||||
listingReq.setMarket(req.getTradeMode());
|
||||
listingReq.setLotSize(currencyPairRequest.getLotSize());
|
||||
listingReq.setSymbolCode(currencyPairRequest.getSecuritySymbol());
|
||||
listingReq.setMinStep(currencyPairRequest.getMinStep());
|
||||
listingReq.setPrecision(currencyPairRequest.getPrecision());
|
||||
listingReq.setSymbolName(security.getFullName());
|
||||
listingReq.setTradingCurrency(CurrencyCode.RUB.getKey());
|
||||
Listing existListing = findListing(listingReq);
|
||||
if (existListing == null) {
|
||||
log.trace("For currency pair security[{}] do new Listing", securityId);
|
||||
Listing listing = listingService.newListing0(listingReq);
|
||||
log.debug("New listing.id={}", listing.getId());
|
||||
} else {
|
||||
log.trace("For currency pair security[{}] do update Listing[{}]", securityId, existListing.getId());
|
||||
ListingUpdateRequest partUpdateRequest = toUpdateRequest(existListing, listingReq);
|
||||
Listing listing = listingService.updateListing0(partUpdateRequest);
|
||||
log.debug("Has updated listing.id={}", listing.getId());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.warn("currencyPairSecurityGatewayRequest is null");
|
||||
}
|
||||
|
|
@ -244,17 +267,14 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
|||
}
|
||||
}
|
||||
|
||||
Long securityId;
|
||||
if (security == null) {
|
||||
log.error("No new or update security.");
|
||||
securityId = null;
|
||||
} else {
|
||||
securityId = security.getId();
|
||||
log.debug("Use security {}.id={} ({} {})", security.getClass().getSimpleName(), securityId, security.getInstrumentType(), security.getShortName());
|
||||
}
|
||||
|
||||
log.debug("successfully processed, request id {}, currencyPairId={}",
|
||||
baseRequest.getId(), securityId);
|
||||
log.debug("successfully processed, request id {}",
|
||||
baseRequest.getId());
|
||||
return null; // default success
|
||||
}
|
||||
|
||||
|
|
@ -516,6 +536,8 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
|||
updateRequest.setWorkflowStatus(newRequest.getWorkflowStatus());
|
||||
updateRequest.setSymbolCode(newRequest.getSymbolCode());
|
||||
updateRequest.setSymbolName(newRequest.getSymbolName());
|
||||
updateRequest.setMinStep(newRequest.getMinStep());
|
||||
updateRequest.setPrecision(newRequest.getPrecision());
|
||||
return updateRequest;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -125,6 +125,8 @@ public class ListingService extends QueueConsumer implements InitializingBean {
|
|||
} else {
|
||||
listing.setWorkflowStatus(req.getWorkflowStatus());
|
||||
}
|
||||
listing.setMinStep(req.getMinStep());
|
||||
listing.setPrecision(req.getPrecision());
|
||||
|
||||
listingImdg.insert(listing);
|
||||
return listing;
|
||||
|
|
@ -163,6 +165,8 @@ public class ListingService extends QueueConsumer implements InitializingBean {
|
|||
if (StringUtils.isNotEmpty(req.getWorkflowStatus())) {
|
||||
listing.setWorkflowStatus(req.getWorkflowStatus());
|
||||
}
|
||||
if (req.getMinStep() != null) listing.setMinStep(req.getMinStep());
|
||||
if (req.getPrecision() != null) listing.setPrecision(req.getPrecision());
|
||||
|
||||
listingImdg.update(listing);
|
||||
return listing;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,10 @@ public class ListingNewRequest {
|
|||
private String symbolCode;
|
||||
@JsonProperty
|
||||
private String symbolName;
|
||||
@JsonProperty
|
||||
private BigDecimal minStep;
|
||||
@JsonProperty
|
||||
private BigDecimal precision;
|
||||
|
||||
public Long getSecurityId() {
|
||||
return securityId;
|
||||
|
|
@ -75,4 +79,20 @@ public class ListingNewRequest {
|
|||
public void setSymbolName(String symbolName) {
|
||||
this.symbolName = symbolName;
|
||||
}
|
||||
|
||||
public BigDecimal getMinStep() {
|
||||
return minStep;
|
||||
}
|
||||
|
||||
public void setMinStep(BigDecimal minStep) {
|
||||
this.minStep = minStep;
|
||||
}
|
||||
|
||||
public BigDecimal getPrecision() {
|
||||
return precision;
|
||||
}
|
||||
|
||||
public void setPrecision(BigDecimal precision) {
|
||||
this.precision = precision;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,10 @@ public class ListingUpdateRequest implements WithId {
|
|||
private String symbolCode;
|
||||
@JsonProperty
|
||||
private String symbolName;
|
||||
@JsonProperty
|
||||
private BigDecimal minStep;
|
||||
@JsonProperty
|
||||
private BigDecimal precision;
|
||||
|
||||
@Override
|
||||
public Long getId() {
|
||||
|
|
@ -87,4 +91,20 @@ public class ListingUpdateRequest implements WithId {
|
|||
public void setSymbolName(String symbolName) {
|
||||
this.symbolName = symbolName;
|
||||
}
|
||||
|
||||
public BigDecimal getMinStep() {
|
||||
return minStep;
|
||||
}
|
||||
|
||||
public void setMinStep(BigDecimal minStep) {
|
||||
this.minStep = minStep;
|
||||
}
|
||||
|
||||
public BigDecimal getPrecision() {
|
||||
return precision;
|
||||
}
|
||||
|
||||
public void setPrecision(BigDecimal precision) {
|
||||
this.precision = precision;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ public class CurrencyPairSecurityNewGatewayRequest {
|
|||
|
||||
// in currencySecurityNewRequest:
|
||||
@JsonProperty
|
||||
private String tradeMode;
|
||||
@JsonProperty
|
||||
private String lotCurrencyLetterCode;
|
||||
@JsonProperty
|
||||
private String matchedCurrencyLetterCode;
|
||||
|
|
@ -20,6 +22,14 @@ public class CurrencyPairSecurityNewGatewayRequest {
|
|||
this.currencySecurityNewRequest = currencySecurityNewRequest;
|
||||
}
|
||||
|
||||
public String getTradeMode() {
|
||||
return tradeMode;
|
||||
}
|
||||
|
||||
public void setTradeMode(String tradeMode) {
|
||||
this.tradeMode = tradeMode;
|
||||
}
|
||||
|
||||
public String getLotCurrencyLetterCode() {
|
||||
return lotCurrencyLetterCode;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue