Added PersonFactoryBuilder; Used lombok builder for creating subjects to update
This commit is contained in:
parent
8a7a313c1d
commit
79259170bc
2 changed files with 113 additions and 57 deletions
|
|
@ -0,0 +1,91 @@
|
||||||
|
package ru.nbch.credit_tracker.builder;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import ru.nbch.credit_tracker.entities.signal_package.Person;
|
||||||
|
import ru.nbch.credit_tracker.service.indic.PersonService;
|
||||||
|
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||||
|
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
public class PersonFactoryBuilder {
|
||||||
|
private final static DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy");
|
||||||
|
|
||||||
|
private final static String DEFAULT_DATE = "01.01.2000";
|
||||||
|
private final static String IP = "0";
|
||||||
|
private final static String OKSM = "999";
|
||||||
|
private final static String CONSENT_PURPOSE = "16";
|
||||||
|
private final static String REPORT_USER = "АО «НБКИ»";
|
||||||
|
private final static String LIABILITY = "1";
|
||||||
|
private final static String CONSENT_PERIOD = "3";
|
||||||
|
private final static String REPORT_USER_REG_NUM = "1057746710713";
|
||||||
|
private final static String REPORT_USER_TAX_ID = "7703548386";
|
||||||
|
private final static String CONSENT_HASH = "hash";
|
||||||
|
private final static String CONSENT_DIV_CODE = "000-000";
|
||||||
|
private final static String INQ_PURPOSE = "16";
|
||||||
|
|
||||||
|
|
||||||
|
private PersonService.PersonData personData;
|
||||||
|
private String uid;
|
||||||
|
|
||||||
|
public static PersonFactoryBuilder builder() {
|
||||||
|
return new PersonFactoryBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
public PersonFactoryBuilder personData(PersonService.PersonData personData) {
|
||||||
|
this.personData = personData;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PersonFactoryBuilder uid(String uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Person build() {
|
||||||
|
if (personData == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
PersonService.NameData nameData = personData.getName();
|
||||||
|
PersonService.PassportData passportData = personData.getPassport();
|
||||||
|
Person person = new Person();
|
||||||
|
person.setS(nameData.getLastName());
|
||||||
|
person.setN(nameData.getFirstName());
|
||||||
|
person.setM(StringUtils.isNotBlank(nameData.getMiddleName()) ? nameData.getMiddleName() : null);
|
||||||
|
person.setD(DATE_FORMAT.format(CTUtil.localDatetoDate(nameData.getBirthDate())));
|
||||||
|
|
||||||
|
person.setPn(getPn(passportData.getSerNum(), passportData.getIdNum()));
|
||||||
|
person.setPd(passportData.getIssDate() != null ? DATE_FORMAT.format(CTUtil.localDatetoDate(passportData.getIssDate())) : DEFAULT_DATE);
|
||||||
|
person.setDt(StringUtils.isNotBlank(passportData.getIdType2()) ? passportData.getIdType2() : passportData.getIdType());
|
||||||
|
person.setIp(IP);
|
||||||
|
person.setUid(uid);
|
||||||
|
person.setOksm(OKSM);
|
||||||
|
person.setConsentDate(DATE_FORMAT.format(CTUtil.localDatetoDate(LocalDate.now())));
|
||||||
|
person.setConsentPurpose(CONSENT_PURPOSE);
|
||||||
|
person.setReportUser(REPORT_USER);
|
||||||
|
person.setLiability(LIABILITY);
|
||||||
|
person.setConsentPeriod(CONSENT_PERIOD);
|
||||||
|
person.setAgrDate(DATE_FORMAT.format(CTUtil.localDatetoDate(LocalDate.now())));
|
||||||
|
person.setReportUserRegNum(REPORT_USER_REG_NUM);
|
||||||
|
person.setReportUserTaxID(REPORT_USER_TAX_ID);
|
||||||
|
person.setConsentHash(CONSENT_HASH);
|
||||||
|
|
||||||
|
person.setCs(person.getS());
|
||||||
|
person.setConsentN(person.getN());
|
||||||
|
person.setConsentM(person.getM());
|
||||||
|
person.setConsentBd(person.getD());
|
||||||
|
person.setConsentPn(person.getPn());
|
||||||
|
person.setConsentPd(person.getPd());
|
||||||
|
person.setConsentDivCode(CONSENT_DIV_CODE);
|
||||||
|
person.setConsentDt(person.getDt());
|
||||||
|
person.setInqPurpose(INQ_PURPOSE);
|
||||||
|
return person;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getPn(String serNum, String idNum) {
|
||||||
|
String normSerNum = CTUtil.normalize(serNum);
|
||||||
|
String normIdNum = CTUtil.normalize(idNum);
|
||||||
|
return StringUtils.isNotBlank(normSerNum) ? normSerNum + normIdNum : normIdNum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package ru.nbch.credit_tracker.service;
|
package ru.nbch.credit_tracker.service;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.nbch.credit_tracker.builder.PersonFactoryBuilder;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.entities.dto.Hit;
|
import ru.nbch.credit_tracker.entities.dto.Hit;
|
||||||
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||||
|
|
@ -19,11 +19,7 @@ import ru.nbch.credit_tracker.service.indic.PhoneService;
|
||||||
import ru.nbch.credit_tracker.service.signal.HitsService;
|
import ru.nbch.credit_tracker.service.signal.HitsService;
|
||||||
import ru.nbch.credit_tracker.service.signal.PhoneFidMapService;
|
import ru.nbch.credit_tracker.service.signal.PhoneFidMapService;
|
||||||
import ru.nbch.credit_tracker.service.signal.UserPackageService;
|
import ru.nbch.credit_tracker.service.signal.UserPackageService;
|
||||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
|
||||||
|
|
||||||
import java.text.DateFormat;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -34,8 +30,6 @@ import java.util.Objects;
|
||||||
@Service
|
@Service
|
||||||
public class SignalService {
|
public class SignalService {
|
||||||
|
|
||||||
private final static DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy");
|
|
||||||
|
|
||||||
private final CreditTrackerSettings config;
|
private final CreditTrackerSettings config;
|
||||||
private final HitsService hitsService;
|
private final HitsService hitsService;
|
||||||
private final UserPackageService userPackageService;
|
private final UserPackageService userPackageService;
|
||||||
|
|
@ -100,9 +94,24 @@ public class SignalService {
|
||||||
PhoneFidMap subject;
|
PhoneFidMap subject;
|
||||||
if (data.getFid() != null) {
|
if (data.getFid() != null) {
|
||||||
FlagsService.FlagsData flagsData = flagsDataMap.get(data.getFid());
|
FlagsService.FlagsData flagsData = flagsDataMap.get(data.getFid());
|
||||||
subject = new PhoneFidMap(data.getId(), packageId, data.getSubjectId(), data.getPhone(), data.getFid(), flagsData.getFlagDebt5000(), flagsData.getFlag90days(), calculatedAt);
|
subject = PhoneFidMap.builder()
|
||||||
|
.id(data.getId())
|
||||||
|
.packageId(packageId)
|
||||||
|
.subjectId(data.getSubjectId())
|
||||||
|
.phone(data.getPhone())
|
||||||
|
.fid(data.getFid())
|
||||||
|
.flagDebt5000(flagsData.getFlagDebt5000())
|
||||||
|
.flag90days(flagsData.getFlag90days())
|
||||||
|
.calculatedAt(calculatedAt)
|
||||||
|
.build();
|
||||||
} else {
|
} else {
|
||||||
subject = new PhoneFidMap(data.getId(), packageId, data.getSubjectId(), data.getPhone(), null, null, null, calculatedAt);
|
subject = PhoneFidMap.builder()
|
||||||
|
.id(data.getId())
|
||||||
|
.packageId(packageId)
|
||||||
|
.subjectId(data.getSubjectId())
|
||||||
|
.phone(data.getPhone())
|
||||||
|
.calculatedAt(calculatedAt)
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
subjectToUpdate.add(subject);
|
subjectToUpdate.add(subject);
|
||||||
});
|
});
|
||||||
|
|
@ -158,7 +167,10 @@ public class SignalService {
|
||||||
fidsPhoneData.forEach(data -> {
|
fidsPhoneData.forEach(data -> {
|
||||||
if (data.getFid() != null) {
|
if (data.getFid() != null) {
|
||||||
PersonService.PersonData personData = personFidMap.get(data.getFid());
|
PersonService.PersonData personData = personFidMap.get(data.getFid());
|
||||||
Person person = getPerson(personData, data.getSubjectId());
|
Person person = PersonFactoryBuilder.builder()
|
||||||
|
.personData(personData)
|
||||||
|
.uid(data.getSubjectId())
|
||||||
|
.build();
|
||||||
if (person != null) {
|
if (person != null) {
|
||||||
persons.add(person);
|
persons.add(person);
|
||||||
}
|
}
|
||||||
|
|
@ -167,53 +179,6 @@ public class SignalService {
|
||||||
return persons;
|
return persons;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Person getPerson(PersonService.PersonData personData, String id) {
|
|
||||||
if (personData == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
PersonService.NameData nameData = personData.getName();
|
|
||||||
PersonService.PassportData passportData = personData.getPassport();
|
|
||||||
Person person = new Person();
|
|
||||||
person.setS(nameData.getLastName());
|
|
||||||
person.setN(nameData.getFirstName());
|
|
||||||
person.setM(StringUtils.isNotBlank(nameData.getMiddleName()) ? nameData.getMiddleName() : null);
|
|
||||||
person.setD(DATE_FORMAT.format(CTUtil.localDatetoDate(nameData.getBirthDate())));
|
|
||||||
|
|
||||||
person.setPn(getPn(passportData.getSerNum(), passportData.getIdNum()));
|
|
||||||
person.setPd(passportData.getIssDate() != null ? DATE_FORMAT.format(CTUtil.localDatetoDate(passportData.getIssDate())) : "01.01.2000");
|
|
||||||
person.setDt(StringUtils.isNotBlank(passportData.getIdType2()) ? passportData.getIdType2() : passportData.getIdType());
|
|
||||||
person.setIp("0");
|
|
||||||
person.setUid(id);
|
|
||||||
person.setOksm("999");
|
|
||||||
person.setConsentDate(DATE_FORMAT.format(CTUtil.localDatetoDate(LocalDate.now())));
|
|
||||||
person.setConsentPurpose("16");
|
|
||||||
person.setReportUser("АО «НБКИ»");
|
|
||||||
person.setLiability("1");
|
|
||||||
person.setConsentPeriod("3");
|
|
||||||
person.setAgrDate(DATE_FORMAT.format(CTUtil.localDatetoDate(LocalDate.now())));
|
|
||||||
person.setReportUserRegNum("1057746710713");
|
|
||||||
person.setReportUserTaxID("7703548386");
|
|
||||||
person.setConsentHash("hash");
|
|
||||||
|
|
||||||
person.setCs(person.getS());
|
|
||||||
person.setConsentN(person.getN());
|
|
||||||
person.setConsentM(person.getM());
|
|
||||||
person.setConsentBd(person.getD());
|
|
||||||
person.setConsentPn(person.getPn());
|
|
||||||
person.setConsentPd(person.getPd());
|
|
||||||
person.setConsentDivCode("000-000");
|
|
||||||
person.setConsentDt(person.getDt());
|
|
||||||
person.setInqPurpose("16");
|
|
||||||
return person;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getPn(String serNum, String idNum) {
|
|
||||||
String normSerNum = CTUtil.normalize(serNum);
|
|
||||||
String normIdNum = CTUtil.normalize(idNum);
|
|
||||||
return StringUtils.isNotBlank(normSerNum) ? normSerNum + normIdNum : normIdNum;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public List<UserPackage> findActivePackages(String userId) {
|
public List<UserPackage> findActivePackages(String userId) {
|
||||||
return userPackageService.findUserPackages(userId, Status.ON_MONITORING);
|
return userPackageService.findUserPackages(userId, Status.ON_MONITORING);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue