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;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
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.entities.dto.Hit;
|
||||
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.PhoneFidMapService;
|
||||
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.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -34,8 +30,6 @@ import java.util.Objects;
|
|||
@Service
|
||||
public class SignalService {
|
||||
|
||||
private final static DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy");
|
||||
|
||||
private final CreditTrackerSettings config;
|
||||
private final HitsService hitsService;
|
||||
private final UserPackageService userPackageService;
|
||||
|
|
@ -100,9 +94,24 @@ public class SignalService {
|
|||
PhoneFidMap subject;
|
||||
if (data.getFid() != null) {
|
||||
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 {
|
||||
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);
|
||||
});
|
||||
|
|
@ -158,7 +167,10 @@ public class SignalService {
|
|||
fidsPhoneData.forEach(data -> {
|
||||
if (data.getFid() != null) {
|
||||
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) {
|
||||
persons.add(person);
|
||||
}
|
||||
|
|
@ -167,53 +179,6 @@ public class SignalService {
|
|||
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) {
|
||||
return userPackageService.findUserPackages(userId, Status.ON_MONITORING);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue