This commit is contained in:
AKurakin 2024-02-09 11:56:30 +03:00
parent 8ee172b075
commit 9e5d54b130
4 changed files with 58 additions and 10 deletions

View file

@ -31,8 +31,8 @@ class SCrossRateControllerTest extends AbstractControllerTest {
sCrossRate.setUnitRate(new BigDecimal("1.00"));
sCrossRate.setGenerationTime(Instant.now());
sCrossRate.setGenerationId(10L);
sCrossRate.setCreatedAt(Instant.now());
sCrossRate.setUpdatedAt(sCrossRate.getCreatedAt());
sCrossRate.setCreated(Instant.now());
sCrossRate.setUpdated(sCrossRate.getCreated());
//ACT and ASSERT
checkGettingAllFromRestApi(IMDGDistributedNames.Map_SCrossRate, sCrossRate, REST_URL);

View file

@ -75,9 +75,6 @@ public class ExtDBImporterService {
crossRateDb.setId(sCrossRate.getId());
crossRateDb.setCreated(sCrossRate.getCreated());
crossRateDb.setUpdated(currentInstant);
// В extDb нет таких полей, оставляем как есть:
crossRateDb.setGenerationTime(sCrossRate.getGenerationTime());
crossRateDb.setGenerationId(sCrossRate.getGenerationId());
sCrossRateImdg.update(crossRateDb);
updated++;
} else if (sCrossRate == null) {
@ -87,6 +84,10 @@ public class ExtDBImporterService {
sCrossRateImdg.insert(crossRateDb);
created++;
}
// В extDb нет таких полей, заполнить:
crossRateDb.setGenerationTime(currentInstant);
crossRateDb.setGenerationId(makeGenerationId(sCrossRate.getDate(), sCrossRate.getCurrCode()));
} else {
log.warn(messageResolver.resolve(new EnumMessage(crossRateNotValid, crossRateDb.getCurrCode())));
}
@ -105,6 +106,28 @@ public class ExtDBImporterService {
}
}
protected Long makeGenerationId(LocalDate date, String currCode) {
try {
long d = date.getYear() * 1_00_00L + date.getMonthValue() * 1_00L + date.getDayOfMonth();
currCode = currCode.trim();
if (!currCode.isEmpty()) {
int l = currCode.length();
long cc = Long.parseLong(currCode);
if (cc < 0) {
cc = -cc;
l--;
}
for (int i = 0; i < l; i++) d *= 10L; // d = d * (int) Math.pow(10, currCode.length());
d += cc;
}
return d;
} catch (Exception e) {
log.warn("Unparseable date={} and currCode={} - can not make number GenerationId",
date, currCode);
return null;
}
}
public SCrossRate getSCrossRateFromImdg(SCrossRate crossRateDb, Imdg<SCrossRate> sCrossRateImdg) {
Map<String, Comparable<?>> query = new HashMap<>();
query.put("date", crossRateDb.getDate());

View file

@ -52,7 +52,7 @@ class ExtDBImporterServiceTest extends AbstractServiceTest {
@BeforeEach
private void prepare(){
private void prepare() {
clearAllInImdg(sCrossRateImdg);
}
@ -66,7 +66,7 @@ class ExtDBImporterServiceTest extends AbstractServiceTest {
SCrossRate sCrossRate = getSCrossRate();
Long id = sCrossRateImdg.insert(sCrossRate);
addRecordToKafka((MockConsumer) launcherCommandReceiver.getConsumer(), Task.getCurrencyRates.topic(), 0, 1, getJsonStringForNew(new LauncherCommandRequest(),0));
addRecordToKafka((MockConsumer) launcherCommandReceiver.getConsumer(), Task.getCurrencyRates.topic(), 0, 1, getJsonStringForNew(new LauncherCommandRequest(), 0));
//waiting for kafka producer send message
// ArgumentCaptor<ProducerRecord> captor = getCaptor(kafkaTemplate);
@ -85,7 +85,7 @@ class ExtDBImporterServiceTest extends AbstractServiceTest {
* Входной запрос {@link LauncherCommandRequest}:<br>
*/
@Test
void getSCrossRateFromImdg(){
void getSCrossRateFromImdg() {
SCrossRate sCrossRate = getSCrossRate();
Long id = sCrossRateImdg.insert(sCrossRate);
SCrossRate sCrossRateRes = extDBImporterService.getSCrossRateFromImdg(sCrossRate, sCrossRateImdg);
@ -96,13 +96,37 @@ class ExtDBImporterServiceTest extends AbstractServiceTest {
assertNull(sCrossRateRes);
}
private SCrossRate getSCrossRate(){
private SCrossRate getSCrossRate() {
SCrossRate sCrossRate = new SCrossRate();
sCrossRate.setDate(LocalDate.of(2024,2,8));
sCrossRate.setDate(LocalDate.of(2024, 2, 8));
sCrossRate.setRate(new BigDecimal("10.1"));
sCrossRate.setUnitRate(new BigDecimal("12.4"));
sCrossRate.setCurrCode("RUB");
sCrossRate.setCurrency("RUB");
return sCrossRate;
}
@Test
void makeGenerationId() {
assertEquals(20240130840L, extDBImporterService.makeGenerationId(
LocalDate.of(2024, 1, 30), " 840 "));
assertEquals(205612311230L, extDBImporterService.makeGenerationId(
LocalDate.of(2056, 12, 31), " 1230 "));
assertEquals(20561231L, extDBImporterService.makeGenerationId(
LocalDate.of(2056, 12, 31), " "));
assertEquals(205612310L, extDBImporterService.makeGenerationId(
LocalDate.of(2056, 12, 31), "0"));
assertEquals(205612315L, extDBImporterService.makeGenerationId(
LocalDate.of(2056, 12, 31), "-5"));
assertEquals(null, extDBImporterService.makeGenerationId(
LocalDate.of(2056, 12, 31), " - "));
assertEquals(null, extDBImporterService.makeGenerationId(
LocalDate.of(2056, 12, 31), null));
assertEquals(null, extDBImporterService.makeGenerationId(
null, " 840 "));
}
}

View file

@ -10,6 +10,7 @@ kill -9 $(ps -ef | grep java | grep lim-exporter.jar | awk '{print $2}')
kill -9 $(ps -ef | grep java | grep swt-exporter.jar | awk '{print $2}')
kill -9 $(ps -ef | grep java | grep dbf-importer.jar | awk '{print $2}')
kill -9 $(ps -ef | grep java | grep trade-importer.jar | awk '{print $2}')
kill -9 $(ps -ef | grep java | grep extdb-service.jar | awk '{print $2}')
kill -9 $(ps -ef | grep java | grep imdg.jar | awk '{print $2}')
kill -9 $(ps -ef | grep java | grep imdg-hist.jar | awk '{print $2}')
kill -9 $(ps -ef | grep java | grep securities-service.jar | awk '{print $2}')