From e331ff403f6ef754aa7a651248ea52efdb1a29c2 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Tue, 2 Dec 2025 19:08:42 +0300 Subject: [PATCH] delete deprecated classes --- .../credit_tracker/facade/SignalFacadeV3.java | 10 +- .../repository/PhoneRepository.java | 18 -- .../MonitoringErrorProcesingService.java | 56 +++- .../service/MonitoringService.java | 15 +- .../credit_tracker/service/SignalService.java | 101 ------- .../service/UpdatingFlagsService.java | 23 +- .../service/indic/FlagsService.java | 249 +--------------- .../service/indic/PhoneService.java | 269 ------------------ .../service/signal/PhoneFidMapService.java | 93 ------ .../service/signal/SignalRestService.java | 4 - .../service/PhoneService2Test.java | 69 ++--- .../service/PhoneServiceTest.java | 56 ++-- 12 files changed, 135 insertions(+), 828 deletions(-) delete mode 100644 src/main/java/ru/nbch/credit_tracker/service/SignalService.java delete mode 100644 src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService.java delete mode 100644 src/main/java/ru/nbch/credit_tracker/service/signal/PhoneFidMapService.java diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java index c819ad1..96ff9d0 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java @@ -142,11 +142,11 @@ public class SignalFacadeV3 { throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringError); } -// // проверка на уникальность пакета -// if (userPackageService.isPackageNotUnique(userId, packageName)) { -// userPackageService.rejectPackage(userId, packageName); -// throw clientExcp(SignalError.ERROR_007, XmlErrorFormat.MonitoringError); -// } + // проверка на уникальность пакета + if (userPackageService.isPackageNotUnique(userId, packageName)) { + userPackageService.rejectPackage(userId, packageName); + throw clientExcp(SignalError.ERROR_007, XmlErrorFormat.MonitoringError); + } Long packageId = userPackageService.registerPackage(userId, packageName); LogUtil.addMdcLogKey("%s %d".formatted(packageName, packageId)); diff --git a/src/main/java/ru/nbch/credit_tracker/repository/PhoneRepository.java b/src/main/java/ru/nbch/credit_tracker/repository/PhoneRepository.java index 5d868cf..a7602a9 100644 --- a/src/main/java/ru/nbch/credit_tracker/repository/PhoneRepository.java +++ b/src/main/java/ru/nbch/credit_tracker/repository/PhoneRepository.java @@ -77,24 +77,6 @@ public class PhoneRepository { ); } - @Deprecated - public List findFidsWithName(List phones) { - MapSqlParameterSource params = new MapSqlParameterSource(); - params.addValue("phones", phones); - - return jdbcTemplate.query(SELECT_FIDS_WITH_NAME, params, (rs, rowNum) -> - new PhoneRepository.FidsDataWithName( - rs.getInt("FID"), - rs.getString("NUMBER"), - getLocalDate(rs, "FILE_SINCE_DT"), - rs.getString("FIRST"), - rs.getString("NAME_1"), - rs.getString("MIDDLE"), - getLocalDate(rs, "BIRTH_DT"), - getLocalDate(rs, "FILE_SINCE_DT_NAME") - )); - } - public List findNameByPhones(List phones) { MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("phones", phones); diff --git a/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java b/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java index 6c5348c..a977393 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java @@ -1,16 +1,25 @@ package ru.nbch.credit_tracker.service; +import java.io.BufferedInputStream; +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; +import java.util.List; import java.util.Optional; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.aop.framework.AopContext; import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.stereotype.Service; +import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; +import ru.nbch.credit_tracker.entities.app.PhoneFidMap; import ru.nbch.credit_tracker.entities.app.UserPackage; +import ru.nbch.credit_tracker.entities.external_response.monitoring_report_error.MonitoringReportErrors; import ru.nbch.credit_tracker.enums.RejectedStatus; import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper; +import ru.nbch.credit_tracker.service.indic.PhoneService2; import ru.nbch.credit_tracker.service.signal.SignalRestService; +import ru.nbch.credit_tracker.service.xml.stax.StaxXmlProcessor; import ru.nbch.credit_tracker.utils.CtFileUtils; @Slf4j @@ -19,21 +28,26 @@ import ru.nbch.credit_tracker.utils.CtFileUtils; public class MonitoringErrorProcesingService { private MonitoringErrorProcesingService self; - - private final SignalService signalService; private final UserPackageMapper userPackageMapper; private final SignalRestService signalRestService; + private final StaxXmlProcessor staxXmlProcessor; + private final PhoneService2 phoneService2; + private final Integer batchSize; - public MonitoringErrorProcesingService(SignalService signalService, - UserPackageMapper userPackageMapper, - SignalRestService signalRestService) { - this.signalService = signalService; + public MonitoringErrorProcesingService(UserPackageMapper userPackageMapper, + SignalRestService signalRestService, + StaxXmlProcessor staxXmlProcessor, + PhoneService2 phoneService2, + CreditTrackerSettings config) { this.userPackageMapper = userPackageMapper; this.signalRestService = signalRestService; + this.staxXmlProcessor = staxXmlProcessor; + this.phoneService2 = phoneService2; + this.batchSize = config.getPipeline().subjectBatchSize(); } public void findErrors(Long packageId) { - UserPackage userPackage = signalService.findPackage(packageId); + UserPackage userPackage = userPackageMapper.findPackage(packageId); String packCode = userPackage.getUserId().substring(0, 6) + "_" + userPackage.getPackageName(); log.info("Проверка на ошибки при постановке на мониторинг. packCode={}, packageId={}", packCode, packageId); String fileName = signalRestService.getErrorFileName(packageId, packCode); @@ -45,7 +59,7 @@ public class MonitoringErrorProcesingService { Optional filePath = signalRestService.loadErrorFile(fileName, userPackage); if (filePath.isPresent()) { try { - signalService.updateSubjectsErrors(filePath.get(), packageId); + updateSubjectsErrors(filePath.get(), packageId); } catch (Exception e) { log.error("Ошибка при записи сообщений об ошибках в сформированных субъектах для мониторинга. Package_id = {}", packageId, e); } @@ -55,6 +69,32 @@ public class MonitoringErrorProcesingService { } + private void updateSubjectsErrors(Path filePath, Long packageId) { + log.info("Start updating subjects errors. PackageId: {}", packageId); + try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(filePath), 8 * 1024 * 1024)) { + staxXmlProcessor.read(in, MonitoringReportErrors.class, + request -> { + if (!request.getPersons().isEmpty()) { + List subjects = request.getPersons().stream().map(p -> { + log.warn("Ошибка при формировании субъекта. package_id = {}, id = {}. Описание: {}", packageId, p.getUid(), p.getValue()); + return PhoneFidMap.builder() + .id(p.getUid()) + .errorText(p.getValue()) + .build(); + }).toList(); + phoneService2.updateOnError(subjects); + log.trace("Updated subject's batch. Total count: {}. PackageId: {}", request.getPersons().size(), packageId); + request.getPersons().clear(); + } + }, + request -> request.getPersons().isEmpty(), + batchSize, "/Errors/p"); + } catch (IOException e) { + throw new RuntimeException("Error while parsing MonitoringReportErrors", e); + } + log.info("Subject's errors were updated. PackageId: {}", packageId); + } + private MonitoringErrorProcesingService getCurrentProxy() { if (self == null) { self = (MonitoringErrorProcesingService) AopContext.currentProxy(); diff --git a/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java b/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java index adbd468..f9ac8d7 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java @@ -34,7 +34,9 @@ import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response. import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response.Subject; import ru.nbch.credit_tracker.enums.Status; import ru.nbch.credit_tracker.mapper.signal.FlagDetailMapper; +import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper; import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper; +import ru.nbch.credit_tracker.service.signal.HitsService; import ru.nbch.credit_tracker.service.signal.SignalRestService; import ru.nbch.credit_tracker.service.xml.stax.MonitoringSignalResponseStaxXmlWriter; import ru.nbch.credit_tracker.service.xml.stax.StaxXmlProcessor; @@ -51,23 +53,26 @@ import ru.nbch.credit_tracker.utils.error.ExceptionUtils; public class MonitoringService { private final SignalRestService signalRestService; - private final SignalService signalService; private final FlagDetailMapper flagDetailMapper; private final UserPackageMapper userPackageMapper; private final StaxXmlProcessor staxXmlProcessor; + private final HitsService hitsService; + private final PhoneFidMapMapper phoneFidMapMapper; private final CreditTrackerSettings config; public MonitoringService(SignalRestService signalRestService, - SignalService signalService, FlagDetailMapper flagDetailMapper, UserPackageMapper userPackageMapper, StaxXmlProcessor staxXmlProcessor, + HitsService hitsService, + PhoneFidMapMapper phoneFidMapMapper, CreditTrackerSettings config) { this.signalRestService = signalRestService; - this.signalService = signalService; this.flagDetailMapper = flagDetailMapper; this.userPackageMapper = userPackageMapper; this.staxXmlProcessor = staxXmlProcessor; + this.hitsService = hitsService; + this.phoneFidMapMapper = phoneFidMapMapper; this.config = config; } @@ -94,7 +99,7 @@ public class MonitoringService { private void processPackage(UserPackage userPackage) { log.info("Processing package"); - if (!signalService.hasNonNullfids(userPackage.getId())) { + if (!phoneFidMapMapper.hasNonNullFids(userPackage.getId())) { log.info("Package has no fids. Package will be skipped."); return; } @@ -266,7 +271,7 @@ public class MonitoringService { hits.add(hit); }); if (!hits.isEmpty()) { - signalService.insertHits(hits); + hitsService.insertHits(hits); } }); response.getSubjects().getSubjects().clear(); // чистим список для экономии памяти diff --git a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java deleted file mode 100644 index 60eb9b0..0000000 --- a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java +++ /dev/null @@ -1,101 +0,0 @@ -package ru.nbch.credit_tracker.service; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; -import ru.nbch.credit_tracker.entities.app.Hit; -import ru.nbch.credit_tracker.entities.app.PhoneFidMap; -import ru.nbch.credit_tracker.entities.app.UserPackage; -import ru.nbch.credit_tracker.entities.external_response.monitoring_report_error.MonitoringReportErrors; -import ru.nbch.credit_tracker.enums.Status; -import ru.nbch.credit_tracker.service.indic.PhoneService2; -import ru.nbch.credit_tracker.service.signal.HitsService; -import ru.nbch.credit_tracker.service.signal.PhoneFidMapService; -import ru.nbch.credit_tracker.service.signal.UserPackageDao; -import ru.nbch.credit_tracker.service.xml.stax.StaxXmlProcessor; - -@Slf4j -@Service -@Deprecated -//todo оставил для временного подсмотреть на старую логику -public class SignalService { - - private final CreditTrackerSettings config; - private final HitsService hitsService; - private final UserPackageDao userPackageService; - private final PhoneFidMapService phoneFidMapService; - private final PhoneService2 phoneService2; - private final StaxXmlProcessor staxXmlProcessor; - private final int batchSize; - - public SignalService(CreditTrackerSettings config, - HitsService hitsService, - UserPackageDao userPackageService, - PhoneFidMapService phoneFidMapService, - PhoneService2 phoneService2, - StaxXmlProcessor staxXmlProcessor) { - this.config = config; - this.hitsService = hitsService; - this.userPackageService = userPackageService; - this.phoneFidMapService = phoneFidMapService; - this.phoneService2 = phoneService2; - this.staxXmlProcessor = staxXmlProcessor; - this.batchSize = config.getPipeline().subjectBatchSize(); - } - - - public void updatePackageStatus(Long packageId, Status status) { - userPackageService.updatePackageStatus(packageId, status); - } - - public void updateSubjectsErrors(Path filePath, Long packageId) { - log.info("Start updating subjects errors. PackageId: {}", packageId); - try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(filePath), 8 * 1024 * 1024)) { - staxXmlProcessor.read(in, MonitoringReportErrors.class, - request -> { - if (!request.getPersons().isEmpty()) { - List subjects = request.getPersons().stream().map(p -> { - log.warn("Ошибка при формировании субъекта. package_id = {}, id = {}. Описание: {}", packageId, p.getUid(), p.getValue()); - return PhoneFidMap.builder() - .id(p.getUid()) - .errorText(p.getValue()) - .build(); - }).toList(); - phoneService2.updateOnError(subjects); - log.trace("Updated subject's batch. Total count: {}. PackageId: {}", request.getPersons().size(), packageId); - request.getPersons().clear(); - } - }, - request -> request.getPersons().isEmpty(), - batchSize, "/Errors/p"); - } catch (IOException e) { - throw new RuntimeException("Error while parsing MonitoringReportErrors", e); - } - log.info("Subject's errors were updated. PackageId: {}", packageId); - } - - public void insertHits(List hits) { - hitsService.insertHits(hits); - } - public boolean hasNonNullfids(Long packageId) { - return phoneFidMapService.hasNonNullfids(packageId); - } - - public UserPackage findPackage(Long packageId) { - return userPackageService.findPackage(packageId); - } - - @Getter - @AllArgsConstructor - public static class UpdateResult { - private boolean updated; - private boolean noFidsFound; - } -} diff --git a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java index a295e6c..3aa67b9 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java @@ -1,7 +1,6 @@ package ru.nbch.credit_tracker.service; import java.util.List; -import java.util.concurrent.ExecutorService; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC; import org.springframework.scheduling.annotation.EnableScheduling; @@ -10,9 +9,7 @@ import org.springframework.stereotype.Service; import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings; import ru.nbch.credit_tracker.entities.app.UserPackage; import ru.nbch.credit_tracker.enums.Status; -import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper; import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper; -import ru.nbch.credit_tracker.service.signal.SignalRestService; import ru.nbch.credit_tracker.service.task.Pipeline; import ru.nbch.credit_tracker.service.task.PipelinePackageFabric; import ru.nbch.credit_tracker.service.task.PipelinePackageOrchestrator; @@ -27,33 +24,17 @@ import ru.nbch.credit_tracker.service.task.impl.PipelineMode; @Service @EnableScheduling public class UpdatingFlagsService { - - private final SignalService signalService; - private final SignalRestService signalRestService; - private final MonitoringErrorProcesingService monitoringErrorProcesingService; private final Long daysToUpdateFlags; - private final PhoneFidMapMapper phoneFidMapMapper; private final UserPackageMapper userPackageMapper; private final PipelinePackageFabric pipelinePackageManager; private final PipelinePackageOrchestrator pipelineOrchestrator; - private final ExecutorService pipelineExecutorService; - public UpdatingFlagsService(SignalService signalService, - SignalRestService signalRestService, - MonitoringErrorProcesingService monitoringErrorProcesingService, - CreditTrackerSettings config, - PhoneFidMapMapper phoneFidMapMapper, UserPackageMapper userPackageMapper, - PipelinePackageFabric pipelinePackageManager, PipelinePackageOrchestrator pipelineOrchestrator, - ExecutorService pipelineExecutorService) { - this.signalService = signalService; - this.signalRestService = signalRestService; - this.monitoringErrorProcesingService = monitoringErrorProcesingService; + public UpdatingFlagsService(CreditTrackerSettings config, UserPackageMapper userPackageMapper, + PipelinePackageFabric pipelinePackageManager, PipelinePackageOrchestrator pipelineOrchestrator) { this.daysToUpdateFlags = config.getDaysToUpdateFlags() != null ? config.getDaysToUpdateFlags() : 1; - this.phoneFidMapMapper = phoneFidMapMapper; this.userPackageMapper = userPackageMapper; this.pipelinePackageManager = pipelinePackageManager; this.pipelineOrchestrator = pipelineOrchestrator; - this.pipelineExecutorService = pipelineExecutorService; } @Scheduled(cron = "${ct.update-flags-cron-expression}") diff --git a/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService.java b/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService.java index c5c3b9e..d350e2c 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService.java @@ -1,7 +1,13 @@ package ru.nbch.credit_tracker.service.indic; -import java.sql.ResultSet; -import java.sql.SQLException; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.time.LocalDate; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -9,17 +15,10 @@ import lombok.Setter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.stereotype.Service; import ru.nbch.credit_tracker.mapper.indic.IndicFlagsMapper; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.time.LocalDate; -import java.util.*; -import ru.nbch.credit_tracker.model.SubjectProfile; - @Service public class FlagsService { @@ -84,25 +83,6 @@ public class FlagsService { return result; } - // TODO optimize - public void fillFlagsData(List subjects) { - List fids = subjects.stream().map(SubjectProfile::getFid).filter(Objects::nonNull).toList(); - Map fidsflagsDataMap = findFlags2(fids); - - fidsflagsDataMap.forEach((fid, data) -> { - subjects.stream().filter(s-> s.getFid() != null && s.getFid().equals(fid)).forEach(phoneFidMap -> { - -// phoneFidMap.setFlagDebt5000(data.getFlagDebt5000()); -// phoneFidMap.setFlag90days(data.getFlag90days()); -// phoneFidMap.setCalculatedAt(LocalDateTime.now()); - }); - }); - - subjects.stream().filter(s-> s.getFid() == null).forEach(phoneFidMap -> { -// phoneFidMap.setCalculatedAt(LocalDateTime.now()); - }); - } - /** * Выбирает данные из RU_PASTDUEARREAR и ищет по ним флаги просрочек * По FID из RU_PASTDUEARREAR выбираются все уникальные ACC_SERIAL_NUM с максимальной датой REPORTED_DT. @@ -218,219 +198,6 @@ public class FlagsService { log.debug("Complete calculating flag 90 days by RU_PAPAYMT"); } - public Map findFlags2(List fids) { - if (fids.isEmpty()) { - return new HashMap<>(); - } - List distinctFids = fids.stream() - .distinct() - .sorted(Comparator.naturalOrder()) - .toList(); - - log.debug("Fids count: {}", distinctFids.size()); - Map flags5000 = new HashMap<>(); - Map flags90DaysByPastDueArrear = new HashMap<>(); - Map flags90DaysByRuPaymt = new HashMap<>(); - findFlagsRuPastDueArrear2(distinctFids, flags5000, flags90DaysByPastDueArrear); - findFlagsRuPaymt2(distinctFids, flags90DaysByRuPaymt); - - Map result = new HashMap<>(); - fids.forEach(fid -> { - Integer flagDebt5000 = flags5000.get(fid); - if (flagDebt5000 == null) { - flagDebt5000 = 0; - } - - Integer flag90days = flags90DaysByPastDueArrear.get(fid); - if (flag90days == null || flag90days == 0) { - flag90days = flags90DaysByRuPaymt.get(fid); - if (flag90days == null) { - flag90days = 0; - } - } - result.put(fid, new FlagsService.FlagsData(flagDebt5000, flag90days)); - }); - - return result; - } - - /** - * Выбирает данные из RU_PASTDUEARREAR и ищет по ним флаги просрочек - * По FID из RU_PASTDUEARREAR выбираются все уникальные ACC_SERIAL_NUM с максимальной датой REPORTED_DT. - * Если по хотя бы одной такой записи AMT_PAST_DUE > 5000, то flag500 устанавливается в 1. - * Если ни по одному счёту условие не выполняется или счетов вообще не найдено, флаг = 0. - *

