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.setClearingOrganization(currencyInstrument.getClearingOrganization());
|
||||||
securityNewRequest.setWorkflowStatus(currencyInstrument.getWorkflowStatus());
|
securityNewRequest.setWorkflowStatus(currencyInstrument.getWorkflowStatus());
|
||||||
|
|
||||||
|
// Для listing
|
||||||
securityNewRequest.setMinStep(currencyInstrument.getMinStep());
|
securityNewRequest.setMinStep(currencyInstrument.getMinStep());
|
||||||
securityNewRequest.setPrecision(currencyInstrument.getPrecision());
|
securityNewRequest.setPrecision(currencyInstrument.getPrecision());
|
||||||
securityNewRequest.setLotSize(currencyInstrument.getLotSize());
|
securityNewRequest.setLotSize(currencyInstrument.getLotSize());
|
||||||
|
req.setTradeMode(currencyInstrument.getTradingMode());
|
||||||
|
|
||||||
// для currencyPairId
|
// для currencyPairId
|
||||||
req.setLotCurrencyLetterCode(currencyInstrument.getLotCurrencyLetterCode());
|
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.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.util.services.RequestHelper;
|
import ru.spcex.clearing.util.services.RequestHelper;
|
||||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.InstrumentType;
|
|
||||||
import ru.spcex.platform.enumeration.UserRole;
|
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgId;
|
import ru.spcex.platform.imdg.api.ImdgId;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
@ -195,6 +192,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
CurrencyPairSecurityNewGatewayRequest req = (CurrencyPairSecurityNewGatewayRequest) baseRequest.getRequestPayload();
|
CurrencyPairSecurityNewGatewayRequest req = (CurrencyPairSecurityNewGatewayRequest) baseRequest.getRequestPayload();
|
||||||
|
|
||||||
Security security = null;
|
Security security = null;
|
||||||
|
Long securityId = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
CurrencyPairSecurityNewRequest currencyPairRequest = req.getCurrencySecurityNewRequest();
|
CurrencyPairSecurityNewRequest currencyPairRequest = req.getCurrencySecurityNewRequest();
|
||||||
|
|
@ -231,6 +229,31 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
CurrencyPairSecurityUpdateRequest updateRequest = toUpdateRequest(security, currencyPairRequest);
|
CurrencyPairSecurityUpdateRequest updateRequest = toUpdateRequest(security, currencyPairRequest);
|
||||||
security = currencyPairSecurityService.updateCurrencyPairSecurity0(updateRequest);
|
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 {
|
} else {
|
||||||
log.warn("currencyPairSecurityGatewayRequest is null");
|
log.warn("currencyPairSecurityGatewayRequest is null");
|
||||||
}
|
}
|
||||||
|
|
@ -244,17 +267,14 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Long securityId;
|
|
||||||
if (security == null) {
|
if (security == null) {
|
||||||
log.error("No new or update security.");
|
log.error("No new or update security.");
|
||||||
securityId = null;
|
|
||||||
} else {
|
} else {
|
||||||
securityId = security.getId();
|
|
||||||
log.debug("Use security {}.id={} ({} {})", security.getClass().getSimpleName(), securityId, security.getInstrumentType(), security.getShortName());
|
log.debug("Use security {}.id={} ({} {})", security.getClass().getSimpleName(), securityId, security.getInstrumentType(), security.getShortName());
|
||||||
}
|
}
|
||||||
|
|
||||||
log.debug("successfully processed, request id {}, currencyPairId={}",
|
log.debug("successfully processed, request id {}",
|
||||||
baseRequest.getId(), securityId);
|
baseRequest.getId());
|
||||||
return null; // default success
|
return null; // default success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -516,6 +536,8 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
updateRequest.setWorkflowStatus(newRequest.getWorkflowStatus());
|
updateRequest.setWorkflowStatus(newRequest.getWorkflowStatus());
|
||||||
updateRequest.setSymbolCode(newRequest.getSymbolCode());
|
updateRequest.setSymbolCode(newRequest.getSymbolCode());
|
||||||
updateRequest.setSymbolName(newRequest.getSymbolName());
|
updateRequest.setSymbolName(newRequest.getSymbolName());
|
||||||
|
updateRequest.setMinStep(newRequest.getMinStep());
|
||||||
|
updateRequest.setPrecision(newRequest.getPrecision());
|
||||||
return updateRequest;
|
return updateRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -125,6 +125,8 @@ public class ListingService extends QueueConsumer implements InitializingBean {
|
||||||
} else {
|
} else {
|
||||||
listing.setWorkflowStatus(req.getWorkflowStatus());
|
listing.setWorkflowStatus(req.getWorkflowStatus());
|
||||||
}
|
}
|
||||||
|
listing.setMinStep(req.getMinStep());
|
||||||
|
listing.setPrecision(req.getPrecision());
|
||||||
|
|
||||||
listingImdg.insert(listing);
|
listingImdg.insert(listing);
|
||||||
return listing;
|
return listing;
|
||||||
|
|
@ -163,6 +165,8 @@ public class ListingService extends QueueConsumer implements InitializingBean {
|
||||||
if (StringUtils.isNotEmpty(req.getWorkflowStatus())) {
|
if (StringUtils.isNotEmpty(req.getWorkflowStatus())) {
|
||||||
listing.setWorkflowStatus(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);
|
listingImdg.update(listing);
|
||||||
return listing;
|
return listing;
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,10 @@ public class ListingNewRequest {
|
||||||
private String symbolCode;
|
private String symbolCode;
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private String symbolName;
|
private String symbolName;
|
||||||
|
@JsonProperty
|
||||||
|
private BigDecimal minStep;
|
||||||
|
@JsonProperty
|
||||||
|
private BigDecimal precision;
|
||||||
|
|
||||||
public Long getSecurityId() {
|
public Long getSecurityId() {
|
||||||
return securityId;
|
return securityId;
|
||||||
|
|
@ -75,4 +79,20 @@ public class ListingNewRequest {
|
||||||
public void setSymbolName(String symbolName) {
|
public void setSymbolName(String symbolName) {
|
||||||
this.symbolName = 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;
|
private String symbolCode;
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private String symbolName;
|
private String symbolName;
|
||||||
|
@JsonProperty
|
||||||
|
private BigDecimal minStep;
|
||||||
|
@JsonProperty
|
||||||
|
private BigDecimal precision;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
|
|
@ -87,4 +91,20 @@ public class ListingUpdateRequest implements WithId {
|
||||||
public void setSymbolName(String symbolName) {
|
public void setSymbolName(String symbolName) {
|
||||||
this.symbolName = 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:
|
// in currencySecurityNewRequest:
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
|
private String tradeMode;
|
||||||
|
@JsonProperty
|
||||||
private String lotCurrencyLetterCode;
|
private String lotCurrencyLetterCode;
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private String matchedCurrencyLetterCode;
|
private String matchedCurrencyLetterCode;
|
||||||
|
|
@ -20,6 +22,14 @@ public class CurrencyPairSecurityNewGatewayRequest {
|
||||||
this.currencySecurityNewRequest = currencySecurityNewRequest;
|
this.currencySecurityNewRequest = currencySecurityNewRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getTradeMode() {
|
||||||
|
return tradeMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTradeMode(String tradeMode) {
|
||||||
|
this.tradeMode = tradeMode;
|
||||||
|
}
|
||||||
|
|
||||||
public String getLotCurrencyLetterCode() {
|
public String getLotCurrencyLetterCode() {
|
||||||
return lotCurrencyLetterCode;
|
return lotCurrencyLetterCode;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue