Refactoring
This commit is contained in:
parent
3e983985a4
commit
389eeb4356
9 changed files with 107 additions and 81 deletions
|
|
@ -0,0 +1,17 @@
|
|||
package ru.nbch.credit_tracker.entities.dto;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class HitsData {
|
||||
private Integer id;
|
||||
private Integer packageId;
|
||||
private String subjectId;
|
||||
private Integer signalType;
|
||||
private LocalDateTime responseSentAt;
|
||||
private String reportFileName;
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
package ru.nbch.credit_tracker.entities.dto;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class PackageData {
|
||||
private Integer id;
|
||||
private String userId;
|
||||
private String packageName;
|
||||
private LocalDateTime createdAt;
|
||||
private String status;
|
||||
private String lastDownloadedReport;
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
package ru.nbch.credit_tracker.entities.dto;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class SubjectData {
|
||||
private Integer id;
|
||||
private Integer packageId;
|
||||
private String subjectId;
|
||||
private String phone;
|
||||
private Integer fid;
|
||||
private Integer flagDebt5000;
|
||||
private Integer flag90days;
|
||||
private LocalDateTime calculatedAt;
|
||||
}
|
||||
|
|
@ -2,9 +2,11 @@ package ru.nbch.credit_tracker.mapper.signal;
|
|||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import ru.nbch.credit_tracker.entities.dto.HitsData;
|
||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest;
|
||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.Subject;
|
||||
import ru.nbch.credit_tracker.service.SignalService;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
|
@ -28,17 +30,17 @@ public interface SignalMapper {
|
|||
|
||||
void setPackageStatus(@Param("packageId") Integer packageId, @Param("status") String status);
|
||||
|
||||
List<SignalService.SubjectData> findSubjectsData(@Param("packageId") Integer packageId);
|
||||
List<SubjectData> findSubjectsData(@Param("packageId") Integer packageId);
|
||||
|
||||
List<SignalService.SubjectData> findFullSubjectsData(@Param("packageId") Integer packageId);
|
||||
List<SubjectData> findFullSubjectsData(@Param("packageId") Integer packageId);
|
||||
|
||||
SignalService.PackageData findPackageData(@Param("id") Integer id);
|
||||
PackageData findPackageData(@Param("id") Integer id);
|
||||
|
||||
List<SignalService.PackageData> findPackageDataList(@Param("userId") String userId);
|
||||
List<PackageData> findPackageDataList(@Param("userId") String userId);
|
||||
|
||||
List<SignalService.PackageData> findPackagesByStatus(@Param("status") String status);
|
||||
List<PackageData> findPackagesByStatus(@Param("status") String status);
|
||||
|
||||
void setHits(@Param("hits") List<SignalService.HitsData> hits);
|
||||
void setHits(@Param("hits") List<HitsData> hits);
|
||||
|
||||
void setPackageLastDownloadedReport(@Param("id") Integer id, @Param("fileName") String fileName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@ package ru.nbch.credit_tracker.service;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||
import ru.nbch.credit_tracker.entities.dto.HitsData;
|
||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
||||
import ru.nbch.credit_tracker.entities.response.monitoring_signal_response.*;
|
||||
import ru.nbch.credit_tracker.entities.response.online_download.Inquiry;
|
||||
import ru.nbch.credit_tracker.entities.response.online_download.OnlineDownloadReport;
|
||||
|
|
@ -53,8 +56,8 @@ public class MonitoringService {
|
|||
}
|
||||
|
||||
private void monitor() {
|
||||
List<SignalService.PackageData> packages = signalService.findPackagesOnMonitoring();
|
||||
for (SignalService.PackageData packageData : packages) {
|
||||
List<PackageData> packages = signalService.findPackagesOnMonitoring();
|
||||
for (PackageData packageData : packages) {
|
||||
SgnlOnlineReport onlineReports = signalRestService.getReports(packageData.getUserId().substring(0, 6) + "_" + packageData.getPackageName());
|
||||
|
||||
List<String> fileNames = onlineReports.getOperationReport().getReports().getReports().stream().map(Report::getFilename)
|
||||
|
|
@ -88,11 +91,11 @@ public class MonitoringService {
|
|||
}
|
||||
}
|
||||
|
||||
private MonitoringSignalResponse generateResponse(SignalService.PackageData packageData, List<Person> persons) {
|
||||
private MonitoringSignalResponse generateResponse(PackageData packageData, List<Person> persons) {
|
||||
MonitoringSignalResponse response = new MonitoringSignalResponse();
|
||||
response.setPackageName(packageData.getPackageName()); // Имя пакета, переданного при установке
|
||||
Subjects subjects = new Subjects();
|
||||
List<SignalService.SubjectData> subjectDataList = signalService.findFullSubjectsData(packageData.getId());
|
||||
List<SubjectData> subjectDataList = signalService.findFullSubjectsData(packageData.getId());
|
||||
for (Person person : persons) {
|
||||
Signals signals = new Signals();
|
||||
for (Inquiry inquiry : person.getInquiries()) {
|
||||
|
|
@ -124,7 +127,7 @@ public class MonitoringService {
|
|||
return response;
|
||||
}
|
||||
|
||||
private String createResponseFile(SignalService.PackageData packageData, MonitoringSignalResponse response) {
|
||||
private String createResponseFile(PackageData packageData, MonitoringSignalResponse response) {
|
||||
try {
|
||||
String fileName = CTUtil.generateResponseReportFileName(packageData.getUserId(), packageData.getPackageName());
|
||||
String filePath = config.getLoadDir() + File.separator + packageData.getUserId().substring(0, 6) + File.separator;
|
||||
|
|
@ -153,12 +156,12 @@ public class MonitoringService {
|
|||
return null;
|
||||
}
|
||||
|
||||
private void updateSignalHits(SignalService.PackageData packageData, MonitoringSignalResponse response, String reportFileName) {
|
||||
private void updateSignalHits(PackageData packageData, MonitoringSignalResponse response, String reportFileName) {
|
||||
LocalDateTime responseSentAt = LocalDateTime.now();
|
||||
List<SignalService.HitsData> hits = new ArrayList<>();
|
||||
List<HitsData> hits = new ArrayList<>();
|
||||
response.getSubjects().getSubjects().forEach(subject -> {
|
||||
subject.getSignals().getSignals().forEach(signal -> {
|
||||
SignalService.HitsData hitsData = new SignalService.HitsData();
|
||||
HitsData hitsData = new HitsData();
|
||||
hitsData.setPackageId(packageData.getId());
|
||||
hitsData.setSubjectId(subject.getId());
|
||||
hitsData.setSignalType(1);
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
package ru.nbch.credit_tracker.service;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||
import ru.nbch.credit_tracker.entities.dto.HitsData;
|
||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest;
|
||||
import ru.nbch.credit_tracker.entities.response.active_packages.MonitoringActivePackagesResponse;
|
||||
import ru.nbch.credit_tracker.entities.response.active_packages.Package;
|
||||
|
|
@ -18,13 +19,12 @@ import ru.nbch.credit_tracker.mapper.signal.SignalMapper;
|
|||
import ru.nbch.credit_tracker.service.indic.FlagsService;
|
||||
import ru.nbch.credit_tracker.service.indic.PersonService;
|
||||
import ru.nbch.credit_tracker.service.indic.PhoneService;
|
||||
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.ZoneId;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
|
|
@ -109,20 +109,20 @@ public class SignalService {
|
|||
person.setS(nameData.getLastName());
|
||||
person.setN(nameData.getFirstName());
|
||||
person.setM(StringUtils.isNotBlank(nameData.getMiddleName()) ? nameData.getMiddleName() : null);
|
||||
person.setD(DATE_FORMAT.format(toDate(nameData.getBirthDate())));
|
||||
person.setD(DATE_FORMAT.format(CTUtil.localDatetoDate(nameData.getBirthDate())));
|
||||
|
||||
person.setPn(getPn(passportData.getSerNum(), passportData.getIdNum()));
|
||||
person.setPd(passportData.getIssDate() != null ? DATE_FORMAT.format(toDate(passportData.getIssDate())) : "01.01.2000");
|
||||
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(toDate(LocalDate.now())));
|
||||
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(toDate(LocalDate.now())));
|
||||
person.setAgrDate(DATE_FORMAT.format(CTUtil.localDatetoDate(LocalDate.now())));
|
||||
person.setReportUserRegNum("1057746710713");
|
||||
person.setReportUserTaxID("7703548386");
|
||||
person.setConsentHash("hash");
|
||||
|
|
@ -140,26 +140,11 @@ public class SignalService {
|
|||
}
|
||||
|
||||
private String getPn(String serNum, String idNum) {
|
||||
String normSerNum = normalize(serNum);
|
||||
String normIdNum = normalize(idNum);
|
||||
String normSerNum = CTUtil.normalize(serNum);
|
||||
String normIdNum = CTUtil.normalize(idNum);
|
||||
return StringUtils.isNotBlank(normSerNum) ? normSerNum + normIdNum : normIdNum;
|
||||
}
|
||||
|
||||
// TODO move to utility service
|
||||
private String normalize(String value) {
|
||||
if (value == null)
|
||||
return null;
|
||||
value = value.replaceAll("[^А-Яа-яA-Za-z0-9]", "");
|
||||
return value.replaceFirst("^0+", "");
|
||||
}
|
||||
|
||||
// TODO move to utility service
|
||||
private Date toDate(LocalDate date) {
|
||||
if (date == null) {
|
||||
return null;
|
||||
}
|
||||
return Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
|
||||
public MonitoringActivePackagesResponse findActivePackages(String userId) {
|
||||
String memberCode = userId.substring(0, 6);
|
||||
|
|
@ -212,38 +197,4 @@ public class SignalService {
|
|||
mapper.setPackageLastDownloadedReport(id, fileName);
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class PackageData {
|
||||
private Integer id;
|
||||
private String userId;
|
||||
private String packageName;
|
||||
private LocalDateTime createdAt;
|
||||
private String status;
|
||||
private String lastDownloadedReport;
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class SubjectData {
|
||||
private Integer id;
|
||||
private Integer packageId;
|
||||
private String subjectId;
|
||||
private String phone;
|
||||
private Integer fid;
|
||||
private Integer flagDebt5000;
|
||||
private Integer flag90days;
|
||||
private LocalDateTime calculatedAt;
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class HitsData {
|
||||
private Integer id;
|
||||
private Integer packageId;
|
||||
private String subjectId;
|
||||
private Integer signalType;
|
||||
private LocalDateTime responseSentAt;
|
||||
private String reportFileName;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
||||
import ru.nbch.credit_tracker.mapper.indic.PhoneMapper;
|
||||
import ru.nbch.credit_tracker.service.SignalService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -19,7 +19,7 @@ public class PhoneService {
|
|||
this.mapper = mapper;
|
||||
}
|
||||
|
||||
public List<FidsPhoneData> findFidsPhoneData(List<SignalService.SubjectData> subjects) {
|
||||
public List<FidsPhoneData> findFidsPhoneData(List<SubjectData> subjects) {
|
||||
List<FidsPhoneData> fidsPhoneDataList = new ArrayList<>();
|
||||
subjects.forEach(subject -> {
|
||||
String phone = "9" + subject.getPhone();
|
||||
|
|
|
|||
|
|
@ -2,8 +2,11 @@ package ru.nbch.credit_tracker.utils;
|
|||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
|
@ -49,4 +52,18 @@ public class CTUtil {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static String normalize(String value) {
|
||||
if (value == null)
|
||||
return null;
|
||||
value = value.replaceAll("[^А-Яа-яA-Za-z0-9]", "");
|
||||
return value.replaceFirst("^0+", "");
|
||||
}
|
||||
|
||||
public static Date localDatetoDate(LocalDate date) {
|
||||
if (date == null) {
|
||||
return null;
|
||||
}
|
||||
return Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<mapper namespace="ru.nbch.credit_tracker.mapper.signal.SignalMapper">
|
||||
|
||||
<resultMap id="subjectDataResultMap" type="ru.nbch.credit_tracker.service.SignalService$SubjectData">
|
||||
<resultMap id="subjectDataResultMap" type="ru.nbch.credit_tracker.entities.dto.SubjectData">
|
||||
<result property="id" column="id" />
|
||||
<result property="packageId" column="package_id" />
|
||||
<result property="subjectId" column="subject_id" />
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
<result property="calculatedAt" column="calculated_at" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="packageDataResultMap" type="ru.nbch.credit_tracker.service.SignalService$PackageData">
|
||||
<resultMap id="packageDataResultMap" type="ru.nbch.credit_tracker.entities.dto.PackageData">
|
||||
<result property="id" column="id" />
|
||||
<result property="userId" column="membercode" />
|
||||
<result property="packageName" column="package_name" />
|
||||
|
|
@ -100,19 +100,19 @@
|
|||
WHERE package_id = #{packageId}
|
||||
</select>
|
||||
|
||||
<select id="findPackageData" resultMap="packageDataResultMap" resultType="ru.nbch.credit_tracker.service.SignalService$PackageData">
|
||||
<select id="findPackageData" resultMap="packageDataResultMap" resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
||||
SELECT membercode, package_name
|
||||
FROM signals_user_packages
|
||||
WHERE id = #{id} LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="findPackageDataList" resultMap="packageDataResultMap" resultType="ru.nbch.credit_tracker.service.SignalService$PackageData">
|
||||
<select id="findPackageDataList" resultMap="packageDataResultMap" resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
||||
SELECT package_name, created_at
|
||||
FROM signals_user_packages
|
||||
WHERE membercode IS NOT NULL AND LEFT(membercode, 6) = #{userId}
|
||||
</select>
|
||||
|
||||
<select id="findPackagesByStatus" resultMap="packageDataResultMap" resultType="ru.nbch.credit_tracker.service.SignalService$PackageData">
|
||||
<select id="findPackagesByStatus" resultMap="packageDataResultMap" resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
||||
SELECT id, membercode, package_name, created_at, last_downloaded_report
|
||||
FROM signals_user_packages
|
||||
WHERE status = #{status}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue