Get rid of unused mappers and mapper's methods
This commit is contained in:
parent
e9092e63db
commit
b05b48f800
16 changed files with 189 additions and 636 deletions
|
|
@ -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<Name> findNameData(@Param("phones") List<String> phones);
|
||||
|
||||
List<Name> findNameDataByFids(@Param("fids") List<Integer> fids);
|
||||
|
||||
List<Id> findPassportData(@Param("fids") List<Integer> fids);
|
||||
|
|
|
|||
|
|
@ -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<Long> mapIds);
|
||||
}
|
||||
|
|
@ -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<PackageRecordWithPhone> findPackagesRecordsJoinPage(@Param("packageId") Long packageId, @Param("limit") Integer limit, @Param("offset") Integer offset);
|
||||
}
|
||||
|
|
@ -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<Long> registerJson(@Param("json") String json);
|
||||
List<PackagesRecordsMap> findFullPhoneFidMap(@Param("packageId") Long packageId, @Param("limit") int limit, @Param("offset") int offset);
|
||||
|
||||
List<PackagesRecordsMap> findFullPhoneFidMap(@Param("packageId") Long packageId,
|
||||
@Param("limit") int limit,
|
||||
@Param("offset") int offset);
|
||||
|
||||
List<Long> uniquePackageIdByPhones(@Param("json") String json);
|
||||
|
||||
Long deleteByPackageId(@Param("packageId") Long id);
|
||||
|
||||
PackagesRecordsMap findById(Long id);
|
||||
|
|
|
|||
|
|
@ -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<PhonesMap> getCachedData(@Param("phones") List<Long> phones);
|
||||
List<PhonesMap> searchedAtLessThan(@Param("daysCount") Integer daysCount, @Param("batchSize") int batchSize, @Param("lastId") Long lastId);
|
||||
|
||||
List<PhonesMap> searchedAtLessThan(@Param("daysCount") Integer daysCount,
|
||||
@Param("batchSize") int batchSize,
|
||||
@Param("lastId") Long lastId);
|
||||
|
||||
PhonesMap findByPhone(@Param("phone") Long phone);
|
||||
|
||||
List<PhonesMap> findEligibleForFlagsUpdate(@Param("lastId") Long lastId,
|
||||
@Param("interval") Integer interval,
|
||||
@Param("batchSize") Integer batchSize);
|
||||
|
||||
List<PhonesMap> 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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Long> id);
|
||||
|
||||
UserPackage findPackage(@Param("id") Long id);
|
||||
|
||||
List<UserPackage> findForRepeatedPackages();
|
||||
|
||||
List<UserPackage> findUserPackages(@Param("userId") String userId, @Param("statuses") List<String> status);
|
||||
List<UserPackage> findUserPackages(@Param("userId") String userId,
|
||||
@Param("statuses") List<String> status);
|
||||
|
||||
List<UserPackage> findAllPackagesByStatus(@Param("statuses") String... statuses);
|
||||
|
||||
List<UserPackage> findAllPackagesByUserId(@Param("userId") String userId);
|
||||
|
||||
UserPackage findByPackageName(@Param("packageName") String packageName);
|
||||
|
||||
List<UserPackage> findOnMonitoringPackages();
|
||||
|
||||
List<UserPackage> findByMemberCodeAndPackageName(@Param("memberCode") String memberCode,
|
||||
@Param("packageName") String packageName);
|
||||
|
||||
|
|
|
|||
|
|
@ -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<FidsData> findFids(List<String> 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<Name> findNameByPhones(List<String> 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<Name> findNameByFids(List<Integer> 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<FidsDataLong> findFidsLong(List<String> 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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<Integer, Integer> findFlagsDebt5000(List<Integer> fids) {
|
||||
|
|
|
|||
|
|
@ -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<Name> 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<PhonesMap> subjects) {
|
||||
try {
|
||||
//регистрация в signals_phone_fid_map
|
||||
String json = entityToJsonMapper.writeValueAsString(subjects.stream()
|
||||
.map(phoneFidMap -> new HashMap<String, Object>() {{
|
||||
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<PackagesRecordsMap> subjects) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(subjects.stream()
|
||||
|
|
@ -86,8 +57,4 @@ public class PhoneService2 {
|
|||
}
|
||||
}
|
||||
|
||||
public List<PackagesRecordsMap> pageByPackageId(Long packageId, Integer limit, Integer offset) {
|
||||
return phoneFidMapMapper.findFullPhoneFidMap(packageId, limit, offset);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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<PackageRecordWithPhone> pageCachedPhonesByPackageId(Long packageId, Integer limit, Integer offset) {
|
||||
return packagesRecordsJoinMapper.findPackagesRecordsJoinPage(packageId, limit, offset);
|
||||
}
|
||||
|
||||
public Map<Long, PhonesMap> findCachedPhones(List<SubjectProfile> subjects) {
|
||||
List<Long> phones = subjects.stream()
|
||||
.map(SubjectProfile::getPhone)
|
||||
.toList();
|
||||
.map(SubjectProfile::getPhone)
|
||||
.toList();
|
||||
List<PhonesMap> 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<PhonesMap> phonesMaps) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(phonesMaps.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(phoneMap -> new HashMap<String, Object>() {{
|
||||
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<String, Object>() {{
|
||||
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<Long> selectUniquePackageIds(List<Long> phones) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(phones.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(phone -> new HashMap<String, Object>() {{
|
||||
put("phone", phone);
|
||||
}}).toList());
|
||||
.filter(Objects::nonNull)
|
||||
.map(phone -> new HashMap<String, Object>() {{
|
||||
put("phone", phone);
|
||||
}}).toList());
|
||||
return packagesRecordsMapper.uniquePackageIdByPhones(json);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void updateNameCache(List<PhonesMap> phonesMaps) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(phonesMaps.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(phoneMap -> new HashMap<String, Object>() {{
|
||||
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> idData) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(idData.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(phoneMap -> new HashMap<String, Object>() {{
|
||||
put("phone", phoneMap.getPhone());
|
||||
put("ser_num", phoneMap.getSerNum());
|
||||
put("id_type", phoneMap.getIdType());
|
||||
}}).toList());
|
||||
.filter(Objects::nonNull)
|
||||
.map(phoneMap -> new HashMap<String, Object>() {{
|
||||
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> flagData) {
|
||||
try {
|
||||
String json = entityToJsonMapper.writeValueAsString(flagData.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(phoneMap -> new HashMap<String, Object>() {{
|
||||
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<String, Object>() {{
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -1,72 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="ru.nbch.credit_tracker.mapper.signal.FlagDetailMapper">
|
||||
<resultMap id="FlagDetail" type="ru.nbch.credit_tracker.entities.app.FlagDetail">
|
||||
<result property="id" column="id"/>
|
||||
<result property="mapId" column="map_id"/>
|
||||
<result property="subjectId" column="subject_id"/>
|
||||
<result property="phone" column="phone"/>
|
||||
<result property="fid" column="fid"/>
|
||||
<result property="flagDebt5000" column="flag_debt5000"/>
|
||||
<result property="flag90days" column="flag_90_12"/>
|
||||
</resultMap>
|
||||
|
||||
<insert id="registerCalcFlags" parameterType="string">
|
||||
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>
|
||||
|
||||
<insert id="updateCalcFlags" parameterType="string">
|
||||
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;
|
||||
</insert>
|
||||
|
||||
<delete id="deleteFlags" parameterType="java.util.List">
|
||||
DELETE FROM signals_flags
|
||||
WHERE map_id IN
|
||||
<foreach collection="mapIds" item="mapId" open="(" separator="," close=")">
|
||||
#{mapId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="getByMapId" resultMap="FlagDetail">
|
||||
SELECT id,
|
||||
map_id,
|
||||
subject_id,
|
||||
phone,
|
||||
fid,
|
||||
flag_debt5000,
|
||||
flag_90_12
|
||||
FROM signals_flags
|
||||
WHERE map_id = #{mapId}
|
||||
LIMIT 1
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="ru.nbch.credit_tracker.mapper.signal.PackagesRecordsJoinMapper">
|
||||
|
||||
<resultMap id="PackageRecordWithPhone" type="ru.nbch.credit_tracker.entities.app.PackageRecordWithPhone">
|
||||
<result property="packageId" column="package_id"/>
|
||||
<result property="subjectId" column="subject_id"/>
|
||||
<result property="phone" column="phone"/>
|
||||
<result property="fid" column="fid"/>
|
||||
<result property="name1" column="name_1"/>
|
||||
<result property="first" column="first"/>
|
||||
<result property="middle" column="middle"/>
|
||||
<result property="birthDt" column="birth_dt"/>
|
||||
<result property="serNum" column="ser_num"/>
|
||||
<result property="idType" column="id_type"/>
|
||||
<result property="flagDebt5000" column="flag_debt5000"/>
|
||||
<result property="flag90days" column="flag_90_12"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="findPackagesRecordsJoinPage" resultMap="PackageRecordWithPhone" resultType="java.util.List">
|
||||
select spr.id,
|
||||
spr.package_id,
|
||||
spr.subject_id,
|
||||
spr.phone,
|
||||
sup.fid,
|
||||
sup.name_1,
|
||||
sup.first,
|
||||
sup.middle,
|
||||
sup.birth_dt,
|
||||
sup.ser_num,
|
||||
sup.id_type,
|
||||
sup.flag_debt5000,
|
||||
sup.flag_90_12
|
||||
from signals_phone_fid_map spr
|
||||
join signals_phones_map sup on cast(spr.phone as bigint) = sup.phone
|
||||
where spr.package_id = #{packageId}
|
||||
and sup.fid is not null
|
||||
ORDER BY spr.id
|
||||
LIMIT
|
||||
#{limit}
|
||||
OFFSET
|
||||
#{offset}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -234,17 +234,6 @@
|
|||
AND dst.id in (select id from to_lock);
|
||||
</update>
|
||||
|
||||
<update id="setFidJson" parameterType="string">
|
||||
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>
|
||||
|
||||
<update id="resetFidAndPD" parameterType="string">
|
||||
update signals_phones_map dst
|
||||
|
||||
|
|
|
|||
|
|
@ -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<PackagesRecordsMap> 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<PackagesRecordsMap> 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<PackagesRecordsMap> 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<PhoneRepository.FidsData> fidsDataWithEqualSinceDt = new ArrayList<>(
|
||||
private final List<FidsData> 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<PhoneRepository.FidsData> fidsDataWithEqualSinceDt2 = new ArrayList<>(
|
||||
private final List<FidsData> 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<PhoneRepository.FidsData> fidsDataWithEqualSinceDt3 = new ArrayList<>(
|
||||
private final List<FidsData> 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<PhoneRepository.FidsData> 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<FidsData> 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<PackagesRecordsMap> 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<PhoneRepository.FidsDataWithName> fidsDataWithNameEqualSinceDt = new ArrayList<>(
|
||||
private final List<FidsDataWithName> 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<PhoneRepository.FidsDataWithName> 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<FidsDataWithName> 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<PackagesRecordsMap> 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<Integer, PhoneFidMap> 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<PackagesRecordsMap> 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<Integer, PhoneFidMap> 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<PackagesRecordsMap> 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<Integer, PhoneFidMap> 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<PhoneRepository.FidsDataLong> 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<PhoneRepository.FidsDataLong> 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<PhoneRepository.FidsDataLong> 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<PhoneRepository.FidsDataLong> 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());
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue