This commit is contained in:
parent
496e92bfd6
commit
2f27d41972
3 changed files with 18 additions and 2 deletions
|
|
@ -51,6 +51,7 @@ public class RatesFacade implements IClearingFacade {
|
||||||
|
|
||||||
ratesForUpdate.setValue(request.getValue());
|
ratesForUpdate.setValue(request.getValue());
|
||||||
ratesForUpdate.setWorkflowStatus(request.getStatus());
|
ratesForUpdate.setWorkflowStatus(request.getStatus());
|
||||||
|
ratesForUpdate.setUpdated(Instant.now());
|
||||||
|
|
||||||
ratesImdg.update(ratesForUpdate);
|
ratesImdg.update(ratesForUpdate);
|
||||||
log.debug("successfully processed, updated rates id {}", ratesForUpdate.getId());
|
log.debug("successfully processed, updated rates id {}", ratesForUpdate.getId());
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ public class SCrossRateFacade {
|
||||||
sCrossRate.setCreated(Instant.now());
|
sCrossRate.setCreated(Instant.now());
|
||||||
sCrossRate.setDate(req.getDate());
|
sCrossRate.setDate(req.getDate());
|
||||||
sCrossRate.setCurrency(req.getCurrency());
|
sCrossRate.setCurrency(req.getCurrency());
|
||||||
sCrossRate.setUnitRate(req.getRate());
|
sCrossRate.setUnitRate(req.getUnitRate());
|
||||||
sCrossRate.setFaceValue(req.getFaceValue());
|
sCrossRate.setFaceValue(req.getFaceValue());
|
||||||
sCrossRate.setRate(req.getRate());
|
sCrossRate.setRate(req.getRate());
|
||||||
sCrossRateImdg.insert(sCrossRate);
|
sCrossRateImdg.insert(sCrossRate);
|
||||||
|
|
@ -38,7 +38,7 @@ public class SCrossRateFacade {
|
||||||
|
|
||||||
public void update(SCrossRateUpdateRequest req) {
|
public void update(SCrossRateUpdateRequest req) {
|
||||||
SCrossRate sCrossRate = sCrossRateImdg.getSingleObjectByID(req.getId());
|
SCrossRate sCrossRate = sCrossRateImdg.getSingleObjectByID(req.getId());
|
||||||
sCrossRate.setUnitRate(req.getRate());
|
sCrossRate.setUnitRate(req.getUnitRate());
|
||||||
sCrossRate.setFaceValue(req.getFaceValue());
|
sCrossRate.setFaceValue(req.getFaceValue());
|
||||||
sCrossRate.setRate(req.getRate());
|
sCrossRate.setRate(req.getRate());
|
||||||
sCrossRate.setUpdated(Instant.now());
|
sCrossRate.setUpdated(Instant.now());
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.clearing.classes.statics.data.misc.SCrossRate;
|
import ru.clearing.classes.statics.data.misc.SCrossRate;
|
||||||
|
import ru.clearing.platform.dictionary.CurrencyCodeDictionary;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||||
|
|
@ -31,6 +32,7 @@ public class SCrossRatesMessageListener extends QueueConsumer implements Initial
|
||||||
private final UserRoleVerification userRoleVerification;
|
private final UserRoleVerification userRoleVerification;
|
||||||
private final IMessageResolver messageResolver;
|
private final IMessageResolver messageResolver;
|
||||||
private final Imdg<SCrossRate> sCrossRateImdg;
|
private final Imdg<SCrossRate> sCrossRateImdg;
|
||||||
|
private final Imdg<CurrencyCodeDictionary> currencyCodeDictionaryImdg;
|
||||||
private final SCrossRateFacade sCrossRateFacade;
|
private final SCrossRateFacade sCrossRateFacade;
|
||||||
|
|
||||||
public SCrossRatesMessageListener(Consumer<String, Object> kafkaQueue,
|
public SCrossRatesMessageListener(Consumer<String, Object> kafkaQueue,
|
||||||
|
|
@ -45,6 +47,7 @@ public class SCrossRatesMessageListener extends QueueConsumer implements Initial
|
||||||
this.messageResolver = messageResolver;
|
this.messageResolver = messageResolver;
|
||||||
this.sCrossRateImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SCrossRate, SCrossRate.class);
|
this.sCrossRateImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SCrossRate, SCrossRate.class);
|
||||||
this.sCrossRateFacade = sCrossRateFacade;
|
this.sCrossRateFacade = sCrossRateFacade;
|
||||||
|
this.currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -61,6 +64,11 @@ public class SCrossRatesMessageListener extends QueueConsumer implements Initial
|
||||||
SCrossRateGatewayRequest payload = sCrossRatesReq.getRequestPayload();
|
SCrossRateGatewayRequest payload = sCrossRatesReq.getRequestPayload();
|
||||||
|
|
||||||
for (CurrencyRateGatewayElem elem : payload.getCrossRateElems()) {
|
for (CurrencyRateGatewayElem elem : payload.getCrossRateElems()) {
|
||||||
|
CurrencyCodeDictionary codeDictionary = currencyByCode(elem.getBaseCurrencyLetterCode());
|
||||||
|
if (codeDictionary == null) {
|
||||||
|
log.debug("Skip creating sCrossRate gateway element with code {}", elem.getBaseCurrencyLetterCode());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ImdgPredicateBuilder predicateBuilder = sCrossRateImdg.predicateBuilder();
|
ImdgPredicateBuilder predicateBuilder = sCrossRateImdg.predicateBuilder();
|
||||||
Collection<Long> sCrossRateIds = sCrossRateImdg.getCollectionIdsByPredicate(
|
Collection<Long> sCrossRateIds = sCrossRateImdg.getCollectionIdsByPredicate(
|
||||||
predicateBuilder.and(
|
predicateBuilder.and(
|
||||||
|
|
@ -95,4 +103,11 @@ public class SCrossRatesMessageListener extends QueueConsumer implements Initial
|
||||||
updateRequest.setRate(sCrossRateElem.getPrice());
|
updateRequest.setRate(sCrossRateElem.getPrice());
|
||||||
return updateRequest;
|
return updateRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private CurrencyCodeDictionary currencyByCode(String code) {
|
||||||
|
ImdgPredicateBuilder predicateBuilder = currencyCodeDictionaryImdg.predicateBuilder();
|
||||||
|
return currencyCodeDictionaryImdg.getFirstObjectByPredicate(
|
||||||
|
predicateBuilder.equals("code", code)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue