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 ab392ee..85233cf 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 @@ -5,6 +5,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; @@ -90,6 +91,34 @@ public class PhoneService2 { return phoneFidMap; } + private Map merger(List subjects, List phonesByFid) { + Map phoneFidMap = new HashMap<>(); + Iterator iterator = phonesByFid.iterator(); + String lastUniquePhone = null; + FidsData fidsData = null; + for (PhoneFidMap phoneFid : subjects) { + String normalizedPhone = 9 + phoneFid.getPhone(); + while (iterator.hasNext()) { + fidsData = iterator.next(); + if (StringUtils.isNotEmpty(lastUniquePhone) && lastUniquePhone.equals(fidsData.getPhone())) { + iterator.remove(); + continue; + } + if (fidsData.getPhone().equals(normalizedPhone) || normalizedPhone.equals(lastUniquePhone)) { + lastUniquePhone = fidsData.getPhone(); + iterator.remove(); + break; + } + lastUniquePhone = fidsData.getPhone(); + break; + } + if (fidsData != null && normalizedPhone.equals(lastUniquePhone)) { + phoneFidMap.put(fidsData.getFid(), phoneFid); + } + } + return phoneFidMap; + } + @Getter @Setter @AllArgsConstructor