This commit is contained in:
parent
2f645ceb67
commit
703ecf967b
1 changed files with 19 additions and 12 deletions
|
|
@ -38,7 +38,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCurrencyUpdate
|
|||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.platform.messaging.service.Status;
|
||||
import ru.spcex.platform.enumeration.MarketType;
|
||||
import ru.spcex.platform.enumeration.OrderStatus;
|
||||
import ru.spcex.platform.enumeration.OvernightType;
|
||||
import ru.spcex.platform.enumeration.SettleCode;
|
||||
|
|
@ -216,26 +215,34 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
}
|
||||
|
||||
Market market = imdgQueryService.getSpotMarket();
|
||||
Listing listing = imdgQueryService.findListing(rgs, market.getCode());
|
||||
Listing listingT0 = imdgQueryService.findListing(rgs, market.getCode(), SettleCode.T0.getKey());
|
||||
Listing listingT1 = imdgQueryService.findListing(rgs, market.getCode(), SettleCode.T1.getKey());
|
||||
//мб возвращать вместе с листингом?
|
||||
CurrencyPairDictionary currPair = imdgQueryService.getCurrencyPairDictionaryBySecurityId(listing.getSecurityId());
|
||||
SCrossRate rate = imdgQueryService.getSCrossRates(currPair.getBaseCurrency(), LocalDate.now());
|
||||
CurrencyPairDictionary currPairT0 = imdgQueryService.getCurrencyPairDictionaryBySecurityId(listingT0.getSecurityId());
|
||||
SCrossRate rateT0 = imdgQueryService.getSCrossRates(currPairT0.getBaseCurrency(), LocalDate.now());
|
||||
CurrencyPairDictionary currPairT1 = imdgQueryService.getCurrencyPairDictionaryBySecurityId(listingT1.getSecurityId());
|
||||
SCrossRate rateT1 = imdgQueryService.getSCrossRates(currPairT1.getBaseCurrency(), LocalDate.now());
|
||||
|
||||
var pair = new Pair<>(orderT0, orderT1);
|
||||
Pair.forEach(pair, o -> {
|
||||
copyCommonFields(swap, o);
|
||||
o.setSecurityId(listing.getSecurityId());
|
||||
o.setSecuritySymbol(listing.getSymbolCode());
|
||||
o.setListingId(listing.getId());
|
||||
o.setOvernightType(OvernightType.SPOT.getKey());
|
||||
o.setMarket(MarketType.SCSP.getKey());
|
||||
o.setMarket(market.getCode());
|
||||
o.setCreated(Instant.now());
|
||||
});
|
||||
orderT0.setPrice(rate.getUnitRate());
|
||||
orderT1.setPrice(BigDecimalUtil.safeSumBD(swap.getPrice(), rate.getUnitRate()));
|
||||
updateOrderFieldsByListing(orderT0, listingT0);
|
||||
updateOrderFieldsByListing(orderT1, listingT1);
|
||||
orderT0.setPrice(rateT0.getUnitRate());
|
||||
orderT1.setPrice(BigDecimalUtil.safeSumBD(swap.getPrice(), rateT1.getUnitRate()));
|
||||
return pair;
|
||||
}
|
||||
|
||||
private void updateOrderFieldsByListing(OrderCurrency order, Listing listing) {
|
||||
order.setSecurityId(listing.getSecurityId());
|
||||
order.setSecuritySymbol(listing.getSymbolCode());
|
||||
order.setListingId(listing.getId());
|
||||
}
|
||||
|
||||
private OrderCurrency spotToSwap(OrderCurrency order1, OrderCurrency order2, Registry rgs) {
|
||||
OrderCurrency spotT0;
|
||||
OrderCurrency spotT1;
|
||||
|
|
@ -257,14 +264,14 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
}
|
||||
|
||||
Market market = imdgQueryService.getSwapMarket();
|
||||
Listing listing = imdgQueryService.findListing(rgs, market.getCode());
|
||||
Listing listing = imdgQueryService.findListing(rgs, market.getCode(), SettleCode.T1.getKey());
|
||||
|
||||
copyCommonFields(order1, swap);
|
||||
swap.setSecurityId(listing.getSecurityId());
|
||||
swap.setSecuritySymbol(listing.getSymbolCode());
|
||||
swap.setListingId(listing.getId());
|
||||
swap.setOvernightType(OvernightType.SWAP.getKey());
|
||||
swap.setMarket(MarketType.SCSW.getKey());
|
||||
swap.setMarket(market.getCode());
|
||||
swap.setPrice(safeBD(spotT1.getPrice()).subtract(safeBD(spotT0.getPrice())));
|
||||
swap.setCreated(Instant.now());
|
||||
return swap;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue