Refactored PhoneService and SignalService
This commit is contained in:
parent
997bcc6c4a
commit
aa106350b5
2 changed files with 23 additions and 42 deletions
|
|
@ -119,32 +119,32 @@ public class SignalService {
|
|||
return;
|
||||
}
|
||||
log.info("Start calculating fids and flags for subjects batch. PackageId: {}", packageId);
|
||||
List<PhoneService.FidsPhoneData> fidsPhoneDataList = phoneService.findFidsPhoneData(subjects);
|
||||
Map<String, Integer> fidsMap = phoneService.findFidsPhoneData(subjects);
|
||||
LocalDateTime calculatedAt = LocalDateTime.now();
|
||||
|
||||
Map<Integer, FlagsService.FlagsData> flagsDataMap = flagsService.findFlags(fidsPhoneDataList.stream().map(PhoneService.FidsPhoneData::getFid).filter(Objects::nonNull).toList());
|
||||
Map<Integer, FlagsService.FlagsData> flagsDataMap = flagsService.findFlags(fidsMap.values().stream().filter(Objects::nonNull).toList());
|
||||
List<PhoneFidMap> subjectToUpdate = new ArrayList<>();
|
||||
|
||||
fidsPhoneDataList.forEach(data -> {
|
||||
PhoneFidMap subject;
|
||||
if (data.getFid() != null) {
|
||||
FlagsService.FlagsData flagsData = flagsDataMap.get(data.getFid());
|
||||
subjects.forEach(subject -> {
|
||||
Integer fid = fidsMap.get("9" + subject.getPhone());
|
||||
if (fid != null) {
|
||||
FlagsService.FlagsData flagsData = flagsDataMap.get(fid);
|
||||
subject = PhoneFidMap.builder()
|
||||
.id(data.getId())
|
||||
.id(subject.getId())
|
||||
.packageId(packageId)
|
||||
.subjectId(data.getSubjectId())
|
||||
.phone(data.getPhone())
|
||||
.fid(data.getFid())
|
||||
.subjectId(subject.getSubjectId())
|
||||
.phone(subject.getPhone())
|
||||
.fid(fid)
|
||||
.flagDebt5000(flagsData.getFlagDebt5000())
|
||||
.flag90days(flagsData.getFlag90days())
|
||||
.calculatedAt(calculatedAt)
|
||||
.build();
|
||||
} else {
|
||||
subject = PhoneFidMap.builder()
|
||||
.id(data.getId())
|
||||
.id(subject.getId())
|
||||
.packageId(packageId)
|
||||
.subjectId(data.getSubjectId())
|
||||
.phone(data.getPhone())
|
||||
.subjectId(subject.getSubjectId())
|
||||
.phone(subject.getPhone())
|
||||
.calculatedAt(calculatedAt)
|
||||
.build();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package ru.nbch.credit_tracker.service.indic;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -8,7 +7,10 @@ import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
|||
import ru.nbch.credit_tracker.mapper.indic.PhoneMapper;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
|
|
@ -20,24 +22,13 @@ public class PhoneService {
|
|||
this.mapper = mapper;
|
||||
}
|
||||
|
||||
public List<FidsPhoneData> findFidsPhoneData(List<PhoneFidMap> subjects) {
|
||||
List<FidsPhoneData> fidsPhoneDataList = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Ищет фиды по номерам телефона
|
||||
* @return Map: key - номер телефона; value - fid
|
||||
*/
|
||||
public Map<String, Integer> findFidsPhoneData(List<PhoneFidMap> subjects) {
|
||||
List<String> phones = subjects.stream().map(subject -> "9" + subject.getPhone()).toList();
|
||||
List<FidsData> fidsData = mapper.findFids(phones);
|
||||
Map<String, Integer> fidsMap = convertFidsDataToMap(fidsData);
|
||||
|
||||
subjects.forEach(subject -> {
|
||||
String phone = "9" + subject.getPhone();
|
||||
Integer fid = fidsMap.get(phone);
|
||||
if (fid != null) {
|
||||
fidsPhoneDataList.add(new FidsPhoneData(subject.getId(), fid, subject.getPhone(), subject.getSubjectId()));
|
||||
} else {
|
||||
fidsPhoneDataList.add(new FidsPhoneData(subject.getId(), null, subject.getPhone(), subject.getSubjectId()));
|
||||
}
|
||||
});
|
||||
|
||||
return fidsPhoneDataList;
|
||||
return convertFidsDataToMap(mapper.findFids(phones));
|
||||
}
|
||||
|
||||
private Map<String, Integer> convertFidsDataToMap(List<FidsData> fidsData) {
|
||||
|
|
@ -57,16 +48,6 @@ public class PhoneService {
|
|||
));
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@AllArgsConstructor
|
||||
public static class FidsPhoneData {
|
||||
private Integer id;
|
||||
private Integer fid;
|
||||
private String phone;
|
||||
private String subjectId;
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class FidsData {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue