securities-service Поправил (вернул) listing с MoneyMarketSecurityService.java
This commit is contained in:
parent
49d13fba43
commit
8991d915b3
5 changed files with 76 additions and 44 deletions
|
|
@ -1,7 +1,11 @@
|
|||
package ru.spcex.clearing.securities.config;
|
||||
|
||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.clearing.util.services.RequestHelper;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
import ru.spcex.clearing.util.services.IMDGMessageResolver;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package ru.spcex.clearing.securities.errors;
|
|||
import ru.spcex.platform.utils.enumeration.IErrorEnumId;
|
||||
|
||||
public enum SecuritiesError implements IErrorEnumId {
|
||||
GeneralError(1000L),
|
||||
UserVerifyDenial(1001L), // 'Нет прав на проведение данной операции
|
||||
RequiredFieldIsEmpty(1002L),
|
||||
WrongFieldValue(1004L),
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfo;
|
|||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.platform.messaging.service.Status;
|
||||
import ru.spcex.clearing.securities.component.ListingBuilder;
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.clearing.securities.validation.ValidationProvider;
|
||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||
|
|
@ -32,9 +33,11 @@ import ru.spcex.platform.imdg.api.ImdgTransaction;
|
|||
import ru.spcex.platform.imdg.validation.Stored;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
|
|
@ -99,7 +102,6 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
}
|
||||
|
||||
private RequestInfoUpdate newMoneyMarket(BaseRequest<MoneyMarketSecurityNewRequest> userRequest) {
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
MoneyMarketSecurityNewRequest req = userRequest.getRequestPayload();
|
||||
|
||||
{
|
||||
|
|
@ -136,20 +138,25 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
} else {
|
||||
mms.setWorkflowStatus(req.getWorkflowStatus());
|
||||
}
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
try {
|
||||
transaction.beginTransaction();
|
||||
Imdg<MoneyMarketSecurity> moneyMarketSecurityMap = transaction.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
|
||||
Imdg<Listing> listingMap = transaction.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||
Imdg<MoneyMarketSecurity> moneyMarketSecurityTxMap = transaction.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
|
||||
Imdg<Listing> listingTxMap = transaction.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||
//одним скопом выполняем реквест
|
||||
moneyMarketSecurityMap.insert(mms);
|
||||
// Listing listing = ListingBuilder.builder()
|
||||
// .append(mms).append(req).build();
|
||||
// listingMap.insert(listing);
|
||||
moneyMarketSecurityTxMap.insert(mms);
|
||||
Listing listing = ListingBuilder.builder()
|
||||
.append(mms).append(req).build();
|
||||
listingTxMap.insert(listing);
|
||||
transaction.commitTransaction();
|
||||
} catch (Throwable e) {
|
||||
log.error("Error at create security, rollback transaction. {}", ExceptionUtils.getStackTrace(e));
|
||||
transaction.rollbackTransaction();
|
||||
// RequestInfo.update(reqInfo, Status.Error, ExceptionUtils.getStackTrace(e));
|
||||
// requestInfoImdg.insert(reqInfo);
|
||||
String errorMsg = messageResolver.resolve(new EnumMessage(SecuritiesError.GeneralError));
|
||||
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 null; // default success
|
||||
|
|
@ -174,36 +181,52 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
}
|
||||
MoneyMarketSecurity mms = validator.getStored(Stored.PresentById);
|
||||
if (mms == null) log.error("Validator return null stored mms object.");
|
||||
Instant updateTime = Instant.now();
|
||||
mms.setUpdated(updateTime);
|
||||
mms.setStartDate(req.getStartDate());
|
||||
mms.setEndDate(req.getEndDate());
|
||||
mms.setNominalValue(req.getNominalValue());
|
||||
mms.setLotSize(req.getLotSize());
|
||||
mms.setNominalCurrency(req.getNominalCurrency());
|
||||
mms.setInstrumentType(req.getInstrumentType());
|
||||
mms.setFullName(req.getFullName());
|
||||
mms.setShortName(req.getShortName());
|
||||
mms.setFullNameEng(req.getFullNameEng());
|
||||
mms.setShortNameEng(req.getShortNameEng());
|
||||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
||||
mms.setTermType(req.getTermType());
|
||||
mms.setIsin(req.getIsin());
|
||||
mms.setIssuerId(req.getIssuerId());
|
||||
mms.setSecurityId(mms.getId());
|
||||
mms.setDescription(req.getDescription());
|
||||
if (req.getWorkflowStatus() != null) {
|
||||
mms.setWorkflowStatus(req.getWorkflowStatus());
|
||||
}
|
||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||
try {
|
||||
Instant updateTime = Instant.now();
|
||||
mms.setUpdated(updateTime);
|
||||
mms.setStartDate(req.getStartDate());
|
||||
mms.setEndDate(req.getEndDate());
|
||||
mms.setNominalValue(req.getNominalValue());
|
||||
mms.setLotSize(req.getLotSize());
|
||||
mms.setNominalCurrency(req.getNominalCurrency());
|
||||
mms.setInstrumentType(req.getInstrumentType());
|
||||
mms.setFullName(req.getFullName());
|
||||
mms.setShortName(req.getShortName());
|
||||
mms.setFullNameEng(req.getFullNameEng());
|
||||
mms.setShortNameEng(req.getShortNameEng());
|
||||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
||||
mms.setTermType(req.getTermType());
|
||||
mms.setIsin(req.getIsin());
|
||||
mms.setIssuerId(req.getIssuerId());
|
||||
mms.setSecurityId(mms.getId());
|
||||
mms.setDescription(req.getDescription());
|
||||
if (req.getWorkflowStatus() != null) {
|
||||
mms.setWorkflowStatus(req.getWorkflowStatus());
|
||||
}
|
||||
|
||||
moneyMarketSecurityMap.update(mms);
|
||||
// Listing listing = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", mms.getId()));
|
||||
// if (listing == null) {
|
||||
// log.error("MoneyMarketSecurityUpdateRequest id {} couldn't find listing with securityId {}", req.getId(), mms.getId());
|
||||
// return null;
|
||||
// }
|
||||
// listing = updateListingByMms(mms, listing);
|
||||
// listingImdg.update(listing);
|
||||
transaction.beginTransaction();
|
||||
Imdg<MoneyMarketSecurity> moneyMarketSecurityTxMap = transaction.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
|
||||
Imdg<Listing> listingTxMap = transaction.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||
|
||||
moneyMarketSecurityTxMap.update(mms);
|
||||
Listing listing = listingTxMap.getSingleObjectByFieldValues(Map.of("securityId", mms.getId()));
|
||||
if (listing == null) {
|
||||
log.error("MoneyMarketSecurityUpdateRequest id {} couldn't find listing with securityId {}", req.getId(), mms.getId());
|
||||
return null;
|
||||
}
|
||||
listing = updateListingByMms(mms, listing);
|
||||
listingTxMap.update(listing);
|
||||
transaction.commitTransaction();
|
||||
} catch (Throwable e) {
|
||||
log.error("Error at update security {}, rollback transaction. {}", req.getId(), ExceptionUtils.getStackTrace(e));
|
||||
transaction.rollbackTransaction();
|
||||
String errorMsg = messageResolver.resolve(new EnumMessage(SecuritiesError.GeneralError));
|
||||
return new RequestInfoUpdate()
|
||||
.setId(userRequest.getId())
|
||||
.setStatus(Status.Error)
|
||||
.setMessage(errorMsg);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package ru.spcex.clearing.securities.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||
|
|
@ -62,9 +63,10 @@ public class EquitySecurityServiceTest extends AbstractServiceTest {
|
|||
EQUITY_SECURITY_MATCHER.assertMatch(equityResult, equityPrediction);
|
||||
|
||||
Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", equityPrediction.getId()));
|
||||
listingPrediction.setId(listingResult.getId());
|
||||
listingPrediction.setSecurityId(listingResult.getSecurityId());
|
||||
LISTING_MATCHER.assertMatch(listingResult, listingPrediction);
|
||||
Assertions.assertNull(listingResult);
|
||||
// listingPrediction.setId(listingResult.getId());
|
||||
// listingPrediction.setSecurityId(listingResult.getSecurityId());
|
||||
// LISTING_MATCHER.assertMatch(listingResult, listingPrediction);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package ru.spcex.clearing.securities.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.MockConsumer;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
||||
|
|
@ -63,9 +64,10 @@ public class FixedIncomeSecurityServiceTest extends AbstractServiceTest {
|
|||
FIXED_INCOME_SECURITY_MATCHER.assertMatch(equityResult, fixedIncomePrediction);
|
||||
|
||||
Listing listingResult = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", fixedIncomePrediction.getId()));
|
||||
listingPrediction.setId(listingResult.getId());
|
||||
listingPrediction.setSecurityId(listingResult.getSecurityId());
|
||||
LISTING_MATCHER.assertMatch(listingResult, listingPrediction);
|
||||
Assertions.assertNull(listingResult);
|
||||
// listingPrediction.setId(listingResult.getId());
|
||||
// listingPrediction.setSecurityId(listingResult.getSecurityId());
|
||||
// LISTING_MATCHER.assertMatch(listingResult, listingPrediction);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue