securities-service добавил обработку DESTINATION_GATEWAY_MONEY_MARKET_SECURITY
This commit is contained in:
parent
43dde65830
commit
8467b8ef9d
2 changed files with 107 additions and 74 deletions
|
|
@ -14,6 +14,7 @@ import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||||
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeCashFlow;
|
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeCashFlow;
|
||||||
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
||||||
import ru.clearing.classes.statics.data.misc.Listing;
|
import ru.clearing.classes.statics.data.misc.Listing;
|
||||||
|
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
||||||
import ru.clearing.classes.statics.data.security.Security;
|
import ru.clearing.classes.statics.data.security.Security;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||||
|
|
@ -44,6 +45,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
|
|
||||||
private final Imdg<FixedIncomeSecurity> fixedIncomeSecurityImdg;
|
private final Imdg<FixedIncomeSecurity> fixedIncomeSecurityImdg;
|
||||||
private final Imdg<EquitySecurity> equitySecurityImdg;
|
private final Imdg<EquitySecurity> equitySecurityImdg;
|
||||||
|
private final Imdg<MoneyMarketSecurity> moneyMarketSecurityImdg;
|
||||||
private final Imdg<Listing> listingImdg;
|
private final Imdg<Listing> listingImdg;
|
||||||
private final Imdg<CouponPeriod> couponPeriodImdg;
|
private final Imdg<CouponPeriod> couponPeriodImdg;
|
||||||
private final Imdg<FixedIncomeCashFlow> fixedIncomeCashFlowImdg;
|
private final Imdg<FixedIncomeCashFlow> fixedIncomeCashFlowImdg;
|
||||||
|
|
@ -54,6 +56,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
|
|
||||||
private final FixedIncomeSecurityService fixedIncomeSecurityService;
|
private final FixedIncomeSecurityService fixedIncomeSecurityService;
|
||||||
private final EquitySecurityService equitySecurityService;
|
private final EquitySecurityService equitySecurityService;
|
||||||
|
private final MoneyMarketSecurityService moneyMarketSecurityService;
|
||||||
private final ListingService listingService;
|
private final ListingService listingService;
|
||||||
private final CouponPeriodService couponPeriodService;
|
private final CouponPeriodService couponPeriodService;
|
||||||
private final FixedIncomeCashFlowService fixedIncomeCashFlowService;
|
private final FixedIncomeCashFlowService fixedIncomeCashFlowService;
|
||||||
|
|
@ -74,6 +77,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
|
|
||||||
FixedIncomeSecurityService fixedIncomeSecurityService,
|
FixedIncomeSecurityService fixedIncomeSecurityService,
|
||||||
EquitySecurityService equitySecurityService,
|
EquitySecurityService equitySecurityService,
|
||||||
|
MoneyMarketSecurityService moneyMarketSecurityService,
|
||||||
ListingService listingService,
|
ListingService listingService,
|
||||||
CouponPeriodService couponPeriodService,
|
CouponPeriodService couponPeriodService,
|
||||||
FixedIncomeCashFlowService fixedIncomeCashFlowService) {
|
FixedIncomeCashFlowService fixedIncomeCashFlowService) {
|
||||||
|
|
@ -81,6 +85,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
this.validation = validation;
|
this.validation = validation;
|
||||||
this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class);
|
this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class);
|
||||||
this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||||
|
this.moneyMarketSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
|
||||||
this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||||
this.couponPeriodImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CouponPeriod, CouponPeriod.class);
|
this.couponPeriodImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CouponPeriod, CouponPeriod.class);
|
||||||
this.fixedIncomeCashFlowImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeCashFlow, FixedIncomeCashFlow.class);
|
this.fixedIncomeCashFlowImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeCashFlow, FixedIncomeCashFlow.class);
|
||||||
|
|
@ -94,6 +99,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
|
|
||||||
this.fixedIncomeSecurityService = fixedIncomeSecurityService;
|
this.fixedIncomeSecurityService = fixedIncomeSecurityService;
|
||||||
this.equitySecurityService = equitySecurityService;
|
this.equitySecurityService = equitySecurityService;
|
||||||
|
this.moneyMarketSecurityService = moneyMarketSecurityService;
|
||||||
this.listingService = listingService;
|
this.listingService = listingService;
|
||||||
this.couponPeriodService = couponPeriodService;
|
this.couponPeriodService = couponPeriodService;
|
||||||
this.fixedIncomeCashFlowService = fixedIncomeCashFlowService;
|
this.fixedIncomeCashFlowService = fixedIncomeCashFlowService;
|
||||||
|
|
@ -104,6 +110,9 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
callback(SecurityFondGatewayRequest.class)
|
callback(SecurityFondGatewayRequest.class)
|
||||||
.setFunction(this::newSecurities)
|
.setFunction(this::newSecurities)
|
||||||
.forDestination(Consts.DESTINATION_SECURITY_GATEWAY, callbacks::put);
|
.forDestination(Consts.DESTINATION_SECURITY_GATEWAY, callbacks::put);
|
||||||
|
callback(MoneyMarketSecurityNewRequest.class)
|
||||||
|
.setFunction(this::newMoneyMarketSecurity)
|
||||||
|
.forDestination(Consts.DESTINATION_GATEWAY_MONEY_MARKET_SECURITY, callbacks::put);
|
||||||
imdgProvider.waitAvailable();
|
imdgProvider.waitAvailable();
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
@ -237,7 +246,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
return requestHelper.makeErrorResponse(baseRequest, expected.getEnumMsg());
|
return requestHelper.makeErrorResponse(baseRequest, expected.getEnumMsg());
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
for (CouponPeriodNewRequest partRequest : (List<CouponPeriodNewRequest>)req.getCouponPeriods()) {
|
for (CouponPeriodNewRequest partRequest : (List<CouponPeriodNewRequest>) req.getCouponPeriods()) {
|
||||||
partRequest.setSecurityId(securityId);
|
partRequest.setSecurityId(securityId);
|
||||||
CouponPeriod existCouponPeriod = findCouponPeriod(partRequest);
|
CouponPeriod existCouponPeriod = findCouponPeriod(partRequest);
|
||||||
if (existCouponPeriod == null) {
|
if (existCouponPeriod == null) {
|
||||||
|
|
@ -256,7 +265,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
return requestHelper.makeErrorResponse(baseRequest, expected.getEnumMsg());
|
return requestHelper.makeErrorResponse(baseRequest, expected.getEnumMsg());
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
for (FixedIncomeCashFlowNewRequest partRequest : (List<FixedIncomeCashFlowNewRequest>)req.getFixedIncomesCashFlow()) {
|
for (FixedIncomeCashFlowNewRequest partRequest : (List<FixedIncomeCashFlowNewRequest>) req.getFixedIncomesCashFlow()) {
|
||||||
partRequest.setSecuritySymbol(String.valueOf(securityId)); // не getSecuritySymbol
|
partRequest.setSecuritySymbol(String.valueOf(securityId)); // не getSecuritySymbol
|
||||||
FixedIncomeCashFlow existFixedIncomeCashFlow = findFixedIncomeCashFlow(partRequest);
|
FixedIncomeCashFlow existFixedIncomeCashFlow = findFixedIncomeCashFlow(partRequest);
|
||||||
if (existFixedIncomeCashFlow == null) {
|
if (existFixedIncomeCashFlow == null) {
|
||||||
|
|
@ -320,7 +329,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
}
|
}
|
||||||
|
|
||||||
FixedIncomeSecurityUpdateRequest toUpdateRequest(Security security, FixedIncomeSecurityNewRequest newRequest) {
|
FixedIncomeSecurityUpdateRequest toUpdateRequest(Security security, FixedIncomeSecurityNewRequest newRequest) {
|
||||||
FixedIncomeSecurityUpdateRequest updateRequest = new FixedIncomeSecurityUpdateRequest();
|
var updateRequest = new FixedIncomeSecurityUpdateRequest();
|
||||||
updateRequest.setId(security.getId());
|
updateRequest.setId(security.getId());
|
||||||
if (newRequest.getIssuerId() == null && security.getIssuerId() != null) {
|
if (newRequest.getIssuerId() == null && security.getIssuerId() != null) {
|
||||||
newRequest.setIssuerId(security.getIssuerId());
|
newRequest.setIssuerId(security.getIssuerId());
|
||||||
|
|
@ -346,7 +355,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
}
|
}
|
||||||
|
|
||||||
EquitySecurityUpdateRequest toUpdateRequest(Security security, EquitySecurityNewRequest newRequest) {
|
EquitySecurityUpdateRequest toUpdateRequest(Security security, EquitySecurityNewRequest newRequest) {
|
||||||
EquitySecurityUpdateRequest updateRequest = new EquitySecurityUpdateRequest();
|
var updateRequest = new EquitySecurityUpdateRequest();
|
||||||
updateRequest.setId(security.getId());
|
updateRequest.setId(security.getId());
|
||||||
updateRequest.setSecuritySymbol(newRequest.getSecuritySymbol());
|
updateRequest.setSecuritySymbol(newRequest.getSecuritySymbol());
|
||||||
updateRequest.setShortName(newRequest.getShortName());
|
updateRequest.setShortName(newRequest.getShortName());
|
||||||
|
|
@ -363,7 +372,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
}
|
}
|
||||||
|
|
||||||
ListingUpdateRequest toUpdateRequest(Listing listing, ListingNewRequest newRequest) {
|
ListingUpdateRequest toUpdateRequest(Listing listing, ListingNewRequest newRequest) {
|
||||||
ListingUpdateRequest updateRequest = new ListingUpdateRequest();
|
var updateRequest = new ListingUpdateRequest();
|
||||||
updateRequest.setId(listing.getId());
|
updateRequest.setId(listing.getId());
|
||||||
updateRequest.setSecurityId(newRequest.getSecurityId());
|
updateRequest.setSecurityId(newRequest.getSecurityId());
|
||||||
updateRequest.setMarket(newRequest.getMarket());
|
updateRequest.setMarket(newRequest.getMarket());
|
||||||
|
|
@ -374,7 +383,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
}
|
}
|
||||||
|
|
||||||
CouponPeriodUpdateRequest toUpdateRequest(CouponPeriod couponPeriod, CouponPeriodNewRequest newRequest) {
|
CouponPeriodUpdateRequest toUpdateRequest(CouponPeriod couponPeriod, CouponPeriodNewRequest newRequest) {
|
||||||
CouponPeriodUpdateRequest updateRequest = new CouponPeriodUpdateRequest();
|
var updateRequest = new CouponPeriodUpdateRequest();
|
||||||
updateRequest.setId(couponPeriod.getId());
|
updateRequest.setId(couponPeriod.getId());
|
||||||
updateRequest.setSecurityId(newRequest.getSecurityId());
|
updateRequest.setSecurityId(newRequest.getSecurityId());
|
||||||
updateRequest.setCouponRate(newRequest.getCouponRate());
|
updateRequest.setCouponRate(newRequest.getCouponRate());
|
||||||
|
|
@ -385,7 +394,7 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
}
|
}
|
||||||
|
|
||||||
FixedIncomeCashFlowUpdateRequest toUpdateRequest(FixedIncomeCashFlow fxedIncomeCashFlow, FixedIncomeCashFlowNewRequest newRequest) {
|
FixedIncomeCashFlowUpdateRequest toUpdateRequest(FixedIncomeCashFlow fxedIncomeCashFlow, FixedIncomeCashFlowNewRequest newRequest) {
|
||||||
FixedIncomeCashFlowUpdateRequest updateRequest = new FixedIncomeCashFlowUpdateRequest();
|
var updateRequest = new FixedIncomeCashFlowUpdateRequest();
|
||||||
updateRequest.setId(fxedIncomeCashFlow.getId());
|
updateRequest.setId(fxedIncomeCashFlow.getId());
|
||||||
updateRequest.setSecuritySymbol(newRequest.getSecuritySymbol());
|
updateRequest.setSecuritySymbol(newRequest.getSecuritySymbol());
|
||||||
updateRequest.setAccruedCoupon(newRequest.getAccruedCoupon());
|
updateRequest.setAccruedCoupon(newRequest.getAccruedCoupon());
|
||||||
|
|
@ -395,23 +404,52 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin
|
||||||
return updateRequest;
|
return updateRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> BaseRequest<T> wrapRequest(BaseRequest<?> template, T payload, ActionType action) {
|
// --- DESTINATION_GATEWAY_MONEY_MARKET_SECURITY ---
|
||||||
BaseRequest<T> r = new BaseRequest<>();
|
|
||||||
r.setId(template.getId());
|
private RequestInfoUpdate newMoneyMarketSecurity(BaseRequest<MoneyMarketSecurityNewRequest> baseRequest) {
|
||||||
if (action == null) {
|
log.debug("MoneyMarketSecurityNewRequest id={} received", baseRequest.getId());
|
||||||
r.setActionType(template.getActionType());
|
MoneyMarketSecurityNewRequest req = baseRequest.getRequestPayload();
|
||||||
} else {
|
|
||||||
r.setActionType(action);
|
synchronized (moneyMarketSecurityService) {
|
||||||
|
MoneyMarketSecurity existMMS = findSecurityBySecuritySymbol(moneyMarketSecurityImdg, req.getSecuritySymbol());
|
||||||
|
try {
|
||||||
|
if (existMMS == null) {
|
||||||
|
existMMS = moneyMarketSecurityService.newMoneyMarket0(req);
|
||||||
|
log.debug("New moneyMarketSecurityService.id={}", existMMS.getId());
|
||||||
|
} else {
|
||||||
|
MoneyMarketSecurityUpdateRequest updateRequest = toUpdateRequest(existMMS, req);
|
||||||
|
existMMS = moneyMarketSecurityService.updateMoneyMarket0(updateRequest);
|
||||||
|
log.debug("Was update moneyMarketSecurityService.id={}", existMMS.getId());
|
||||||
|
}
|
||||||
|
} catch (ValidationException expected) {
|
||||||
|
log.warn("Error create or update issue: {}", expected.toString());
|
||||||
|
return requestHelper.makeErrorResponse(baseRequest, expected.getEnumMsg());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
r.setUserId(template.getUserId());
|
return null;
|
||||||
r.setCorrelationId(template.getCorrelationId());
|
|
||||||
r.setRequestPayload(payload);
|
|
||||||
return r;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateReply(Long companyId, String process, RequestInfoUpdate replyI) {
|
MoneyMarketSecurityUpdateRequest toUpdateRequest(MoneyMarketSecurity moneyMarketSecurity, MoneyMarketSecurityNewRequest newRequest) {
|
||||||
if (replyI != null && replyI.getMessage() != null) {
|
var updateRequest = new MoneyMarketSecurityUpdateRequest();
|
||||||
log.warn("Error process {} for companyId={}: {}", process, companyId, replyI.getMessage());
|
updateRequest.setId(moneyMarketSecurity.getId());
|
||||||
}
|
updateRequest.setStartDate(newRequest.getStartDate());
|
||||||
|
updateRequest.setEndDate(newRequest.getEndDate());
|
||||||
|
updateRequest.setNominalValue(newRequest.getNominalValue());
|
||||||
|
updateRequest.setNominalCurrency(newRequest.getNominalCurrency());
|
||||||
|
updateRequest.setInstrumentType(newRequest.getInstrumentType());
|
||||||
|
updateRequest.setShortName(newRequest.getShortName());
|
||||||
|
updateRequest.setFullName(newRequest.getFullName());
|
||||||
|
updateRequest.setConvention(newRequest.getConvention());
|
||||||
|
updateRequest.setShortNameEng(newRequest.getShortNameEng());
|
||||||
|
updateRequest.setFullNameEng(newRequest.getFullNameEng());
|
||||||
|
updateRequest.setSecuritySymbol(newRequest.getSecuritySymbol());
|
||||||
|
updateRequest.setLotSize(newRequest.getLotSize());
|
||||||
|
updateRequest.setTermType(newRequest.getTermType());
|
||||||
|
updateRequest.setDescription(newRequest.getDescription());
|
||||||
|
updateRequest.setIssuerId(newRequest.getIssuerId());
|
||||||
|
updateRequest.setIsin(newRequest.getIsin());
|
||||||
|
updateRequest.setWorkflowStatus(newRequest.getWorkflowStatus());
|
||||||
|
return updateRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ 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.statics.data.instrument.issue.FixedIncomeCashFlow;
|
||||||
import ru.clearing.classes.statics.data.misc.Listing;
|
import ru.clearing.classes.statics.data.misc.Listing;
|
||||||
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
|
@ -23,6 +24,7 @@ import ru.spcex.clearing.securities.component.ListingBuilder;
|
||||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||||
import ru.spcex.clearing.securities.validation.ValidationProvider;
|
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.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.UserRole;
|
import ru.spcex.platform.enumeration.UserRole;
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
|
|
@ -33,6 +35,7 @@ import ru.spcex.platform.imdg.api.ImdgTransaction;
|
||||||
import ru.spcex.platform.imdg.validation.Stored;
|
import ru.spcex.platform.imdg.validation.Stored;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
|
import ru.spcex.platform.utils.error.ValidationException;
|
||||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
|
|
@ -50,6 +53,7 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
||||||
private final ValidationProvider validation;
|
private final ValidationProvider validation;
|
||||||
private final UserRoleVerification userRoleVerification;
|
private final UserRoleVerification userRoleVerification;
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
|
private final RequestHelper requestHelper;
|
||||||
private final IMessageResolver messageResolver;
|
private final IMessageResolver messageResolver;
|
||||||
private final ListingService listingService; // для синхронизации
|
private final ListingService listingService; // для синхронизации
|
||||||
|
|
||||||
|
|
@ -60,12 +64,14 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
||||||
ValidationProvider validation,
|
ValidationProvider validation,
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
|
RequestHelper requestHelper,
|
||||||
IMessageResolver messageResolver,
|
IMessageResolver messageResolver,
|
||||||
ListingService listingService) {
|
ListingService listingService) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.userRoleVerification = userRoleVerification.setRoleForVerification(UserRole.Admin);
|
this.userRoleVerification = userRoleVerification.setRoleForVerification(UserRole.Admin);
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.validation = validation;
|
this.validation = validation;
|
||||||
|
this.requestHelper = requestHelper;
|
||||||
this.moneyMarketSecurityMap = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
|
this.moneyMarketSecurityMap = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
|
||||||
this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
|
|
@ -105,18 +111,19 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
||||||
}
|
}
|
||||||
|
|
||||||
private RequestInfoUpdate newMoneyMarket(BaseRequest<MoneyMarketSecurityNewRequest> userRequest) {
|
private RequestInfoUpdate newMoneyMarket(BaseRequest<MoneyMarketSecurityNewRequest> userRequest) {
|
||||||
MoneyMarketSecurityNewRequest req = userRequest.getRequestPayload();
|
log.debug("MoneyMarketSecurityNewRequest received id = {}", userRequest.getId());
|
||||||
|
try {
|
||||||
{
|
userRoleVerification.validateRoleAndThrow(userRequest);
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
MoneyMarketSecurity moneyMarketSecurity = newMoneyMarket0(userRequest.getRequestPayload());
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
log.debug("successfully processed, request id {}, new object id {}", userRequest.getId(), moneyMarketSecurity.getId());
|
||||||
}
|
return null;
|
||||||
{
|
} catch (ValidationException e) {
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, validation.mmsNewValidator());
|
return requestHelper.makeErrorResponse(userRequest, e.getEnumMsg());
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
log.debug("MoneyMarketSecurityNewRequest received");
|
protected synchronized MoneyMarketSecurity newMoneyMarket0(MoneyMarketSecurityNewRequest req) throws ValidationException {
|
||||||
|
validationHelper.validateTillFirstErrorAndThrow(req, validation.mmsNewValidator());
|
||||||
MoneyMarketSecurity mms = new MoneyMarketSecurity();
|
MoneyMarketSecurity mms = new MoneyMarketSecurity();
|
||||||
mms.setId(idGenerator.nextId());
|
mms.setId(idGenerator.nextId());
|
||||||
mms.setStartDate(req.getStartDate());
|
mms.setStartDate(req.getStartDate());
|
||||||
|
|
@ -158,33 +165,29 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
log.error("Error at create security, rollback transaction. {}", ExceptionUtils.getStackTrace(e));
|
log.error("Error at create security, rollback transaction. {}", ExceptionUtils.getStackTrace(e));
|
||||||
transaction.rollbackTransaction();
|
transaction.rollbackTransaction();
|
||||||
String errorMsg = messageResolver.resolve(new EnumMessage(SecuritiesError.GeneralError));
|
throw e;
|
||||||
return new RequestInfoUpdate()
|
|
||||||
.setId(userRequest.getId())
|
|
||||||
.setStatus(Status.Error)
|
|
||||||
.setMessage(errorMsg);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.debug("successfully processed, request id {}, new object id {}", userRequest.getId(), mms.getId());
|
return mms; // default success
|
||||||
return null; // default success
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private RequestInfoUpdate updateMoneyMarket(BaseRequest<MoneyMarketSecurityUpdateRequest> userRequest) {
|
private RequestInfoUpdate updateMoneyMarket(BaseRequest<MoneyMarketSecurityUpdateRequest> userRequest) {
|
||||||
MoneyMarketSecurityUpdateRequest req = userRequest.getRequestPayload();
|
log.debug("MoneyMarketSecurityUpdateRequest received id = {}", userRequest.getId());
|
||||||
log.debug("MoneyMarketSecurityUpdateRequest received id = {}", req.getId());
|
try {
|
||||||
|
userRoleVerification.validateRoleAndThrow(userRequest);
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
MoneyMarketSecurity moneyMarketSecurity = updateMoneyMarket0(userRequest.getRequestPayload());
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
log.debug("successfully processed, request id {}, update object id {}", userRequest.getId(), moneyMarketSecurity.getId());
|
||||||
|
return null;
|
||||||
|
} catch (ValidationException e) {
|
||||||
|
return requestHelper.makeErrorResponse(userRequest, e.getEnumMsg());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected synchronized MoneyMarketSecurity updateMoneyMarket0(MoneyMarketSecurityUpdateRequest req) throws ValidationException {
|
||||||
IValidator validator = validation.mmsUpdateValidator().apply(req);
|
IValidator validator = validation.mmsUpdateValidator().apply(req);
|
||||||
Optional<EnumMessage> validationError = validator.tillFirstError();
|
Optional<EnumMessage> validationError = validator.tillFirstError();
|
||||||
if (validationError.isPresent()) {
|
if (validationError.isPresent()) {
|
||||||
String errorMsg = messageResolver.resolve(validationError.get());
|
throw new ValidationException(validationError.get());
|
||||||
log.error("cannot process MoneyMarketSecurityUpdateRequest id={}: {}", userRequest.getId(), errorMsg);
|
|
||||||
return new RequestInfoUpdate()
|
|
||||||
.setId(userRequest.getId())
|
|
||||||
.setStatus(Status.Error)
|
|
||||||
.setMessage(errorMsg);
|
|
||||||
}
|
}
|
||||||
MoneyMarketSecurity mms = validator.getStored(Stored.PresentById);
|
MoneyMarketSecurity mms = validator.getStored(Stored.PresentById);
|
||||||
if (mms == null) log.error("Validator return null stored mms object.");
|
if (mms == null) log.error("Validator return null stored mms object.");
|
||||||
|
|
@ -231,32 +234,28 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
log.error("Error at update security {}, rollback transaction. {}", req.getId(), ExceptionUtils.getStackTrace(e));
|
log.error("Error at update security {}, rollback transaction. {}", req.getId(), ExceptionUtils.getStackTrace(e));
|
||||||
transaction.rollbackTransaction();
|
transaction.rollbackTransaction();
|
||||||
String errorMsg = messageResolver.resolve(new EnumMessage(SecuritiesError.GeneralError));
|
throw e;
|
||||||
return new RequestInfoUpdate()
|
|
||||||
.setId(userRequest.getId())
|
|
||||||
.setStatus(Status.Error)
|
|
||||||
.setMessage(errorMsg);
|
|
||||||
}
|
}
|
||||||
return null;
|
return mms;
|
||||||
}
|
}
|
||||||
|
|
||||||
private RequestInfoUpdate deleteMoneyMarket(BaseRequest<CommonDeleteRequest> userRequest) {
|
private RequestInfoUpdate deleteMoneyMarket(BaseRequest<CommonDeleteRequest> userRequest) {
|
||||||
CommonDeleteRequest req = userRequest.getRequestPayload();
|
log.debug("CommonDeleteRequest received id = {}", userRequest.getId());
|
||||||
log.debug("CommonDeleteRequest received id = {}", req.getId());
|
try {
|
||||||
|
userRoleVerification.validateRoleAndThrow(userRequest);
|
||||||
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
Long mmsId = deleteMoneyMarket0(userRequest.getRequestPayload());
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
log.debug("successfully processed, request id {}, delete object id {}", userRequest.getId(), mmsId);
|
||||||
|
return null;
|
||||||
|
} catch (ValidationException e) {
|
||||||
|
return requestHelper.makeErrorResponse(userRequest, e.getEnumMsg());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected synchronized Long deleteMoneyMarket0(CommonDeleteRequest req) throws ValidationException {
|
||||||
IValidator validator = validation.mmsDeleteValidator().apply(req);
|
IValidator validator = validation.mmsDeleteValidator().apply(req);
|
||||||
Optional<EnumMessage> validationError = validator.tillFirstError();
|
Optional<EnumMessage> validationError = validator.tillFirstError();
|
||||||
if (validationError.isPresent()) {
|
if (validationError.isPresent()) {
|
||||||
String errorMsg = messageResolver.resolve(validationError.get());
|
throw new ValidationException(validationError.get());
|
||||||
log.error("cannot process CommonDeleteRequest id={}: {}", userRequest.getId(), errorMsg);
|
|
||||||
return new RequestInfoUpdate()
|
|
||||||
.setId(userRequest.getId())
|
|
||||||
.setStatus(Status.Error)
|
|
||||||
.setMessage(errorMsg);
|
|
||||||
}
|
}
|
||||||
Instant updateTime = Instant.now();
|
Instant updateTime = Instant.now();
|
||||||
MoneyMarketSecurity mms = validator.getStored(Stored.PresentById);
|
MoneyMarketSecurity mms = validator.getStored(Stored.PresentById);
|
||||||
|
|
@ -284,13 +283,9 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
log.error("Error at block security {}, rollback transaction. {}", req.getId(), ExceptionUtils.getStackTrace(e));
|
log.error("Error at block security {}, rollback transaction. {}", req.getId(), ExceptionUtils.getStackTrace(e));
|
||||||
transaction.rollbackTransaction();
|
transaction.rollbackTransaction();
|
||||||
String errorMsg = messageResolver.resolve(new EnumMessage(SecuritiesError.GeneralError));
|
throw e;
|
||||||
return new RequestInfoUpdate()
|
|
||||||
.setId(userRequest.getId())
|
|
||||||
.setStatus(Status.Error)
|
|
||||||
.setMessage(errorMsg);
|
|
||||||
}
|
}
|
||||||
return null;
|
return mms.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Listing updateListingByMms(MoneyMarketSecurity mms, Listing listing) {
|
public Listing updateListingByMms(MoneyMarketSecurity mms, Listing listing) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue