From b05b48f8002e46b9e09e5efeacc4eddf9e51c167 Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Thu, 23 Apr 2026 15:49:36 +0300 Subject: [PATCH] Get rid of unused mappers and mapper's methods --- .../mapper/indic/PersonMapper.java | 4 +- .../mapper/signal/FlagDetailMapper.java | 14 -- .../signal/PackagesRecordsJoinMapper.java | 11 -- .../mapper/signal/PackagesRecordsMapper.java | 11 +- .../mapper/signal/PhonesMapMapper.java | 20 ++- .../mapper/signal/UserPackageMapper.java | 30 +++- .../repository/PhoneRepository.java | 159 ------------------ .../service/indic/FlagsService2.java | 19 +-- .../service/indic/PhoneService2.java | 43 +---- .../mode/monitoring/MonitoringService.java | 32 ++-- .../service/signal/PackageRecordsService.java | 101 ++++------- .../mapper/signal/FlagDetailMapper.xml | 72 -------- .../signal/PackageRecordsJoinMapper.xml | 48 ------ .../mybatis/mapper/signal/PhonesMapMapper.xml | 11 -- .../service/PhoneService2Test.java | 130 ++++++++------ .../service/PhoneServiceTest.java | 120 ------------- 16 files changed, 189 insertions(+), 636 deletions(-) delete mode 100644 src/main/java/ru/nbch/credit_tracker/mapper/signal/FlagDetailMapper.java delete mode 100644 src/main/java/ru/nbch/credit_tracker/mapper/signal/PackagesRecordsJoinMapper.java delete mode 100644 src/main/java/ru/nbch/credit_tracker/repository/PhoneRepository.java delete mode 100644 src/main/resources/mybatis/mapper/signal/FlagDetailMapper.xml delete mode 100644 src/main/resources/mybatis/mapper/signal/PackageRecordsJoinMapper.xml delete mode 100644 src/test/java/ru/nbch/credit_tracker/service/PhoneServiceTest.java diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/indic/PersonMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/indic/PersonMapper.java index 77a888d..a4389f8 100644 --- a/src/main/java/ru/nbch/credit_tracker/mapper/indic/PersonMapper.java +++ b/src/main/java/ru/nbch/credit_tracker/mapper/indic/PersonMapper.java @@ -1,15 +1,17 @@ package ru.nbch.credit_tracker.mapper.indic; -import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import ru.nbch.credit_tracker.entities.indic.Id; import ru.nbch.credit_tracker.entities.indic.Name; +import java.util.List; + @Mapper public interface PersonMapper { List findNameData(@Param("phones") List phones); + List findNameDataByFids(@Param("fids") List fids); List findPassportData(@Param("fids") List fids); diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/FlagDetailMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/FlagDetailMapper.java deleted file mode 100644 index f912043..0000000 --- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/FlagDetailMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package ru.nbch.credit_tracker.mapper.signal; - -import java.util.List; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import ru.nbch.credit_tracker.entities.app.FlagDetail; - -@Mapper -public interface FlagDetailMapper { - void registerCalcFlags(@Param("json") String json); - void updateCalcFlags(@Param("json") String json); - FlagDetail getByMapId(@Param("mapId") Long mapId); - void deleteFlags(@Param("mapIds") List mapIds); -} diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/PackagesRecordsJoinMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/PackagesRecordsJoinMapper.java deleted file mode 100644 index eec65aa..0000000 --- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/PackagesRecordsJoinMapper.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.nbch.credit_tracker.mapper.signal; - -import java.util.List; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import ru.nbch.credit_tracker.entities.app.PackageRecordWithPhone; - -@Mapper -public interface PackagesRecordsJoinMapper { - List findPackagesRecordsJoinPage(@Param("packageId") Long packageId, @Param("limit") Integer limit, @Param("offset") Integer offset); -} diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/PackagesRecordsMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/PackagesRecordsMapper.java index 81a1a6d..cd518dd 100644 --- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/PackagesRecordsMapper.java +++ b/src/main/java/ru/nbch/credit_tracker/mapper/signal/PackagesRecordsMapper.java @@ -1,16 +1,23 @@ package ru.nbch.credit_tracker.mapper.signal; -import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap; +import java.util.List; + @Mapper public interface PackagesRecordsMapper { void setErrorJson(@Param("json") String json); + List registerJson(@Param("json") String json); - List findFullPhoneFidMap(@Param("packageId") Long packageId, @Param("limit") int limit, @Param("offset") int offset); + + List findFullPhoneFidMap(@Param("packageId") Long packageId, + @Param("limit") int limit, + @Param("offset") int offset); + List uniquePackageIdByPhones(@Param("json") String json); + Long deleteByPackageId(@Param("packageId") Long id); PackagesRecordsMap findById(Long id); diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/PhonesMapMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/PhonesMapMapper.java index a04cf57..42e2ccf 100644 --- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/PhonesMapMapper.java +++ b/src/main/java/ru/nbch/credit_tracker/mapper/signal/PhonesMapMapper.java @@ -1,26 +1,40 @@ package ru.nbch.credit_tracker.mapper.signal; -import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import ru.nbch.credit_tracker.entities.app.PhonesMap; +import java.util.List; + @Mapper public interface PhonesMapMapper { + List getCachedData(@Param("phones") List phones); - List searchedAtLessThan(@Param("daysCount") Integer daysCount, @Param("batchSize") int batchSize, @Param("lastId") Long lastId); + + List searchedAtLessThan(@Param("daysCount") Integer daysCount, + @Param("batchSize") int batchSize, + @Param("lastId") Long lastId); + PhonesMap findByPhone(@Param("phone") Long phone); + List findEligibleForFlagsUpdate(@Param("lastId") Long lastId, @Param("interval") Integer interval, @Param("batchSize") Integer batchSize); + List findEligibleForFlagsInsert(@Param("lastId") Long lastId, @Param("batchSize") Integer batchSize); + void updateIdCachedData(@Param("json") String json); + void updateNameCachedData(@Param("json") String json); + void updateFlagCachedData(@Param("json") String json); + void resetFidAndPD(@Param("json") String json); + void updateSearchedAt(@Param("json") String json); + void registerJson(@Param("json") String json); - void setFidJson(@Param("json") String json); + void deleteUnusedPhones(); } diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java index 696a79e..21df118 100644 --- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java +++ b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java @@ -1,38 +1,52 @@ package ru.nbch.credit_tracker.mapper.signal; -import java.time.LocalDateTime; -import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import ru.nbch.credit_tracker.entities.app.UserPackage; +import java.time.LocalDateTime; +import java.util.List; + @Mapper public interface UserPackageMapper { - boolean isPackageNotUnique(@Param("userId") String userId, @Param("packageName") String packageName); + boolean isPackageNotUnique(@Param("userId") String userId, + @Param("packageName") String packageName); - void deletePackageById(@Param("id") Long id, @Param("status") String newStatus, @Param("deactivatedAt") LocalDateTime deactivatedAt); + void deletePackageById(@Param("id") Long id, + @Param("status") String newStatus, + @Param("deactivatedAt") LocalDateTime deactivatedAt); Long insertPackage(@Param("userPackage") UserPackage userPackage); - void updatePackageStatus(@Param("packageId") Long packageId, @Param("status") String status); + void updatePackageStatus(@Param("packageId") Long packageId, + @Param("status") String status); - void updatePackageLastDownloadedReport(@Param("id") Long id, @Param("fileName") String fileName); + void updatePackageLastDownloadedReport(@Param("id") Long id, + @Param("fileName") String fileName); + + void updatePackageOnMonitoringSuccess(@Param("id") Long id, + @Param("monitoringAt") LocalDateTime monitoringAt); - void updatePackageOnMonitoringSuccess(@Param("id") Long id, @Param("monitoringAt") LocalDateTime monitoringAt); void updateNoFidMonitoring(@Param("id") Long id); + void setFidChanged(@Param("packageIds") List id); UserPackage findPackage(@Param("id") Long id); + List findForRepeatedPackages(); - List findUserPackages(@Param("userId") String userId, @Param("statuses") List status); + List findUserPackages(@Param("userId") String userId, + @Param("statuses") List status); List findAllPackagesByStatus(@Param("statuses") String... statuses); List findAllPackagesByUserId(@Param("userId") String userId); + UserPackage findByPackageName(@Param("packageName") String packageName); + List findOnMonitoringPackages(); + List findByMemberCodeAndPackageName(@Param("memberCode") String memberCode, @Param("packageName") String packageName); diff --git a/src/main/java/ru/nbch/credit_tracker/repository/PhoneRepository.java b/src/main/java/ru/nbch/credit_tracker/repository/PhoneRepository.java deleted file mode 100644 index a7602a9..0000000 --- a/src/main/java/ru/nbch/credit_tracker/repository/PhoneRepository.java +++ /dev/null @@ -1,159 +0,0 @@ -package ru.nbch.credit_tracker.repository; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.time.LocalDate; -import java.util.List; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -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.Repository; -import ru.nbch.credit_tracker.entities.indic.Name; - -@Repository -public class PhoneRepository { - - private static final String SELCT_FIDS = """ - SELECT - pn.number, - pn.fid, - pn.file_since_dt - FROM PHONE_NORM pn - JOIN (SELECT DISTINCT fid FROM NAME) nf - ON nf.fid = pn.fid - WHERE number in (:phones) - ORDER BY - pn.number ASC, - pn.file_since_dt DESC, - pn.fid DESC - WITH UR - """; - - private static final String SELECT_FIDS_WITH_NAME = """ - SELECT - pn.number, - pn.fid, - pn.file_since_dt, - nf.first, - nf.middle, - nf.name_1, - nf.birth_dt, - nf.file_since_dt as file_since_dt_name - FROM PHONE_NORM pn - JOIN NAME nf - ON nf.fid = pn.fid - WHERE number in (:phones) WITH UR - """; - - private static final String SELECT_NAME_BY_FIDS = """ - SELECT - fid, - first, - middle, - name_1, - birth_dt, - file_since_dt as file_since_dt_name - FROM NAME - WHERE fid in (:fids) WITH UR - """; - - private final NamedParameterJdbcTemplate jdbcTemplate; - - public PhoneRepository(@Qualifier("jdbcTemplateIndic") NamedParameterJdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - - - public List findFids(List phones) { - MapSqlParameterSource params = new MapSqlParameterSource(); - params.addValue("phones", phones); - - return jdbcTemplate.query(SELCT_FIDS, params, (rs, rowNum) -> - new PhoneRepository.FidsData(rs.getInt("fid"), rs.getString("number"), rs.getObject("file_since_dt", LocalDate.class)) - ); - } - - public List findNameByPhones(List phones) { - MapSqlParameterSource params = new MapSqlParameterSource(); - params.addValue("phones", phones); - - return jdbcTemplate.query(SELECT_FIDS_WITH_NAME, params, (rs, rowNum) -> - Name.builder() - .fid(rs.getInt("FID")) - .number(rs.getString("NUMBER")) - .fileSinceDate(getLocalDate(rs, "FILE_SINCE_DT_NAME")) - .first(rs.getString("FIRST")) - .middle(rs.getString("MIDDLE")) - .last(rs.getString("NAME_1")) - .birthDate(getLocalDate(rs, "BIRTH_DT")) - .build()); - } - - public List findNameByFids(List fids) { - MapSqlParameterSource params = new MapSqlParameterSource(); - params.addValue("fids", fids); - - return jdbcTemplate.query(SELECT_NAME_BY_FIDS, params, (rs, rowNum) -> - Name.builder() - .fid(rs.getInt("FID")) - .fileSinceDate(getLocalDate(rs, "FILE_SINCE_DT_NAME")) - .first(rs.getString("FIRST")) - .middle(rs.getString("MIDDLE")) - .last(rs.getString("NAME_1")) - .birthDate(getLocalDate(rs, "BIRTH_DT")) - .build()); - } - - private static LocalDate getLocalDate(ResultSet rs, String col) throws SQLException { - java.sql.Date d = rs.getDate(col); - return d != null ? d.toLocalDate() : null; - } - - public List findFidsLong(List phones) { - MapSqlParameterSource params = new MapSqlParameterSource(); - params.addValue("phones", phones); - - return jdbcTemplate.query(SELCT_FIDS, params, (rs, rowNum) -> - new PhoneRepository.FidsDataLong(rs.getInt("fid"), Long.parseLong(rs.getString("number")), rs.getObject("file_since_dt", LocalDate.class)) - ); - } - - @Getter - @Setter - @AllArgsConstructor - @NoArgsConstructor - public static class FidsData { - private Integer fid; - private String phone; - private LocalDate fileSinceDate; - } - - @Getter - @Setter - @AllArgsConstructor - @NoArgsConstructor - public static class FidsDataWithName { - private Integer fid; - private String phone; - private LocalDate fileSinceDate; - private String firstName; - private String lastName; - private String middleName; - private LocalDate birthDate; - private LocalDate fileSinceDateName; - } - - @Getter - @Setter - @AllArgsConstructor - @NoArgsConstructor - public static class FidsDataLong { - private Integer fid; - private Long phone; - private LocalDate fileSinceDate; - } -} diff --git a/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService2.java b/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService2.java index 3cb0af6..87b50f8 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService2.java +++ b/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService2.java @@ -1,29 +1,22 @@ package ru.nbch.credit_tracker.service.indic; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import ru.nbch.credit_tracker.entities.indic.PaymentsFlag; +import ru.nbch.credit_tracker.mapper.indic.IndicFlagsMapper; + import java.time.LocalDate; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import ru.nbch.credit_tracker.entities.indic.PaymentsFlag; -import ru.nbch.credit_tracker.mapper.indic.IndicFlagsMapper; -import ru.nbch.credit_tracker.mapper.signal.FlagDetailMapper; @Slf4j @Service public class FlagsService2 { private final IndicFlagsMapper flagsMapper; - private final FlagDetailMapper flagDetailMapper; - private final ObjectMapper entityToJsonMapper; - public FlagsService2(IndicFlagsMapper flagsMapper, - FlagDetailMapper flagDetailMapper, - ObjectMapper entityToJsonMapper) { + public FlagsService2(IndicFlagsMapper flagsMapper) { this.flagsMapper = flagsMapper; - this.flagDetailMapper = flagDetailMapper; - this.entityToJsonMapper = entityToJsonMapper; } public Map findFlagsDebt5000(List fids) { diff --git a/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService2.java b/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService2.java index 3cce926..4f486e3 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService2.java +++ b/src/main/java/ru/nbch/credit_tracker/service/indic/PhoneService2.java @@ -1,42 +1,30 @@ package ru.nbch.credit_tracker.service.indic; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap; -import ru.nbch.credit_tracker.entities.app.PhonesMap; import ru.nbch.credit_tracker.entities.indic.Name; -import ru.nbch.credit_tracker.mapper.indic.PersonMapper; -import ru.nbch.credit_tracker.mapper.signal.FlagDetailMapper; import ru.nbch.credit_tracker.mapper.signal.PackagesRecordsMapper; -import ru.nbch.credit_tracker.repository.PhoneRepository; + +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; @Slf4j @Service public class PhoneService2 { - private final PhoneRepository phoneRepository; private final PackagesRecordsMapper phoneFidMapMapper; - private final PersonMapper personMapper; - private final FlagDetailMapper flagDetailMapper; private final ObjectMapper entityToJsonMapper; private final Comparator byDateThenIdNullSafe = Comparator.comparing(Name::getFileSinceDate, Comparator.nullsFirst(Comparator.naturalOrder())) .thenComparing(Name::getFid); - public PhoneService2(PhoneRepository phoneRepository, - PackagesRecordsMapper phoneFidMapMapper, - PersonMapper personMapper, - FlagDetailMapper flagDetailMapper, + public PhoneService2(PackagesRecordsMapper phoneFidMapMapper, ObjectMapper entityToJsonMapper) { - this.phoneRepository = phoneRepository; this.phoneFidMapMapper = phoneFidMapMapper; - this.personMapper = personMapper; - this.flagDetailMapper = flagDetailMapper; this.entityToJsonMapper = entityToJsonMapper; } @@ -56,23 +44,6 @@ public class PhoneService2 { } } - - public void updateFid(List subjects) { - try { - //регистрация в signals_phone_fid_map - String json = entityToJsonMapper.writeValueAsString(subjects.stream() - .map(phoneFidMap -> new HashMap() {{ - put("id", phoneFidMap.getId()); - put("fid", phoneFidMap.getFid()); - put("searched_at", phoneFidMap.getCalculatedAt()); - }}).toList()); - //fixme теперь апдейтится(insert) signals_phones_map -// phoneFidMapMapper.setFidJson(json); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - } - public void updateOnError(List subjects) { try { String json = entityToJsonMapper.writeValueAsString(subjects.stream() @@ -86,8 +57,4 @@ public class PhoneService2 { } } - public List pageByPackageId(Long packageId, Integer limit, Integer offset) { - return phoneFidMapMapper.findFullPhoneFidMap(packageId, limit, offset); - } - } diff --git a/src/main/java/ru/nbch/credit_tracker/service/mode/monitoring/MonitoringService.java b/src/main/java/ru/nbch/credit_tracker/service/mode/monitoring/MonitoringService.java index 7fef55c..5f9eca5 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/mode/monitoring/MonitoringService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/mode/monitoring/MonitoringService.java @@ -1,21 +1,5 @@ package ru.nbch.credit_tracker.service.mode.monitoring; -import java.io.BufferedInputStream; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.slf4j.MDC; @@ -36,7 +20,6 @@ import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response. import ru.nbch.credit_tracker.entities.user_response.monitoring_signal_response.Signals; 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.UserPackageMapper; import ru.nbch.credit_tracker.service.signal.HitsService; import ru.nbch.credit_tracker.service.signal.PackageRecordsService; @@ -48,6 +31,18 @@ import ru.nbch.credit_tracker.utils.CtFileUtils; import ru.nbch.credit_tracker.utils.ZipUtils; import ru.nbch.credit_tracker.utils.error.ExceptionUtils; +import java.io.BufferedInputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.LocalDateTime; +import java.util.*; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; + /** * Сервис периодического опроса официального сервиса сигналов на наличие новых отчетов по пакетам находящимся в статусе ON_MONITORING */ @@ -56,7 +51,6 @@ import ru.nbch.credit_tracker.utils.error.ExceptionUtils; public class MonitoringService { private final SignalRestService signalRestService; - private final FlagDetailMapper flagDetailMapper; private final UserPackageMapper userPackageMapper; private final StaxXmlProcessor staxXmlProcessor; private final HitsService hitsService; @@ -64,14 +58,12 @@ public class MonitoringService { private final CreditTrackerSettings config; public MonitoringService(SignalRestService signalRestService, - FlagDetailMapper flagDetailMapper, UserPackageMapper userPackageMapper, StaxXmlProcessor staxXmlProcessor, HitsService hitsService, PackageRecordsService packageRecordsService, CreditTrackerSettings config) { this.signalRestService = signalRestService; - this.flagDetailMapper = flagDetailMapper; this.userPackageMapper = userPackageMapper; this.staxXmlProcessor = staxXmlProcessor; this.hitsService = hitsService; diff --git a/src/main/java/ru/nbch/credit_tracker/service/signal/PackageRecordsService.java b/src/main/java/ru/nbch/credit_tracker/service/signal/PackageRecordsService.java index 42e6363..63949d5 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/signal/PackageRecordsService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/signal/PackageRecordsService.java @@ -2,23 +2,22 @@ package ru.nbch.credit_tracker.service.signal; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap; +import ru.nbch.credit_tracker.entities.app.PhonesMap; +import ru.nbch.credit_tracker.mapper.signal.PackagesRecordsMapper; +import ru.nbch.credit_tracker.mapper.signal.PhonesMapMapper; +import ru.nbch.credit_tracker.model.FlagData; +import ru.nbch.credit_tracker.model.IdData; +import ru.nbch.credit_tracker.model.SubjectProfile; + import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import ru.nbch.credit_tracker.entities.app.PackageRecordWithPhone; -import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap; -import ru.nbch.credit_tracker.entities.app.PhonesMap; -import ru.nbch.credit_tracker.mapper.signal.PackagesRecordsJoinMapper; -import ru.nbch.credit_tracker.mapper.signal.PackagesRecordsMapper; -import ru.nbch.credit_tracker.mapper.signal.PhonesMapMapper; -import ru.nbch.credit_tracker.model.FlagData; -import ru.nbch.credit_tracker.model.IdData; -import ru.nbch.credit_tracker.model.SubjectProfile; /** * Сервис предназначен для сохранения и поиска субъектов по пакету @@ -32,27 +31,20 @@ public class PackageRecordsService { private final PhonesMapMapper phonesMapMapper; private final PackagesRecordsMapper packagesRecordsMapper; - private final PackagesRecordsJoinMapper packagesRecordsJoinMapper; private final ObjectMapper entityToJsonMapper; public PackageRecordsService(PhonesMapMapper phonesMapMapper, PackagesRecordsMapper packagesRecordsMapper, - PackagesRecordsJoinMapper packagesRecordsJoinMapper, ObjectMapper entityToJsonMapper) { this.phonesMapMapper = phonesMapMapper; this.packagesRecordsMapper = packagesRecordsMapper; - this.packagesRecordsJoinMapper = packagesRecordsJoinMapper; this.entityToJsonMapper = entityToJsonMapper; } - public List pageCachedPhonesByPackageId(Long packageId, Integer limit, Integer offset) { - return packagesRecordsJoinMapper.findPackagesRecordsJoinPage(packageId, limit, offset); - } - public Map findCachedPhones(List subjects) { List phones = subjects.stream() - .map(SubjectProfile::getPhone) - .toList(); + .map(SubjectProfile::getPhone) + .toList(); List phonesMaps = phonesMapMapper.getCachedData(phones); return phonesMaps.stream().collect(Collectors.toMap(PhonesMap::getPhone, Function.identity())); } @@ -64,15 +56,15 @@ public class PackageRecordsService { public void saveToCache(List phonesMaps) { try { String json = entityToJsonMapper.writeValueAsString(phonesMaps.stream() - .filter(Objects::nonNull) - .map(phoneMap -> new HashMap() {{ - put("fid", phoneMap.getFid()); - put("phone", phoneMap.getPhone()); - put("name_1", phoneMap.getName1()); - put("first", phoneMap.getFirst()); - put("middle", phoneMap.getMiddle()); - put("birth_dt", phoneMap.getBirthDt()); - }}).toList()); + .filter(Objects::nonNull) + .map(phoneMap -> new HashMap() {{ + put("fid", phoneMap.getFid()); + put("phone", phoneMap.getPhone()); + put("name_1", phoneMap.getName1()); + put("first", phoneMap.getFirst()); + put("middle", phoneMap.getMiddle()); + put("birth_dt", phoneMap.getBirthDt()); + }}).toList()); phonesMapMapper.registerJson(json); } catch (JsonProcessingException e) { throw new RuntimeException(e); @@ -82,44 +74,25 @@ public class PackageRecordsService { public List selectUniquePackageIds(List phones) { try { String json = entityToJsonMapper.writeValueAsString(phones.stream() - .filter(Objects::nonNull) - .map(phone -> new HashMap() {{ - put("phone", phone); - }}).toList()); + .filter(Objects::nonNull) + .map(phone -> new HashMap() {{ + put("phone", phone); + }}).toList()); return packagesRecordsMapper.uniquePackageIdByPhones(json); } catch (JsonProcessingException e) { throw new RuntimeException(e); } } - public void updateNameCache(List phonesMaps) { - try { - String json = entityToJsonMapper.writeValueAsString(phonesMaps.stream() - .filter(Objects::nonNull) - .map(phoneMap -> new HashMap() {{ - put("fid", phoneMap.getFid()); - put("phone", phoneMap.getPhone()); - put("name_1", phoneMap.getName1()); - put("first", phoneMap.getFirst()); - put("middle", phoneMap.getMiddle()); - put("birth_dt", phoneMap.getBirthDt()); - }}).toList()); - //todo update json -// phonesMapMapper.registerJson(json); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - } - public void updateIdCache(List idData) { try { String json = entityToJsonMapper.writeValueAsString(idData.stream() - .filter(Objects::nonNull) - .map(phoneMap -> new HashMap() {{ - put("phone", phoneMap.getPhone()); - put("ser_num", phoneMap.getSerNum()); - put("id_type", phoneMap.getIdType()); - }}).toList()); + .filter(Objects::nonNull) + .map(phoneMap -> new HashMap() {{ + put("phone", phoneMap.getPhone()); + put("ser_num", phoneMap.getSerNum()); + put("id_type", phoneMap.getIdType()); + }}).toList()); phonesMapMapper.updateIdCachedData(json); } catch (JsonProcessingException e) { throw new RuntimeException(e); @@ -129,12 +102,12 @@ public class PackageRecordsService { public void updateFlagCache(List flagData) { try { String json = entityToJsonMapper.writeValueAsString(flagData.stream() - .filter(Objects::nonNull) - .map(phoneMap -> new HashMap() {{ - put("phone", phoneMap.getPhone()); - put("flag_debt5000", phoneMap.getFlag_debt5000()); - put("flag_90_12", phoneMap.getFlag_90_12()); - }}).toList()); + .filter(Objects::nonNull) + .map(phoneMap -> new HashMap() {{ + put("phone", phoneMap.getPhone()); + put("flag_debt5000", phoneMap.getFlag_debt5000()); + put("flag_90_12", phoneMap.getFlag_90_12()); + }}).toList()); phonesMapMapper.updateFlagCachedData(json); } catch (JsonProcessingException e) { throw new RuntimeException(e); diff --git a/src/main/resources/mybatis/mapper/signal/FlagDetailMapper.xml b/src/main/resources/mybatis/mapper/signal/FlagDetailMapper.xml deleted file mode 100644 index f08d22e..0000000 --- a/src/main/resources/mybatis/mapper/signal/FlagDetailMapper.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - INSERT INTO signals_flags - (map_id, subject_id, fid, phone, flag_debt5000, flag_90_12, calculated_at) - SELECT map_id, subject_id, fid, phone, flag_debt5000, flag_90_12, calculated_at - FROM json_to_recordset(#{json}::json) AS t( - map_id bigint, - subject_id varchar(255), - fid int, - phone text, - flag_debt5000 smallint, - flag_90_12 smallint, - calculated_at timestamp) - - - - INSERT INTO signals_flags - (map_id, subject_id, fid, phone, flag_debt5000, flag_90_12, calculated_at) - SELECT map_id, fid, flag_debt5000, flag_90_12, calculated_at - FROM json_to_recordset(#{json}::json) AS t( - map_id bigint, - subject_id varchar(255), - fid int, - phone text, - flag_debt5000 smallint, - flag_90_12 smallint, - calculated_at timestamp) - ON CONFLICT (map_id) DO UPDATE - SET subject_id = EXCLUDED.subject_id, - fid = EXCLUDED.fid, - phone = EXCLUDED.phone, - flag_debt5000 = EXCLUDED.flag_debt5000, - flag_90_12 = EXCLUDED.flag_90_12, - calculated_at = EXCLUDED.calculated_at; - - - - DELETE FROM signals_flags - WHERE map_id IN - - #{mapId} - - - - - \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/signal/PackageRecordsJoinMapper.xml b/src/main/resources/mybatis/mapper/signal/PackageRecordsJoinMapper.xml deleted file mode 100644 index fda3809..0000000 --- a/src/main/resources/mybatis/mapper/signal/PackageRecordsJoinMapper.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/signal/PhonesMapMapper.xml b/src/main/resources/mybatis/mapper/signal/PhonesMapMapper.xml index 5403041..5a0d1c1 100644 --- a/src/main/resources/mybatis/mapper/signal/PhonesMapMapper.xml +++ b/src/main/resources/mybatis/mapper/signal/PhonesMapMapper.xml @@ -234,17 +234,6 @@ AND dst.id in (select id from to_lock); - - update signals_phones_map dst - set fid = src.fid, - searched_at = now() - FROM json_to_recordset(#{json}::json) AS src( - id bigint, - fid int - ) - where dst.id = src.id; - - update signals_phones_map dst 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 3297743..3c16044 100644 --- a/src/test/java/ru/nbch/credit_tracker/service/PhoneService2Test.java +++ b/src/test/java/ru/nbch/credit_tracker/service/PhoneService2Test.java @@ -1,30 +1,31 @@ package ru.nbch.credit_tracker.service; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; +import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap; + import java.time.LocalDate; import java.util.ArrayList; import java.util.Comparator; import java.util.List; -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.PackagesRecordsMap; -import ru.nbch.credit_tracker.repository.PhoneRepository; @ExtendWith(MockitoExtension.class) public class PhoneService2Test { - @Mock - PhoneRepository phoneRepository; +// @Mock +// PhoneRepository phoneRepository; @Test public void defineFidByPhoneTest() { // PhoneService phoneService = new PhoneService(phoneRepository); fidsDataWithEqualSinceDt.sort(byDbOrder); - when(phoneRepository.findFids(any())).thenReturn(fidsDataWithEqualSinceDt); +// when(findFids(any())).thenReturn(fidsDataWithEqualSinceDt); List phoneFidMap = new ArrayList<>(); phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1111L).build()); @@ -47,7 +48,7 @@ public class PhoneService2Test { // PhoneService phoneService = new PhoneService(phoneRepository); fidsDataWithEqualSinceDt.sort(byDbOrder); - when(phoneRepository.findFids(any())).thenReturn(fidsDataWithEqualSinceDt2); +// when(findFids(any())).thenReturn(fidsDataWithEqualSinceDt2); List phoneFidMap = new ArrayList<>(); phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1111L).build()); @@ -69,7 +70,7 @@ public class PhoneService2Test { // PhoneService phoneService = new PhoneService(phoneRepository); fidsDataWithEqualSinceDt.sort(byDbOrder); - when(phoneRepository.findFids(any())).thenReturn(fidsDataWithEqualSinceDt3); +// when(findFids(any())).thenReturn(fidsDataWithEqualSinceDt3); List phoneFidMap = new ArrayList<>(); phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1111L).build()); @@ -85,45 +86,45 @@ public class PhoneService2Test { // Assertions.assertEquals("1115", res.get(127).getPhone()); } - private final List fidsDataWithEqualSinceDt = new ArrayList<>( + private final List fidsDataWithEqualSinceDt = new ArrayList<>( List.of( - new PhoneRepository.FidsData(123, "91111", LocalDate.of(2025, 9, 10)), - new PhoneRepository.FidsData(124, "91111", LocalDate.of(2025, 9, 10)), - new PhoneRepository.FidsData(125, "91112", LocalDate.of(2024, 10, 10)), - new PhoneRepository.FidsData(126, "91114", LocalDate.of(2024, 10, 11)), - new PhoneRepository.FidsData(127, "91115", LocalDate.of(2025, 9, 11)), - new PhoneRepository.FidsData(128, "91115", LocalDate.of(2025, 9, 10)) + new FidsData(123, "91111", LocalDate.of(2025, 9, 10)), + new FidsData(124, "91111", LocalDate.of(2025, 9, 10)), + new FidsData(125, "91112", LocalDate.of(2024, 10, 10)), + new FidsData(126, "91114", LocalDate.of(2024, 10, 11)), + new FidsData(127, "91115", LocalDate.of(2025, 9, 11)), + new FidsData(128, "91115", LocalDate.of(2025, 9, 10)) ) ); - private final List fidsDataWithEqualSinceDt2 = new ArrayList<>( + private final List fidsDataWithEqualSinceDt2 = new ArrayList<>( List.of( - new PhoneRepository.FidsData(125, "91112", LocalDate.of(2024, 10, 10)), - new PhoneRepository.FidsData(126, "91114", LocalDate.of(2024, 10, 11)), - new PhoneRepository.FidsData(127, "91115", LocalDate.of(2025, 9, 11)), - new PhoneRepository.FidsData(128, "91115", LocalDate.of(2025, 9, 10)) + new FidsData(125, "91112", LocalDate.of(2024, 10, 10)), + new FidsData(126, "91114", LocalDate.of(2024, 10, 11)), + new FidsData(127, "91115", LocalDate.of(2025, 9, 11)), + new FidsData(128, "91115", LocalDate.of(2025, 9, 10)) ) ); - private final List fidsDataWithEqualSinceDt3 = new ArrayList<>( + private final List fidsDataWithEqualSinceDt3 = new ArrayList<>( List.of( - new PhoneRepository.FidsData(126, "91114", LocalDate.of(2024, 10, 11)), - new PhoneRepository.FidsData(127, "91115", LocalDate.of(2025, 9, 11)), - new PhoneRepository.FidsData(128, "91115", LocalDate.of(2025, 9, 10)) + new FidsData(126, "91114", LocalDate.of(2024, 10, 11)), + new FidsData(127, "91115", LocalDate.of(2025, 9, 11)), + new FidsData(128, "91115", LocalDate.of(2025, 9, 10)) ) ); - Comparator byDbOrder = - Comparator.comparing(PhoneRepository.FidsData::getPhone, Comparator.nullsFirst(Comparator.naturalOrder())) // pn.number ASC - .thenComparing(PhoneRepository.FidsData::getFileSinceDate, Comparator.nullsLast(Comparator.reverseOrder())) // file_since_dt DESC - .thenComparing(PhoneRepository.FidsData::getFid, Comparator.reverseOrder()); + Comparator byDbOrder = + Comparator.comparing(FidsData::getPhone, Comparator.nullsFirst(Comparator.naturalOrder())) // pn.number ASC + .thenComparing(FidsData::getFileSinceDate, Comparator.nullsLast(Comparator.reverseOrder())) // file_since_dt DESC + .thenComparing(FidsData::getFid, Comparator.reverseOrder()); @Test void defineFidsAndNameByPhoneTest() { // PhoneService phoneService = new PhoneService(phoneRepository); // fidsDataWithNameEqualSinceDt.sort(byDbOrderWithName); -// when(phoneRepository.findFidsWithName(any())).thenReturn(fidsDataWithNameEqualSinceDt); +// when(findFidsWithName(any())).thenReturn(fidsDataWithNameEqualSinceDt); List phoneFidMap = new ArrayList<>(); phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1111L).build()); @@ -146,35 +147,60 @@ public class PhoneService2Test { // Assertions.assertNull(res.get(128)); } - private final List fidsDataWithNameEqualSinceDt = new ArrayList<>( + private final List fidsDataWithNameEqualSinceDt = new ArrayList<>( List.of( - new PhoneRepository.FidsDataWithName(123, "91111", LocalDate.of(2025, 9, 10), "skip", null, null, null, null), - new PhoneRepository.FidsDataWithName(123, "91111", LocalDate.of(2025, 9, 10), "skip", null, null, null, LocalDate.of(2025, 10, 9)), - new PhoneRepository.FidsDataWithName(124, "91111", LocalDate.of(2025, 9, 9), "found124", null, null, null, LocalDate.of(2025, 9, 9)), - new PhoneRepository.FidsDataWithName(124, "91111", LocalDate.of(2025, 9, 10), "skip124", null, null, null, LocalDate.of(2025, 9, 8)), - new PhoneRepository.FidsDataWithName(124, "91111", LocalDate.of(2025, 9, 9), "skip124", null, null, null, LocalDate.of(2025, 9, 8)), - new PhoneRepository.FidsDataWithName(124, "91111", LocalDate.of(2025, 9, 10), "found124", null, null, null, LocalDate.of(2025, 9, 9)), + new FidsDataWithName(123, "91111", LocalDate.of(2025, 9, 10), "skip", null, null, null, null), + new FidsDataWithName(123, "91111", LocalDate.of(2025, 9, 10), "skip", null, null, null, LocalDate.of(2025, 10, 9)), + new FidsDataWithName(124, "91111", LocalDate.of(2025, 9, 9), "found124", null, null, null, LocalDate.of(2025, 9, 9)), + new FidsDataWithName(124, "91111", LocalDate.of(2025, 9, 10), "skip124", null, null, null, LocalDate.of(2025, 9, 8)), + new FidsDataWithName(124, "91111", LocalDate.of(2025, 9, 9), "skip124", null, null, null, LocalDate.of(2025, 9, 8)), + new FidsDataWithName(124, "91111", LocalDate.of(2025, 9, 10), "found124", null, null, null, LocalDate.of(2025, 9, 9)), - new PhoneRepository.FidsDataWithName(125, "91112", LocalDate.of(2024, 10, 10), null, null, null, null, null), + new FidsDataWithName(125, "91112", LocalDate.of(2024, 10, 10), null, null, null, null, null), - new PhoneRepository.FidsDataWithName(126, "91114", LocalDate.of(2024, 10, 11), "skip126", null, null, null, null), - new PhoneRepository.FidsDataWithName(126, "91114", LocalDate.of(2024, 10, 11), "found126", null, null, null, LocalDate.of(2025, 9, 9)), - new PhoneRepository.FidsDataWithName(126, "91114", LocalDate.of(2024, 10, 5), "found126", null, null, null, LocalDate.of(2025, 9, 9)), - new PhoneRepository.FidsDataWithName(126, "91114", LocalDate.of(2024, 10, 5), "skip126", null, null, null, null), + new FidsDataWithName(126, "91114", LocalDate.of(2024, 10, 11), "skip126", null, null, null, null), + new FidsDataWithName(126, "91114", LocalDate.of(2024, 10, 11), "found126", null, null, null, LocalDate.of(2025, 9, 9)), + new FidsDataWithName(126, "91114", LocalDate.of(2024, 10, 5), "found126", null, null, null, LocalDate.of(2025, 9, 9)), + new FidsDataWithName(126, "91114", LocalDate.of(2024, 10, 5), "skip126", null, null, null, null), - new PhoneRepository.FidsDataWithName(127, "91115", LocalDate.of(2025, 9, 11), null, null, null, null, null), - new PhoneRepository.FidsDataWithName(128, "91115", LocalDate.of(2025, 9, 10), "found128", null, null, null, LocalDate.of(2025, 9, 9)) + new FidsDataWithName(127, "91115", LocalDate.of(2025, 9, 11), null, null, null, null, null), + new FidsDataWithName(128, "91115", LocalDate.of(2025, 9, 10), "found128", null, null, null, LocalDate.of(2025, 9, 9)) ) ); //todo понять зачем в тесте использовался этот компоратор -// Comparator byDbOrderWithName = -// Comparator.comparing(PhoneRepository.FidsDataWithName::getPhone, Comparator.nullsFirst(Comparator.naturalOrder())) // pn.number ASC -// .thenComparing(PhoneRepository.FidsDataWithName::getFileSinceDate, Comparator.nullsLast(Comparator.reverseOrder())) // file_since_dt DESC -// .thenComparing(PhoneRepository.FidsDataWithName::getFid, Comparator.reverseOrder()); +// Comparator byDbOrderWithName = +// Comparator.comparing(FidsDataWithName::getPhone, Comparator.nullsFirst(Comparator.naturalOrder())) // pn.number ASC +// .thenComparing(FidsDataWithName::getFileSinceDate, Comparator.nullsLast(Comparator.reverseOrder())) // file_since_dt DESC +// .thenComparing(FidsDataWithName::getFid, Comparator.reverseOrder()); + @Getter + @Setter + @AllArgsConstructor + @NoArgsConstructor + public static class FidsData { + private Integer fid; + private String phone; + private LocalDate fileSinceDate; + } + + @Getter + @Setter + @AllArgsConstructor + @NoArgsConstructor + public static class FidsDataWithName { + private Integer fid; + private String phone; + private LocalDate fileSinceDate; + private String firstName; + private String lastName; + private String middleName; + private LocalDate birthDate; + private LocalDate fileSinceDateName; + } } + diff --git a/src/test/java/ru/nbch/credit_tracker/service/PhoneServiceTest.java b/src/test/java/ru/nbch/credit_tracker/service/PhoneServiceTest.java deleted file mode 100644 index 4dc0695..0000000 --- a/src/test/java/ru/nbch/credit_tracker/service/PhoneServiceTest.java +++ /dev/null @@ -1,120 +0,0 @@ -package ru.nbch.credit_tracker.service; - -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -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.PackagesRecordsMap; -import ru.nbch.credit_tracker.repository.PhoneRepository; - -@ExtendWith(MockitoExtension.class) -public class PhoneServiceTest { - - @Mock - PhoneRepository phoneRepository; - - @Test - public void defineFidByPhoneTest() { -// PhoneService phoneService = new PhoneService(phoneRepository); - - fidsDataWithEqualSinceDt.sort(byDbOrder); - when(phoneRepository.findFidsLong(any())).thenReturn(fidsDataWithEqualSinceDt); - - List phoneFidMap = new ArrayList<>(); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1111L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1112L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1113L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1114L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1115L).build()); - - //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); - - fidsDataWithEqualSinceDt.sort(byDbOrder); - when(phoneRepository.findFidsLong(any())).thenReturn(fidsDataWithEqualSinceDt2); - - List phoneFidMap = new ArrayList<>(); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1111L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1112L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1113L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1114L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1115L).build()); - - //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); - - fidsDataWithEqualSinceDt.sort(byDbOrder); - when(phoneRepository.findFidsLong(any())).thenReturn(fidsDataWithEqualSinceDt3); - - List phoneFidMap = new ArrayList<>(); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1111L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1112L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1113L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1114L).build()); - phoneFidMap.add(PackagesRecordsMap.builder().phone_l(1115L).build()); - - //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<>( - List.of( - new PhoneRepository.FidsDataLong(123, 91111L, LocalDate.of(2025, 9, 10)), - new PhoneRepository.FidsDataLong(124, 91111L, LocalDate.of(2025, 9, 10)), - new PhoneRepository.FidsDataLong(125, 91112L, LocalDate.of(2024, 10, 10)), - new PhoneRepository.FidsDataLong(126, 91114L, LocalDate.of(2024, 10, 11)), - new PhoneRepository.FidsDataLong(127, 91115L, LocalDate.of(2025, 9, 11)), - new PhoneRepository.FidsDataLong(128, 91115L, LocalDate.of(2025, 9, 10)) - ) - ); - - private final List fidsDataWithEqualSinceDt2 = new ArrayList<>( - List.of( - new PhoneRepository.FidsDataLong(125, 91112L, LocalDate.of(2024, 10, 10)), - new PhoneRepository.FidsDataLong(126, 91114L, LocalDate.of(2024, 10, 11)), - new PhoneRepository.FidsDataLong(127, 91115L, LocalDate.of(2025, 9, 11)), - new PhoneRepository.FidsDataLong(128, 91115L, LocalDate.of(2025, 9, 10)) - ) - ); - - private final List fidsDataWithEqualSinceDt3 = new ArrayList<>( - List.of( - new PhoneRepository.FidsDataLong(126, 91114L, LocalDate.of(2024, 10, 11)), - new PhoneRepository.FidsDataLong(127, 91115L, LocalDate.of(2025, 9, 11)), - new PhoneRepository.FidsDataLong(128, 91115L, LocalDate.of(2025, 9, 10)) - ) - ); - - Comparator byDbOrder = - Comparator.comparing(PhoneRepository.FidsDataLong::getPhone, Comparator.nullsFirst(Comparator.naturalOrder())) // pn.number ASC - .thenComparing(PhoneRepository.FidsDataLong::getFileSinceDate, Comparator.nullsLast(Comparator.reverseOrder())) // file_since_dt DESC - .thenComparing(PhoneRepository.FidsDataLong::getFid, Comparator.reverseOrder()); -}