- * flag90Days = 1, если выполняется хотя бы одно из условий: - * В INDIC.RU_PASTDUEARREAR у данного FID есть запись с DAYS_PAST_DUE ≥ 90 и REPORTED_DT >= текущая дата – 12 месяцев. - * Если ни по одной записи условия не выполняются или записей вообще не найдено, флаг = 0. - * - * @param fids - отсортирован по возрастанию фидов - * @param flag5000Map - рещультирующая мапа флагов просрочек debt5000 - * @param flag90Days - рещультирующая мапа флагов просрочек 90_days - */ - private void findFlagsRuPastDueArrear2(List fids, Map flag5000Map, Map flag90Days) { - log.debug("Start calculating flag 5000 and 90 days by RU_PASTDUEARREAR"); - MapSqlParameterSource params = new MapSqlParameterSource(); - params.addValue("fids", fids); - - jdbcTemplate.query(SELECT_RU_PASDUEARREAR_DATA, params, (ResultSet rs) -> { - Integer currentFid = null; - BigInteger prevAccSerialNum = null; - boolean processed5000ForCurrentId = false; - boolean processed90DaysForCurrentId = false; - LocalDate yearAgo = LocalDate.now().minusYears(1); - - while (rs.next()) { - Integer fid = rs.getInt("FID"); - - // Переход к новому fid. Сброс состояния - if (!fid.equals(currentFid)) { - currentFid = fid; - prevAccSerialNum = null; - processed5000ForCurrentId = false; - processed90DaysForCurrentId = false; - - // Инициализируем значения по умолчанию - flag5000Map.putIfAbsent(fid, 0); - flag90Days.putIfAbsent(fid, 0); - } - - // Если для текущего FID уже обработали оба флага, пропускаем остальные записи - if (processed5000ForCurrentId && processed90DaysForCurrentId) { - continue; - } - - // Обработка флага 5000 - if (!processed5000ForCurrentId && flag5000Map.get(fid) == 0) { - BigInteger currentAccSerialNum = getBigInteger(rs, "ACC_SERIAL_NUM"); - BigDecimal amtPastDue = getBigDecimal(rs, "AMT_PAST_DUE"); - - if (prevAccSerialNum == null || !prevAccSerialNum.equals(currentAccSerialNum)) { - if (amtPastDue != null && amtPastDue.compareTo(BigDecimal.valueOf(5000)) >= 0) { - flag5000Map.put(fid, 1); - processed5000ForCurrentId = true; - } - prevAccSerialNum = currentAccSerialNum; - } - } - - // Обработка флага 90 дней - if (!processed90DaysForCurrentId) { - Integer currentFlag90 = flag90Days.get(fid); - - if (currentFlag90 != null && currentFlag90 == 1) { - processed90DaysForCurrentId = true; - continue; - } - - if (currentFlag90 == null || currentFlag90 == 0) { - BigInteger days = getBigInteger(rs, "DAYS_PAST_DUE"); - LocalDate reportedDate = rs.getObject("REPORTED_DT", LocalDate.class); - - if (days != null) { - boolean has90daysFlag = days.compareTo(BigInteger.valueOf(90)) >= 0 - && reportedDate != null && !reportedDate.isBefore(yearAgo); - - if (has90daysFlag) { - flag90Days.put(fid, 1); - processed90DaysForCurrentId = true; - } else { - flag90Days.put(fid, 0); - } - } else { - flag90Days.put(fid, 0); - } - } - } - } - return null; - }); - log.debug("Complete calculating flag 5000 and 90 days by RU_PASTDUEARREAR"); - } - - /** - * Выбирает данные из RU_PAYMT и ищет по ним флаги просрочек 90Days - *

- * flag90Days = 1, если выполняется хотя бы одно из условий: - * В INDIC.RU_PAYMT у данного FID есть запись с DAYS_PAST_DUE ≥ 90 и REPORTED_DT >= текущая дата – 12 месяцев. - * Если ни по одной записи условия не выполняются или записей вообще не найдено, флаг = 0. - * - * @param fids - отсортирован по возрастанию фидов - * @param flag90Days - рещультирующая мапа флагов просрочек 90_days - */ - private void findFlagsRuPaymt2(List fids, Map flag90Days) { - log.debug("Start calculating flag 90 days by RU_PAPAYMT"); - LocalDate yearAgo = LocalDate.now().minusYears(1); - MapSqlParameterSource params = new MapSqlParameterSource(); - params.addValue("fids", fids); - params.addValue("reportedDate", yearAgo); - jdbcTemplate.query(SELECT_RU_PAYMT_DATA, params, rs -> { - Integer currentFid = null; - boolean processed90DaysForCurrentId = false; - - while (rs.next()) { - Integer fid = rs.getInt("FID"); - - // Переход к новому fid. Сброс состояния - if (!fid.equals(currentFid)) { - currentFid = fid; - processed90DaysForCurrentId = false; - - // Инициализируем значения по умолчанию - flag90Days.putIfAbsent(fid, 0); - } - - // Обработка флага 90 дней - if (!processed90DaysForCurrentId) { - Integer currentFlag90 = flag90Days.get(fid); - - if (currentFlag90 != null && currentFlag90 == 1) { - processed90DaysForCurrentId = true; - continue; - } - - if (currentFlag90 == null || currentFlag90 == 0) { - BigInteger days = getBigInteger(rs, "DAYS_PAST_DUE"); - LocalDate date = rs.getObject("REPORTED_DT", LocalDate.class); - - if (days != null) { - boolean has90daysFlag = days.compareTo(BigInteger.valueOf(90)) >= 0 - && date != null && !date.isBefore(yearAgo); - - if (has90daysFlag) { - flag90Days.put(fid, 1); - processed90DaysForCurrentId = true; - } else { - flag90Days.put(fid, 0); - } - } else { - flag90Days.put(fid, 0); - } - } - } - } - return null; - }); - log.debug("Complete calculating flag 90 days by RU_PAPAYMT"); - } - - - private BigInteger getBigInteger(ResultSet rs, String columnName) { - try { - String value = rs.getString(columnName); - return value != null ? new BigInteger(value) : null; - } catch (SQLException e) { - return null; - } - } - - private BigDecimal getBigDecimal(ResultSet rs, String columnName) { - try { - return rs.getBigDecimal(columnName); - } catch (SQLException e) { - return null; - } - } @Getter @Setter diff --git a/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService.java b/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService.java deleted file mode 100644 index bcda9e4..0000000 --- a/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService.java +++ /dev/null @@ -1,269 +0,0 @@ -package ru.nbch.credit_tracker.service.indic; - -import java.time.LocalDate; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; -import ru.nbch.credit_tracker.entities.app.PhoneFidMap; -import ru.nbch.credit_tracker.entities.indic.Name; -import ru.nbch.credit_tracker.repository.PhoneRepository; - -@Slf4j -@Service -@Deprecated -//todo оставил для временного подсмотреть на старую логику -public class PhoneService { - - private final PhoneRepository phoneRepository; - - public PhoneService(PhoneRepository phoneRepository) { - this.phoneRepository = phoneRepository; - } - - /** - * Ищет фиды по номерам телефона - * - * @return Map: key - fid; value - {@link PhoneFidMap} - */ - public Map defineFidByPhone(List subjects) { - List phones = subjects.stream(). - map(subject -> "9" + subject.getPhone()) - .toList(); - - subjects.sort( - Comparator.comparing( - PhoneFidMap::getPhone, - Comparator.naturalOrder() - ) - ); - - List phonesByFid = phoneRepository.findFidsLong(phones); - - log.debug("Start merging fids"); - Map phoneFidMap = merger(subjects, phonesByFid); - log.debug("End merging fids"); - - return phoneFidMap; - } - - private Map merger(List subjects, List phonesByFid) { - Map phoneFidMap = new HashMap<>(); - - if (phonesByFid.isEmpty()) { - return phoneFidMap; - } - - int index = 0; - for (PhoneFidMap subject : subjects) { - Long normalizedPhone = Long.parseLong("9" + subject.getPhone()); - - while (index < phonesByFid.size()) { - PhoneRepository.FidsDataLong currentFidData = phonesByFid.get(index); - - if (currentFidData.getPhone() < normalizedPhone) { - index++; - continue; - } - - if (currentFidData.getPhone().equals(normalizedPhone)) { - phoneFidMap.put(currentFidData.getFid(), subject); - index++; - break; - } - - break; - } - if (index >= phonesByFid.size()) { - break; - } - } - - return phoneFidMap; - } - - public void defineFidsAndNameByPhone2(List subjects) { - List phones = subjects.stream(). - map(subject -> "9" + subject.getPhone()) - .toList(); - - subjects.sort( - Comparator.comparing( - PhoneFidMap::getPhone, - Comparator.naturalOrder() - ) - ); - - List phonesByFid = phoneRepository.findFidsWithName(phones); - - log.debug("Start merging fids and names"); - Map> fidFidsDataMap = phonesByFid.stream() - .collect(Collectors.groupingBy(PhoneRepository.FidsDataWithName::getFid)); - - Map phoneToFidsMap = new HashMap<>(); - for (PhoneRepository.FidsDataWithName fidsData : phonesByFid) { - if (!phoneToFidsMap.containsKey(fidsData.getPhone())) { - phoneToFidsMap.put(fidsData.getPhone(), fidsData.getFid()); - } - } - - for (PhoneFidMap phoneFid : subjects) { - String phone = "9" + phoneFid.getPhone(); - Integer fid = phoneToFidsMap.get(phone); - if (fid != null) { - phoneFid.setFid(fid); - - List fidsDataWithNames = fidFidsDataMap.get(fid); - if (fidsDataWithNames != null) { - PhoneRepository.FidsDataWithName nameData = defineNameData(fidsDataWithNames); - - if (nameData != null) { - phoneFid.setFirstName(nameData.getFirstName()); - phoneFid.setMiddleName(nameData.getMiddleName()); - phoneFid.setLastName(nameData.getLastName()); - phoneFid.setBirthDate(nameData.getBirthDate()); - phoneFid.setFileSinceDate(nameData.getFileSinceDateName()); - } - } - phoneToFidsMap.remove(phone); - } - } - log.debug("End merging fids and names"); - } - - @Deprecated - private PhoneRepository.FidsDataWithName defineNameData(List dataList) { - PhoneRepository.FidsDataWithName currentData = null; - for (PhoneRepository.FidsDataWithName fidsData : dataList) { - if (currentData == null) { - currentData = fidsData; - continue; - } - LocalDate currentDate = currentData.getFileSinceDateName(); - LocalDate newDate = fidsData.getFileSinceDateName(); - if (currentDate != null && newDate != null) { - if (currentDate.isBefore(newDate)) { - currentData = fidsData; - } - } else if (currentDate == null) { - currentData = fidsData; - } - } - return currentData; - } - - - - private Name defineNameDataV2(List dataList) { - Name currentData = null; - for (Name fidsData : dataList) { - if (currentData == null) { - currentData = fidsData; - continue; - } - LocalDate currentDate = currentData.getFileSinceDate(); - LocalDate newDate = fidsData.getFileSinceDate(); - if (currentDate != null && newDate != null) { - if (currentDate.isBefore(newDate)) { - currentData = fidsData; - } - } else if (currentDate == null) { - currentData = fidsData; - } - } - return currentData; - } - - private Map merger2(List subjects, List phonesByFid) { - Map phoneFidMap = new HashMap<>(); - Iterator iterator = phonesByFid.iterator(); - String lastUniquePhone = null; - PhoneRepository.FidsData fidsData = null; - for (PhoneFidMap phoneFid : subjects) { - String normalizedPhone = 9 + phoneFid.getPhone(); - while (iterator.hasNext()) { - fidsData = iterator.next(); - if (StringUtils.isNotEmpty(lastUniquePhone) && lastUniquePhone.equals(fidsData.getPhone())) { - iterator.remove(); - continue; - } - if (fidsData.getPhone().equals(normalizedPhone) || normalizedPhone.equals(lastUniquePhone)) { - lastUniquePhone = fidsData.getPhone(); - iterator.remove(); - break; - } - lastUniquePhone = fidsData.getPhone(); - break; - } - if (fidsData != null && normalizedPhone.equals(lastUniquePhone)) { - phoneFidMap.put(fidsData.getFid(), phoneFid); - } - } - return phoneFidMap; - } - - /** - * Ищет фиды по номерам телефона. Обогащает {@link PhoneFidMap} для найденных фидов данными из Name и фидом. - * @return Map: key - FID, value - {@link PhoneFidMap} - */ - public Map defineFidsAndNameByPhone(List subjects) { - Map phoneFidMap = new HashMap<>(); - - List phones = subjects.stream(). - map(subject -> "9" + subject.getPhone()) - .toList(); - - subjects.sort( - Comparator.comparing( - PhoneFidMap::getPhone, - Comparator.naturalOrder() - ) - ); - - List phonesByFid = phoneRepository.findFidsWithName(phones); - - log.debug("Start merging fids and names"); - Map> fidFidsDataMap = phonesByFid.stream() - .collect(Collectors.groupingBy(PhoneRepository.FidsDataWithName::getFid)); - - Map phoneToFidsMap = new HashMap<>(); - for (PhoneRepository.FidsDataWithName fidsData : phonesByFid) { - if (!phoneToFidsMap.containsKey(fidsData.getPhone())) { - phoneToFidsMap.put(fidsData.getPhone(), fidsData.getFid()); - } - } - - for (PhoneFidMap phoneFid : subjects) { - String phone = "9" + phoneFid.getPhone(); - Integer fid = phoneToFidsMap.get(phone); - if (fid != null) { - phoneFid.setFid(fid); - - List fidsDataWithNames = fidFidsDataMap.get(fid); - if (fidsDataWithNames != null) { - PhoneRepository.FidsDataWithName nameData = defineNameData(fidsDataWithNames); - - if (nameData != null) { - phoneFid.setFirstName(nameData.getFirstName()); - phoneFid.setMiddleName(nameData.getMiddleName()); - phoneFid.setLastName(nameData.getLastName()); - phoneFid.setBirthDate(nameData.getBirthDate()); - phoneFid.setFileSinceDate(nameData.getFileSinceDateName()); - } - - fidFidsDataMap.remove(fid); - } - phoneFidMap.put(fid, phoneFid); // TODO можно перезатереть запись если у разных phone нашлись одинаковые фиды - phoneToFidsMap.remove(phone); - } - } - log.debug("End merging fids and names"); - - return phoneFidMap; - } -} diff --git a/src/main/java/ru/nbch/credit_tracker/service/signal/PhoneFidMapService.java b/src/main/java/ru/nbch/credit_tracker/service/signal/PhoneFidMapService.java deleted file mode 100644 index 642c23c..0000000 --- a/src/main/java/ru/nbch/credit_tracker/service/signal/PhoneFidMapService.java +++ /dev/null @@ -1,93 +0,0 @@ -package ru.nbch.credit_tracker.service.signal; - -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import org.apache.ibatis.session.ExecutorType; -import org.apache.ibatis.session.SqlSession; -import org.apache.ibatis.session.SqlSessionFactory; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.stereotype.Service; -import ru.nbch.credit_tracker.entities.app.PhoneFidMap; -import ru.nbch.credit_tracker.entities.indic.Name; -import ru.nbch.credit_tracker.entities.user_request.monitoring_request.Subject; -import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper; -import ru.nbch.credit_tracker.model.SubjectProfile; -import ru.nbch.credit_tracker.utils.CTUtil; - -@Service -public class PhoneFidMapService { - - private final PhoneFidMapMapper mapper; - private final SqlSessionFactory sqlSessionFactory; - - public PhoneFidMapService(PhoneFidMapMapper mapper, - @Qualifier("sqlSessionSignal") SqlSessionFactory sqlSessionFactory) { - this.mapper = mapper; - this.sqlSessionFactory = sqlSessionFactory; - } - - @Deprecated - public void registerSubjects(List subjects, Long packageId) { - mapper.registerSubjects(subjects, packageId); - } - - /** - * Регистрирует в базе список субъектов переданных в запросе - * - * @param subjects - список субъектов - * @param packageId - уникальный идентификатор пакета - */ - public void register(List subjects, Map nameByPhone, Long packageId) { - List phoneFidMaps = subjects.stream().map(subjectProfile -> { - Integer fid = Optional - .ofNullable(nameByPhone.get(CTUtil.normalizePhoneNumber(subjectProfile.getPhone()))) - .map(Name::getFid) - .orElse(null); - - return PhoneFidMap.builder() - .phone(subjectProfile.getPhone()) - .subjectId(subjectProfile.getIdentifier()) - .packageId(packageId) - .fid(fid) - .build(); - } - ).toList(); - mapper.register(phoneFidMaps); - } - - public List findFullPhoneFidMap(Long packageId, int offset, int limit) { - return mapper.findFullPhoneFidMap(packageId, offset, limit); - } - - public void updatePhoneFidMaps(Collection subjects) { - mapper.updatePhoneFidMaps(subjects); - } - - public void updatePhoneFidMaps2(Collection subjects) { - final int batchSize = 1000; - try (SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH)) { - PhoneFidMapMapper mapper = session.getMapper(PhoneFidMapMapper.class); - int i = 0; - for (PhoneFidMap s : subjects) { - mapper.updateOne(s); - if (++i % batchSize == 0) session.flushStatements(); - } - session.flushStatements(); - session.commit(); - } - } - - public void updatePhoneFidMapsErrors(List subjects) { - mapper.updatePhoneFidMapsErrors(subjects); - } - - public PhoneFidMap findPhoneFidMapById(Long id) { - return mapper.findPhoneFidMapById(id); - } - - public boolean hasNonNullfids(Long packageId) { - return mapper.hasNonNullFids(packageId); - } -} diff --git a/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java b/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java index 79c298e..36e1c60 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java @@ -28,7 +28,6 @@ import ru.nbch.credit_tracker.entities.external_response.errors.SgnlReport; import ru.nbch.credit_tracker.entities.external_response.list_package.SgnlReportDeleted; import ru.nbch.credit_tracker.entities.external_response.monitoring_report_file.SgnlReportMonitorigSetupError; import ru.nbch.credit_tracker.entities.external_response.online_report.SgnlOnlineReport; -import ru.nbch.credit_tracker.service.SignalService; import ru.nbch.credit_tracker.service.xml.jaxb.IXmlProcessor; import ru.nbch.credit_tracker.service.xml.stax.StaxXmlProcessor; import ru.nbch.credit_tracker.utils.ZipUtils; @@ -47,7 +46,6 @@ public class SignalRestService { private final RestTemplate restTemplate; private final IXmlProcessor xmlProcessor; private final StaxXmlProcessor staxProcessor; - private final SignalService signalService; private final String authToken; private final CreditTrackerSettings config; @@ -56,12 +54,10 @@ public class SignalRestService { public SignalRestService(@Qualifier(value = "restTemplate") RestTemplate restTemplate, IXmlProcessor xmlProcessor, StaxXmlProcessor staxProcessor, - SignalService signalService, CreditTrackerSettings config) throws Exception { this.restTemplate = restTemplate; this.xmlProcessor = xmlProcessor; this.staxProcessor = staxProcessor; - this.signalService = signalService; this.config = config; this.authToken = buildToken(config.getSignalsToken(), config.getSignalsuser()); } diff --git a/src/test/java/ru/nbch/credit_tracker/service/PhoneService2Test.java b/src/test/java/ru/nbch/credit_tracker/service/PhoneService2Test.java index 361da6f..53c44c7 100644 --- a/src/test/java/ru/nbch/credit_tracker/service/PhoneService2Test.java +++ b/src/test/java/ru/nbch/credit_tracker/service/PhoneService2Test.java @@ -4,8 +4,6 @@ import java.time.LocalDate; import java.util.ArrayList; import java.util.Comparator; import java.util.List; -import java.util.Map; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import static org.mockito.ArgumentMatchers.any; @@ -14,7 +12,6 @@ import static org.mockito.Mockito.when; import org.mockito.junit.jupiter.MockitoExtension; import ru.nbch.credit_tracker.entities.app.PhoneFidMap; import ru.nbch.credit_tracker.repository.PhoneRepository; -import ru.nbch.credit_tracker.service.indic.PhoneService; @ExtendWith(MockitoExtension.class) public class PhoneService2Test { @@ -24,7 +21,7 @@ public class PhoneService2Test { @Test public void defineFidByPhoneTest() { - PhoneService phoneService = new PhoneService(phoneRepository); +// PhoneService phoneService = new PhoneService(phoneRepository); fidsDataWithEqualSinceDt.sort(byDbOrder); when(phoneRepository.findFids(any())).thenReturn(fidsDataWithEqualSinceDt); @@ -36,17 +33,18 @@ public class PhoneService2Test { phoneFidMap.add(PhoneFidMap.builder().phone("1114").build()); phoneFidMap.add(PhoneFidMap.builder().phone("1115").build()); - Map res = phoneService.defineFidByPhone(phoneFidMap); - Assertions.assertEquals(4, res.size()); - Assertions.assertEquals("1111", res.get(124).getPhone()); - Assertions.assertEquals("1112", res.get(125).getPhone()); - Assertions.assertEquals("1114", res.get(126).getPhone()); - Assertions.assertEquals("1115", res.get(127).getPhone()); + //todo +// Map res = phoneService.defineFidByPhone(phoneFidMap); +// Assertions.assertEquals(4, res.size()); +// Assertions.assertEquals("1111", res.get(124).getPhone()); +// Assertions.assertEquals("1112", res.get(125).getPhone()); +// Assertions.assertEquals("1114", res.get(126).getPhone()); +// Assertions.assertEquals("1115", res.get(127).getPhone()); } @Test public void defineFidByPhoneTest2() { - PhoneService phoneService = new PhoneService(phoneRepository); +// PhoneService phoneService = new PhoneService(phoneRepository); fidsDataWithEqualSinceDt.sort(byDbOrder); when(phoneRepository.findFids(any())).thenReturn(fidsDataWithEqualSinceDt2); @@ -58,16 +56,17 @@ public class PhoneService2Test { phoneFidMap.add(PhoneFidMap.builder().phone("1114").build()); phoneFidMap.add(PhoneFidMap.builder().phone("1115").build()); - Map res = phoneService.defineFidByPhone(phoneFidMap); - Assertions.assertEquals(3, res.size()); - Assertions.assertEquals("1112", res.get(125).getPhone()); - Assertions.assertEquals("1114", res.get(126).getPhone()); - Assertions.assertEquals("1115", res.get(127).getPhone()); + //todo +// Map res = phoneService.defineFidByPhone(phoneFidMap); +// Assertions.assertEquals(3, res.size()); +// Assertions.assertEquals("1112", res.get(125).getPhone()); +// Assertions.assertEquals("1114", res.get(126).getPhone()); +// Assertions.assertEquals("1115", res.get(127).getPhone()); } @Test public void defineFidByPhoneTest3() { - PhoneService phoneService = new PhoneService(phoneRepository); +// PhoneService phoneService = new PhoneService(phoneRepository); fidsDataWithEqualSinceDt.sort(byDbOrder); when(phoneRepository.findFids(any())).thenReturn(fidsDataWithEqualSinceDt3); @@ -79,10 +78,11 @@ public class PhoneService2Test { phoneFidMap.add(PhoneFidMap.builder().phone("1114").build()); phoneFidMap.add(PhoneFidMap.builder().phone("1115").build()); - Map res = phoneService.defineFidByPhone(phoneFidMap); - Assertions.assertEquals(2, res.size()); - Assertions.assertEquals("1114", res.get(126).getPhone()); - Assertions.assertEquals("1115", res.get(127).getPhone()); + //todo +// Map res = phoneService.defineFidByPhone(phoneFidMap); +// Assertions.assertEquals(2, res.size()); +// Assertions.assertEquals("1114", res.get(126).getPhone()); +// Assertions.assertEquals("1115", res.get(127).getPhone()); } private final List fidsDataWithEqualSinceDt = new ArrayList<>( @@ -120,10 +120,10 @@ public class PhoneService2Test { @Test void defineFidsAndNameByPhoneTest() { - PhoneService phoneService = new PhoneService(phoneRepository); +// PhoneService phoneService = new PhoneService(phoneRepository); // fidsDataWithNameEqualSinceDt.sort(byDbOrderWithName); - when(phoneRepository.findFidsWithName(any())).thenReturn(fidsDataWithNameEqualSinceDt); +// when(phoneRepository.findFidsWithName(any())).thenReturn(fidsDataWithNameEqualSinceDt); List phoneFidMap = new ArrayList<>(); phoneFidMap.add(PhoneFidMap.builder().phone("1111").build()); @@ -132,17 +132,18 @@ public class PhoneService2Test { phoneFidMap.add(PhoneFidMap.builder().phone("1114").build()); phoneFidMap.add(PhoneFidMap.builder().phone("1115").build()); - Map res = phoneService.defineFidsAndNameByPhone(phoneFidMap); - Assertions.assertEquals(4, res.size()); - Assertions.assertEquals("1111", res.get(124).getPhone()); - Assertions.assertEquals("1112", res.get(125).getPhone()); - Assertions.assertEquals("1114", res.get(126).getPhone()); - Assertions.assertEquals("1115", res.get(127).getPhone()); - - Assertions.assertEquals("found124", res.get(124).getFirstName()); - Assertions.assertNull(res.get(125).getFirstName()); - Assertions.assertEquals("found126", res.get(126).getFirstName()); - Assertions.assertNull(res.get(128)); + //todo +// Map res = phoneService.defineFidsAndNameByPhone(phoneFidMap); +// Assertions.assertEquals(4, res.size()); +// Assertions.assertEquals("1111", res.get(124).getPhone()); +// Assertions.assertEquals("1112", res.get(125).getPhone()); +// Assertions.assertEquals("1114", res.get(126).getPhone()); +// Assertions.assertEquals("1115", res.get(127).getPhone()); +// +// Assertions.assertEquals("found124", res.get(124).getFirstName()); +// Assertions.assertNull(res.get(125).getFirstName()); +// Assertions.assertEquals("found126", res.get(126).getFirstName()); +// Assertions.assertNull(res.get(128)); } private final List fidsDataWithNameEqualSinceDt = new ArrayList<>( diff --git a/src/test/java/ru/nbch/credit_tracker/service/PhoneServiceTest.java b/src/test/java/ru/nbch/credit_tracker/service/PhoneServiceTest.java index ecc3df0..94cbb0e 100644 --- a/src/test/java/ru/nbch/credit_tracker/service/PhoneServiceTest.java +++ b/src/test/java/ru/nbch/credit_tracker/service/PhoneServiceTest.java @@ -1,22 +1,17 @@ package ru.nbch.credit_tracker.service; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; -import ru.nbch.credit_tracker.entities.app.PhoneFidMap; -import ru.nbch.credit_tracker.repository.PhoneRepository; -import ru.nbch.credit_tracker.service.indic.PhoneService; - import java.time.LocalDate; import java.util.ArrayList; import java.util.Comparator; import java.util.List; -import java.util.Map; - +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import static org.mockito.ArgumentMatchers.any; +import org.mockito.Mock; import static org.mockito.Mockito.when; +import org.mockito.junit.jupiter.MockitoExtension; +import ru.nbch.credit_tracker.entities.app.PhoneFidMap; +import ru.nbch.credit_tracker.repository.PhoneRepository; @ExtendWith(MockitoExtension.class) public class PhoneServiceTest { @@ -26,7 +21,7 @@ public class PhoneServiceTest { @Test public void defineFidByPhoneTest() { - PhoneService phoneService = new PhoneService(phoneRepository); +// PhoneService phoneService = new PhoneService(phoneRepository); fidsDataWithEqualSinceDt.sort(byDbOrder); when(phoneRepository.findFidsLong(any())).thenReturn(fidsDataWithEqualSinceDt); @@ -38,17 +33,18 @@ public class PhoneServiceTest { phoneFidMap.add(PhoneFidMap.builder().phone("1114").build()); phoneFidMap.add(PhoneFidMap.builder().phone("1115").build()); - Map res = phoneService.defineFidByPhone(phoneFidMap); - Assertions.assertEquals(4, res.size()); - Assertions.assertEquals("1111", res.get(124).getPhone()); - Assertions.assertEquals("1112", res.get(125).getPhone()); - Assertions.assertEquals("1114", res.get(126).getPhone()); - Assertions.assertEquals("1115", res.get(127).getPhone()); + //todo +// Map res = phoneService.defineFidByPhone(phoneFidMap); +// Assertions.assertEquals(4, res.size()); +// Assertions.assertEquals("1111", res.get(124).getPhone()); +// Assertions.assertEquals("1112", res.get(125).getPhone()); +// Assertions.assertEquals("1114", res.get(126).getPhone()); +// Assertions.assertEquals("1115", res.get(127).getPhone()); } @Test public void defineFidByPhoneTest2() { - PhoneService phoneService = new PhoneService(phoneRepository); +// PhoneService phoneService = new PhoneService(phoneRepository); fidsDataWithEqualSinceDt.sort(byDbOrder); when(phoneRepository.findFidsLong(any())).thenReturn(fidsDataWithEqualSinceDt2); @@ -60,16 +56,17 @@ public class PhoneServiceTest { phoneFidMap.add(PhoneFidMap.builder().phone("1114").build()); phoneFidMap.add(PhoneFidMap.builder().phone("1115").build()); - Map res = phoneService.defineFidByPhone(phoneFidMap); - Assertions.assertEquals(3, res.size()); - Assertions.assertEquals("1112", res.get(125).getPhone()); - Assertions.assertEquals("1114", res.get(126).getPhone()); - Assertions.assertEquals("1115", res.get(127).getPhone()); + //todo +// Map res = phoneService.defineFidByPhone(phoneFidMap); +// Assertions.assertEquals(3, res.size()); +// Assertions.assertEquals("1112", res.get(125).getPhone()); +// Assertions.assertEquals("1114", res.get(126).getPhone()); +// Assertions.assertEquals("1115", res.get(127).getPhone()); } @Test public void defineFidByPhoneTest3() { - PhoneService phoneService = new PhoneService(phoneRepository); +// PhoneService phoneService = new PhoneService(phoneRepository); fidsDataWithEqualSinceDt.sort(byDbOrder); when(phoneRepository.findFidsLong(any())).thenReturn(fidsDataWithEqualSinceDt3); @@ -81,10 +78,11 @@ public class PhoneServiceTest { phoneFidMap.add(PhoneFidMap.builder().phone("1114").build()); phoneFidMap.add(PhoneFidMap.builder().phone("1115").build()); - Map res = phoneService.defineFidByPhone(phoneFidMap); - Assertions.assertEquals(2, res.size()); - Assertions.assertEquals("1114", res.get(126).getPhone()); - Assertions.assertEquals("1115", res.get(127).getPhone()); + //todo +// Map res = phoneService.defineFidByPhone(phoneFidMap); +// Assertions.assertEquals(2, res.size()); +// Assertions.assertEquals("1114", res.get(126).getPhone()); +// Assertions.assertEquals("1115", res.get(127).getPhone()); } private final List fidsDataWithEqualSinceDt = new ArrayList<>(