Renamed dtos; Renamed mappers and services methods
This commit is contained in:
parent
9c4e5ed13c
commit
ead8638d3e
17 changed files with 172 additions and 192 deletions
|
|
@ -7,7 +7,7 @@ import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class HitsData {
|
public class Hit {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private Integer packageId;
|
private Integer packageId;
|
||||||
private String subjectId;
|
private String subjectId;
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
package ru.nbch.credit_tracker.entities.dto;
|
package ru.nbch.credit_tracker.entities.dto;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.*;
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
|
@ -13,7 +9,7 @@ import java.time.LocalDateTime;
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
public class SubjectData {
|
public class PhoneFidMap {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private Integer packageId;
|
private Integer packageId;
|
||||||
private String subjectId;
|
private String subjectId;
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package ru.nbch.credit_tracker.entities.dto;
|
package ru.nbch.credit_tracker.entities.dto;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
|
@ -7,7 +8,8 @@ import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class PackageData {
|
@Builder
|
||||||
|
public class UserPackage {
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private String userId;
|
private String userId;
|
||||||
private String packageName;
|
private String packageName;
|
||||||
|
|
@ -1,14 +1,5 @@
|
||||||
package ru.nbch.credit_tracker.facade;
|
package ru.nbch.credit_tracker.facade;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.zip.ZipEntry;
|
|
||||||
import java.util.zip.ZipInputStream;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.core.io.FileUrlResource;
|
import org.springframework.core.io.FileUrlResource;
|
||||||
|
|
@ -21,11 +12,7 @@ import ru.nbch.credit_tracker.entities.request.active_packages.MonitoringActiveP
|
||||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest;
|
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.entities.request.monitoring_request.Subject;
|
||||||
import ru.nbch.credit_tracker.entities.response.active_packages.MonitoringActivePackagesResponse;
|
import ru.nbch.credit_tracker.entities.response.active_packages.MonitoringActivePackagesResponse;
|
||||||
import ru.nbch.credit_tracker.entities.response.errors.MonitoringActivePackagesError;
|
import ru.nbch.credit_tracker.entities.response.errors.*;
|
||||||
import ru.nbch.credit_tracker.entities.response.errors.MonitoringDownloadError;
|
|
||||||
import ru.nbch.credit_tracker.entities.response.errors.MonitoringError;
|
|
||||||
import ru.nbch.credit_tracker.entities.response.errors.MonitoringPackageDeleteError;
|
|
||||||
import ru.nbch.credit_tracker.entities.response.errors.MonitoringReportListError;
|
|
||||||
import ru.nbch.credit_tracker.entities.response.success.MonitoringPackageDeleteResponse;
|
import ru.nbch.credit_tracker.entities.response.success.MonitoringPackageDeleteResponse;
|
||||||
import ru.nbch.credit_tracker.entities.response.success.MonitoringReportListResponse;
|
import ru.nbch.credit_tracker.entities.response.success.MonitoringReportListResponse;
|
||||||
import ru.nbch.credit_tracker.entities.response.success.MonitoringResponse;
|
import ru.nbch.credit_tracker.entities.response.success.MonitoringResponse;
|
||||||
|
|
@ -44,6 +31,17 @@ import ru.nbch.credit_tracker.service.xml.jaxb.XmlUtilService;
|
||||||
import ru.nbch.credit_tracker.utils.CTUtil;
|
import ru.nbch.credit_tracker.utils.CTUtil;
|
||||||
import ru.nbch.credit_tracker.utils.ValidationUtil;
|
import ru.nbch.credit_tracker.utils.ValidationUtil;
|
||||||
import ru.nbch.credit_tracker.utils.ZipUtils;
|
import ru.nbch.credit_tracker.utils.ZipUtils;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.zip.ZipEntry;
|
||||||
|
import java.util.zip.ZipInputStream;
|
||||||
|
|
||||||
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.excp;
|
import static ru.nbch.credit_tracker.utils.error.ExceptionUtils.excp;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|
@ -221,14 +219,14 @@ public class SignalFacade {
|
||||||
// TODO validate xsd?
|
// TODO validate xsd?
|
||||||
if (signalRestService.update(signals)) {
|
if (signalRestService.update(signals)) {
|
||||||
log.info("Package was successfully registered in signal service. PackageId: {} PackageName: {}", packageId, packageName);
|
log.info("Package was successfully registered in signal service. PackageId: {} PackageName: {}", packageId, packageName);
|
||||||
signalService.setPackageStatus(packageId, Status.ON_MONITORING);
|
signalService.updatePackageStatus(packageId, Status.ON_MONITORING);
|
||||||
} else {
|
} else {
|
||||||
log.info("Package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName);
|
log.info("Package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName);
|
||||||
signalService.setPackageStatus(packageId, Status.ERROR);
|
signalService.updatePackageStatus(packageId, Status.ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
signalService.setPackageStatus(packageId, Status.ERROR);
|
signalService.updatePackageStatus(packageId, Status.ERROR);
|
||||||
log.error("Ошибка при поиске фидов или расчете флагов просрочек. Package_id {}", packageId, e);
|
log.error("Ошибка при поиске фидов или расчете флагов просрочек. Package_id {}", packageId, e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,13 @@ package ru.nbch.credit_tracker.mapper.signal;
|
||||||
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import ru.nbch.credit_tracker.entities.dto.HitsData;
|
import ru.nbch.credit_tracker.entities.dto.Hit;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface HitsMapper {
|
public interface HitsMapper {
|
||||||
|
|
||||||
void setHits(@Param("hits") List<HitsData> hits);
|
void insertHits(@Param("hits") List<Hit> hits);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,9 @@ package ru.nbch.credit_tracker.mapper.signal;
|
||||||
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.Subject;
|
import ru.nbch.credit_tracker.entities.request.monitoring_request.Subject;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
|
|
@ -13,12 +12,10 @@ public interface PhoneFidMapMapper {
|
||||||
|
|
||||||
void registerSubjects(@Param("subjects") List<Subject> subjects, @Param("packageId") Integer packageId);
|
void registerSubjects(@Param("subjects") List<Subject> subjects, @Param("packageId") Integer packageId);
|
||||||
|
|
||||||
void registerSubjectsFidAndDebts(@Param("id") Integer id, @Param("fid") Integer fid, @Param("flagDebt5000") Integer flagDebt5000, @Param("flag90") Integer flag90, @Param("calculatedAt") LocalDateTime calculatedAt);
|
List<PhoneFidMap> findPhoneFidMaps(@Param("packageId") Integer packageId);
|
||||||
|
|
||||||
List<SubjectData> findSubjectsData(@Param("packageId") Integer packageId);
|
List<PhoneFidMap> findFullPhoneFidMap(@Param("packageId") Integer packageId);
|
||||||
|
|
||||||
List<SubjectData> findFullSubjectsData(@Param("packageId") Integer packageId);
|
void updatePhoneFidMaps(@Param("subjects") List<PhoneFidMap> subjects);
|
||||||
|
|
||||||
void updateSubjects(@Param("subjects") List<SubjectData> subjects);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,7 @@ package ru.nbch.credit_tracker.mapper.signal;
|
||||||
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
import ru.nbch.credit_tracker.entities.dto.UserPackage;
|
||||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -17,16 +16,16 @@ public interface UserPackageMapper {
|
||||||
|
|
||||||
void deletePackage(@Param("userId") String userId, @Param("packageName") String packageName, @Param("status") String newStatus, @Param("previousStatus") String previousStatus, @Param("deactivatedAt") LocalDateTime deactivatedAt);
|
void deletePackage(@Param("userId") String userId, @Param("packageName") String packageName, @Param("status") String newStatus, @Param("previousStatus") String previousStatus, @Param("deactivatedAt") LocalDateTime deactivatedAt);
|
||||||
|
|
||||||
Integer insertPackage(@Param("request") MonitoringRequest request, @Param("creadedAt") LocalDateTime creadedAt, @Param("status") String status);
|
Integer insertPackage(@Param("userPackage") UserPackage userPackage);
|
||||||
|
|
||||||
void setPackageStatus(@Param("packageId") Integer packageId, @Param("status") String status);
|
void updatePackageStatus(@Param("packageId") Integer packageId, @Param("status") String status);
|
||||||
|
|
||||||
void setPackageLastDownloadedReport(@Param("id") Integer id, @Param("fileName") String fileName);
|
void updatePackageLastDownloadedReport(@Param("id") Integer id, @Param("fileName") String fileName);
|
||||||
|
|
||||||
PackageData findPackageData(@Param("id") Integer id);
|
UserPackage findPackage(@Param("id") Integer id);
|
||||||
|
|
||||||
List<PackageData> findPackageDataList(@Param("userId") String userId, @Param("status") String status);
|
List<UserPackage> findUserPackages(@Param("userId") String userId, @Param("status") String status);
|
||||||
|
|
||||||
List<PackageData> findPackagesByStatus(@Param("status") String status);
|
List<UserPackage> findAllPackagesByStatus(@Param("status") String status);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ package ru.nbch.credit_tracker.service;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.entities.dto.HitsData;
|
import ru.nbch.credit_tracker.entities.dto.Hit;
|
||||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
import ru.nbch.credit_tracker.entities.dto.UserPackage;
|
||||||
import ru.nbch.credit_tracker.entities.response.monitoring_signal_response.*;
|
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.Inquiry;
|
||||||
import ru.nbch.credit_tracker.entities.response.online_download.OnlineDownloadReport;
|
import ru.nbch.credit_tracker.entities.response.online_download.OnlineDownloadReport;
|
||||||
|
|
@ -57,13 +57,13 @@ public class MonitoringService {
|
||||||
|
|
||||||
private void monitor() {
|
private void monitor() {
|
||||||
log.info("Start monitoring");
|
log.info("Start monitoring");
|
||||||
List<PackageData> packages = signalService.findPackagesOnMonitoring();
|
List<UserPackage> packages = signalService.findPackagesOnMonitoring();
|
||||||
for (PackageData packageData : packages) {
|
for (UserPackage userPackage : packages) {
|
||||||
log.info("Processing package {}", packageData.getPackageName());
|
log.info("Processing package {}", userPackage.getPackageName());
|
||||||
SgnlOnlineReport onlineReports = signalRestService.getReports(packageData.getUserId().substring(0, 6) + "_" + packageData.getPackageName());
|
SgnlOnlineReport onlineReports = signalRestService.getReports(userPackage.getUserId().substring(0, 6) + "_" + userPackage.getPackageName());
|
||||||
|
|
||||||
if (onlineReports == null) {
|
if (onlineReports == null) {
|
||||||
log.info("No reports found for package {}", packageData.getPackageName());
|
log.info("No reports found for package {}", userPackage.getPackageName());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -71,7 +71,7 @@ public class MonitoringService {
|
||||||
.filter(fileName -> CTUtil.parseDateFromReportFileName(fileName) != null).toList(); // TODO оптимизировать
|
.filter(fileName -> CTUtil.parseDateFromReportFileName(fileName) != null).toList(); // TODO оптимизировать
|
||||||
|
|
||||||
if (fileNames.isEmpty()) {
|
if (fileNames.isEmpty()) {
|
||||||
log.info("No new report found for package {}", packageData.getPackageName());
|
log.info("No new report found for package {}", userPackage.getPackageName());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -79,16 +79,16 @@ public class MonitoringService {
|
||||||
.orElseGet(Collections::emptyList)
|
.orElseGet(Collections::emptyList)
|
||||||
.stream().max(Comparator.comparing(CTUtil::parseDateFromReportFileName)); // отфильтровали только те имена, которые парсятся в дату, так что null тут не придет
|
.stream().max(Comparator.comparing(CTUtil::parseDateFromReportFileName)); // отфильтровали только те имена, которые парсятся в дату, так что null тут не придет
|
||||||
|
|
||||||
LocalDateTime lastDownloadedReportDate = CTUtil.parseDateFromReportFileName(packageData.getLastDownloadedReport());
|
LocalDateTime lastDownloadedReportDate = CTUtil.parseDateFromReportFileName(userPackage.getLastDownloadedReport());
|
||||||
|
|
||||||
if (packageData.getLastDownloadedReport() != null) {
|
if (userPackage.getLastDownloadedReport() != null) {
|
||||||
log.info("Last downloaded report found for package {}. Last Downloaded Report Name: {}", packageData.getPackageName(), packageData.getLastDownloadedReport());
|
log.info("Last downloaded report found for package {}. Last Downloaded Report Name: {}", userPackage.getPackageName(), userPackage.getLastDownloadedReport());
|
||||||
} else {
|
} else {
|
||||||
log.info("Last Downloaded Report Name is empty");
|
log.info("Last Downloaded Report Name is empty");
|
||||||
}
|
}
|
||||||
|
|
||||||
OnlineDownloadReport report = null;
|
OnlineDownloadReport report = null;
|
||||||
if (packageData.getLastDownloadedReport() == null && newReport.isPresent()) {
|
if (userPackage.getLastDownloadedReport() == null && newReport.isPresent()) {
|
||||||
report = loadReport(newReport.get()); // по этому пакету еще не было загруженных отчетов, продолжаем работу с полученным
|
report = loadReport(newReport.get()); // по этому пакету еще не было загруженных отчетов, продолжаем работу с полученным
|
||||||
} else if (lastDownloadedReportDate != null && newReport.isPresent()) {
|
} else if (lastDownloadedReportDate != null && newReport.isPresent()) {
|
||||||
LocalDateTime newReportDate = CTUtil.parseDateFromReportFileName(newReport.get());
|
LocalDateTime newReportDate = CTUtil.parseDateFromReportFileName(newReport.get());
|
||||||
|
|
@ -97,28 +97,28 @@ public class MonitoringService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (report == null) {
|
if (report == null) {
|
||||||
log.info("Report was not loaded for package {}", packageData.getPackageName());
|
log.info("Report was not loaded for package {}", userPackage.getPackageName());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
MonitoringSignalResponse response = generateResponse(packageData, report.getPersons().getPersons());
|
MonitoringSignalResponse response = generateResponse(userPackage, report.getPersons().getPersons());
|
||||||
String fileName = createResponseFile(packageData, response);
|
String fileName = createResponseFile(userPackage, response);
|
||||||
if (fileName != null) {
|
if (fileName != null) {
|
||||||
log.info("New report fileName: {}", fileName);
|
log.info("New report fileName: {}", fileName);
|
||||||
updateSignalHits(packageData, response, fileName);
|
updateSignalHits(userPackage, response, fileName);
|
||||||
signalService.updateLastDownloadedReport(packageData.getId(), newReport.get());
|
signalService.updateLastDownloadedReport(userPackage.getId(), newReport.get());
|
||||||
} else {
|
} else {
|
||||||
log.info("Report was not created for package {}", packageData.getPackageName());
|
log.info("Report was not created for package {}", userPackage.getPackageName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.info("Finish monitoring");
|
log.info("Finish monitoring");
|
||||||
}
|
}
|
||||||
|
|
||||||
private MonitoringSignalResponse generateResponse(PackageData packageData, List<Person> persons) {
|
private MonitoringSignalResponse generateResponse(UserPackage userPackage, List<Person> persons) {
|
||||||
MonitoringSignalResponse response = new MonitoringSignalResponse();
|
MonitoringSignalResponse response = new MonitoringSignalResponse();
|
||||||
response.setPackageName(packageData.getPackageName()); // Имя пакета, переданного при установке
|
response.setPackageName(userPackage.getPackageName()); // Имя пакета, переданного при установке
|
||||||
Subjects subjects = new Subjects();
|
Subjects subjects = new Subjects();
|
||||||
List<SubjectData> subjectDataList = signalService.findFullSubjectsData(packageData.getId());
|
List<PhoneFidMap> phoneFidMapList = signalService.findFullSubjectsData(userPackage.getId());
|
||||||
for (Person person : persons) {
|
for (Person person : persons) {
|
||||||
Signals signals = new Signals();
|
Signals signals = new Signals();
|
||||||
for (Inquiry inquiry : person.getInquiries()) {
|
for (Inquiry inquiry : person.getInquiries()) {
|
||||||
|
|
@ -135,7 +135,7 @@ public class MonitoringService {
|
||||||
|
|
||||||
// Если есть хотя бы один заполненный сигнал, значит заполняем остальные данные
|
// Если есть хотя бы один заполненный сигнал, значит заполняем остальные данные
|
||||||
if (!signals.getSignals().isEmpty()) {
|
if (!signals.getSignals().isEmpty()) {
|
||||||
subjectDataList.stream().filter(p -> p.getSubjectId().equals(person.getUid())).findFirst().ifPresent(subjectData -> {
|
phoneFidMapList.stream().filter(p -> p.getSubjectId().equals(person.getUid())).findFirst().ifPresent(subjectData -> {
|
||||||
Subject subject = new Subject();
|
Subject subject = new Subject();
|
||||||
subject.setId(subjectData.getSubjectId()); // Уникальный идентификатор субъекта (равен Id из XML-пакета при установке мониторинга)
|
subject.setId(subjectData.getSubjectId()); // Уникальный идентификатор субъекта (равен Id из XML-пакета при установке мониторинга)
|
||||||
subject.setClientId(subjectData.getPhone());
|
subject.setClientId(subjectData.getPhone());
|
||||||
|
|
@ -150,10 +150,10 @@ public class MonitoringService {
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String createResponseFile(PackageData packageData, MonitoringSignalResponse response) {
|
private String createResponseFile(UserPackage userPackage, MonitoringSignalResponse response) {
|
||||||
try {
|
try {
|
||||||
String fileName = CTUtil.generateResponseReportFileName(packageData.getUserId(), packageData.getPackageName());
|
String fileName = CTUtil.generateResponseReportFileName(userPackage.getUserId(), userPackage.getPackageName());
|
||||||
String filePath = config.getLoadDir() + File.separator + packageData.getUserId().substring(0, 6) + File.separator;
|
String filePath = config.getLoadDir() + File.separator + userPackage.getUserId().substring(0, 6) + File.separator;
|
||||||
|
|
||||||
File folder = new File(filePath);
|
File folder = new File(filePath);
|
||||||
if (!folder.exists()) {
|
if (!folder.exists()) {
|
||||||
|
|
@ -179,23 +179,23 @@ public class MonitoringService {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSignalHits(PackageData packageData, MonitoringSignalResponse response, String reportFileName) {
|
private void updateSignalHits(UserPackage userPackage, MonitoringSignalResponse response, String reportFileName) {
|
||||||
log.info("Updating signal hits for {}", packageData.getPackageName());
|
log.info("Updating signal hits for {}", userPackage.getPackageName());
|
||||||
LocalDateTime responseSentAt = LocalDateTime.now();
|
LocalDateTime responseSentAt = LocalDateTime.now();
|
||||||
List<HitsData> hits = new ArrayList<>();
|
List<Hit> hits = new ArrayList<>();
|
||||||
response.getSubjects().getSubjects().forEach(subject -> {
|
response.getSubjects().getSubjects().forEach(subject -> {
|
||||||
subject.getSignals().getSignals().forEach(signal -> {
|
subject.getSignals().getSignals().forEach(signal -> {
|
||||||
HitsData hitsData = new HitsData();
|
Hit hit = new Hit();
|
||||||
hitsData.setPackageId(packageData.getId());
|
hit.setPackageId(userPackage.getId());
|
||||||
hitsData.setSubjectId(subject.getId());
|
hit.setSubjectId(subject.getId());
|
||||||
hitsData.setSignalType(1);
|
hit.setSignalType(1);
|
||||||
hitsData.setResponseSentAt(responseSentAt);
|
hit.setResponseSentAt(responseSentAt);
|
||||||
hitsData.setReportFileName(reportFileName);
|
hit.setReportFileName(reportFileName);
|
||||||
hits.add(hitsData);
|
hits.add(hit);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
signalService.setHits(hits);
|
signalService.insertHits(hits);
|
||||||
log.info("Signal hits updated for package {}", packageData.getPackageName());
|
log.info("Signal hits updated for package {}", userPackage.getPackageName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private OnlineDownloadReport loadReport(String reportName) {
|
private OnlineDownloadReport loadReport(String reportName) {
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.entities.dto.HitsData;
|
import ru.nbch.credit_tracker.entities.dto.Hit;
|
||||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
import ru.nbch.credit_tracker.entities.dto.UserPackage;
|
||||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest;
|
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.entities.request.monitoring_request.Subject;
|
||||||
import ru.nbch.credit_tracker.entities.response.active_packages.MonitoringActivePackagesResponse;
|
import ru.nbch.credit_tracker.entities.response.active_packages.MonitoringActivePackagesResponse;
|
||||||
|
|
@ -67,41 +67,46 @@ public class SignalService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPackageNotUnique(MonitoringRequest request) {
|
public boolean isPackageNotUnique(MonitoringRequest request) {
|
||||||
String userId = request.getUserId();
|
return userPackageService.isPackageNotUnique(request.getUserId(), request.getPackageName());
|
||||||
return userPackageService.isPackageNotUnique(userId.substring(0, 6), request.getPackageName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer registerPackage(MonitoringRequest request) {
|
public Integer registerPackage(MonitoringRequest request) {
|
||||||
Integer packageId = userPackageService.insertPackage(request, LocalDateTime.now(), Status.PROCESSING);
|
UserPackage userPackage = UserPackage.builder()
|
||||||
|
.userId(request.getUserId())
|
||||||
|
.packageName(request.getPackageName())
|
||||||
|
.createdAt(LocalDateTime.now())
|
||||||
|
.status(Status.PROCESSING.name())
|
||||||
|
.build();
|
||||||
|
Integer packageId = userPackageService.insertPackage(userPackage);
|
||||||
List<Subject> subjects = request.getSubjects().getSubject();
|
List<Subject> subjects = request.getSubjects().getSubject();
|
||||||
for (int i = 0; i < subjects.size(); i += batchSize) {
|
for (int i = 0; i < subjects.size(); i += batchSize) {
|
||||||
int end = Math.min(i + batchSize, subjects.size());
|
int end = Math.min(i + batchSize, subjects.size());
|
||||||
phoneFidMapService.registerSubjects(subjects.subList(i, end), packageId);
|
phoneFidMapService.registerSubjects(subjects.subList(i, end), packageId); // TODO преобразовывать список в List<PhoneFidMap> ?
|
||||||
}
|
}
|
||||||
return packageId;
|
return packageId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PhoneService.FidsPhoneData> registerSubjectsFidAndDebts(Integer packageId) {
|
public List<PhoneService.FidsPhoneData> registerSubjectsFidAndDebts(Integer packageId) {
|
||||||
List<SubjectData> subjects = phoneFidMapService.findSubjectsData(packageId);
|
List<PhoneFidMap> subjects = phoneFidMapService.findPhoneFidMaps(packageId);
|
||||||
return updateFlags(subjects, packageId);
|
return updateFlags(subjects, packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PhoneService.FidsPhoneData> updateFlags(List<SubjectData> subjects, Integer packageId) {
|
public List<PhoneService.FidsPhoneData> updateFlags(List<PhoneFidMap> subjects, Integer packageId) {
|
||||||
List<PhoneService.FidsPhoneData> fidsPhoneDataList = phoneService.findFidsPhoneData(subjects, true);
|
List<PhoneService.FidsPhoneData> fidsPhoneDataList = phoneService.findFidsPhoneData(subjects);
|
||||||
LocalDateTime calculatedAt = LocalDateTime.now();
|
LocalDateTime calculatedAt = LocalDateTime.now();
|
||||||
for (int i = 0; i < fidsPhoneDataList.size(); i += batchSize) {
|
for (int i = 0; i < fidsPhoneDataList.size(); i += batchSize) {
|
||||||
int end = Math.min(i + batchSize, fidsPhoneDataList.size());
|
int end = Math.min(i + batchSize, fidsPhoneDataList.size());
|
||||||
List<PhoneService.FidsPhoneData> currentList = fidsPhoneDataList.subList(i, end);
|
List<PhoneService.FidsPhoneData> currentList = fidsPhoneDataList.subList(i, end);
|
||||||
Map<Integer, FlagsService.FlagsData> flagsDataMap = flagsService.findFlags(currentList.stream().map(PhoneService.FidsPhoneData::getFid).filter(Objects::nonNull).toList());
|
Map<Integer, FlagsService.FlagsData> flagsDataMap = flagsService.findFlags(currentList.stream().map(PhoneService.FidsPhoneData::getFid).filter(Objects::nonNull).toList());
|
||||||
List<SubjectData> subjectToUpdate = new ArrayList<>();
|
List<PhoneFidMap> subjectToUpdate = new ArrayList<>();
|
||||||
|
|
||||||
currentList.forEach(data -> {
|
currentList.forEach(data -> {
|
||||||
SubjectData 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 SubjectData(data.getId(), packageId, data.getSubjectId(), data.getPhone(), data.getFid(), flagsData.getFlagDebt5000(), flagsData.getFlag90days(), calculatedAt);
|
subject = new PhoneFidMap(data.getId(), packageId, data.getSubjectId(), data.getPhone(), data.getFid(), flagsData.getFlagDebt5000(), flagsData.getFlag90days(), calculatedAt);
|
||||||
} else {
|
} else {
|
||||||
subject = new SubjectData(data.getId(), packageId, data.getSubjectId(), data.getPhone(), null, null, null, calculatedAt);
|
subject = new PhoneFidMap(data.getId(), packageId, data.getSubjectId(), data.getPhone(), null, null, null, calculatedAt);
|
||||||
}
|
}
|
||||||
subjectToUpdate.add(subject);
|
subjectToUpdate.add(subject);
|
||||||
});
|
});
|
||||||
|
|
@ -109,7 +114,7 @@ public class SignalService {
|
||||||
int updateBatchSize = batchSize / 8; // 8 параметров на одну запись для обновления. Максимальное количество параметров ~65000
|
int updateBatchSize = batchSize / 8; // 8 параметров на одну запись для обновления. Максимальное количество параметров ~65000
|
||||||
for (int j = 0; j < subjectToUpdate.size(); j += updateBatchSize) {
|
for (int j = 0; j < subjectToUpdate.size(); j += updateBatchSize) {
|
||||||
int endIndex = Math.min(j + updateBatchSize, subjectToUpdate.size());
|
int endIndex = Math.min(j + updateBatchSize, subjectToUpdate.size());
|
||||||
phoneFidMapService.updateSubjects(subjectToUpdate.subList(j, endIndex));
|
phoneFidMapService.updatePhoneFidMaps(subjectToUpdate.subList(j, endIndex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -117,18 +122,24 @@ public class SignalService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void rejectPackage(MonitoringRequest request) {
|
public void rejectPackage(MonitoringRequest request) {
|
||||||
userPackageService.insertPackage(request, LocalDateTime.now(), Status.REJECTED);
|
UserPackage userPackage = UserPackage.builder()
|
||||||
|
.userId(request.getUserId())
|
||||||
|
.packageName(request.getPackageName())
|
||||||
|
.createdAt(LocalDateTime.now())
|
||||||
|
.status(Status.REJECTED.name())
|
||||||
|
.build();
|
||||||
|
userPackageService.insertPackage(userPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPackageStatus(Integer packageId, Status status) {
|
public void updatePackageStatus(Integer packageId, Status status) {
|
||||||
userPackageService.setPackageStatus(packageId, status);
|
userPackageService.updatePackageStatus(packageId, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Signals buildSignals(Integer packageId, List<PhoneService.FidsPhoneData> fids) {
|
public Signals buildSignals(Integer packageId, List<PhoneService.FidsPhoneData> fids) {
|
||||||
PackageData packageData = userPackageService.findPackageData(packageId);
|
UserPackage userPackage = userPackageService.findPackage(packageId);
|
||||||
Signals signals = new Signals();
|
Signals signals = new Signals();
|
||||||
signals.setOnline("2"); // Всегда=2 (только онлайн-сигналы)
|
signals.setOnline("2"); // Всегда=2 (только онлайн-сигналы)
|
||||||
signals.setId(packageData.getUserId().substring(0, 6) + "_" + packageData.getPackageName()); // <MEMBERCODE>_<PackageName>
|
signals.setId(userPackage.getUserId().substring(0, 6) + "_" + userPackage.getPackageName()); // <MEMBERCODE>_<PackageName>
|
||||||
Auth auth = new Auth();
|
Auth auth = new Auth();
|
||||||
auth.setUser(config.getSignalsuser());
|
auth.setUser(config.getSignalsuser());
|
||||||
signals.setAuth(auth);
|
signals.setAuth(auth);
|
||||||
|
|
@ -208,12 +219,11 @@ public class SignalService {
|
||||||
|
|
||||||
|
|
||||||
public MonitoringActivePackagesResponse findActivePackages(String userId) {
|
public MonitoringActivePackagesResponse findActivePackages(String userId) {
|
||||||
String memberCode = userId.substring(0, 6);
|
|
||||||
MonitoringActivePackagesResponse activePackages = new MonitoringActivePackagesResponse();
|
MonitoringActivePackagesResponse activePackages = new MonitoringActivePackagesResponse();
|
||||||
activePackages.setStatus("OK");
|
activePackages.setStatus("OK");
|
||||||
activePackages.setMembercode(memberCode);
|
activePackages.setMembercode(userId.substring(0, 6));
|
||||||
Packages packages = new Packages();
|
Packages packages = new Packages();
|
||||||
userPackageService.findPackageDataList(memberCode, Status.ON_MONITORING).forEach(data -> {
|
userPackageService.findUserPackages(userId, Status.ON_MONITORING).forEach(data -> {
|
||||||
Package pack = new Package();
|
Package pack = new Package();
|
||||||
pack.setPackageName(data.getPackageName());
|
pack.setPackageName(data.getPackageName());
|
||||||
pack.setCreatedAt(data.getCreatedAt() != null ? data.getCreatedAt().toString() : null);
|
pack.setCreatedAt(data.getCreatedAt() != null ? data.getCreatedAt().toString() : null);
|
||||||
|
|
@ -228,12 +238,12 @@ public class SignalService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPackageExists(String username, String packageName) {
|
public boolean isPackageExists(String username, String packageName) {
|
||||||
return userPackageService.isPackageExists(username.substring(0, 6), packageName, Status.ON_MONITORING);
|
return userPackageService.isPackageExists(username, packageName, Status.ON_MONITORING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MonitoringPackageDeleteResponse deletePackage(String username, String packageName) {
|
public MonitoringPackageDeleteResponse deletePackage(String username, String packageName) {
|
||||||
LocalDateTime deactivatedAt = LocalDateTime.now();
|
LocalDateTime deactivatedAt = LocalDateTime.now();
|
||||||
userPackageService.deletePackage(username.substring(0, 6), packageName, Status.DELETED, Status.ON_MONITORING, deactivatedAt);
|
userPackageService.deletePackage(username, packageName, Status.DELETED, Status.ON_MONITORING, deactivatedAt);
|
||||||
|
|
||||||
MonitoringPackageDeleteResponse deleteResponse = new MonitoringPackageDeleteResponse();
|
MonitoringPackageDeleteResponse deleteResponse = new MonitoringPackageDeleteResponse();
|
||||||
deleteResponse.setStatus("Deleted");
|
deleteResponse.setStatus("Deleted");
|
||||||
|
|
@ -242,19 +252,19 @@ public class SignalService {
|
||||||
return deleteResponse;
|
return deleteResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PackageData> findPackagesOnMonitoring() {
|
public List<UserPackage> findPackagesOnMonitoring() {
|
||||||
return userPackageService.findPackagesByStatus(Status.ON_MONITORING);
|
return userPackageService.findAllPackagesByStatus(Status.ON_MONITORING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SubjectData> findFullSubjectsData(Integer packageId) {
|
public List<PhoneFidMap> findFullSubjectsData(Integer packageId) {
|
||||||
return phoneFidMapService.findFullSubjectsData(packageId);
|
return phoneFidMapService.findFullPhoneFidMap(packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHits(List<HitsData> hits) {
|
public void insertHits(List<Hit> hits) {
|
||||||
hitsService.setHits(hits);
|
hitsService.insertHits(hits);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateLastDownloadedReport(Integer id, String fileName) {
|
public void updateLastDownloadedReport(Integer id, String fileName) {
|
||||||
userPackageService.setPackageLastDownloadedReport(id, fileName);
|
userPackageService.updatePackageLastDownloadedReport(id, fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ package ru.nbch.credit_tracker.service;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
import ru.nbch.credit_tracker.entities.dto.UserPackage;
|
||||||
import ru.nbch.credit_tracker.entities.signal_package.Signals;
|
import ru.nbch.credit_tracker.entities.signal_package.Signals;
|
||||||
import ru.nbch.credit_tracker.enums.Status;
|
import ru.nbch.credit_tracker.enums.Status;
|
||||||
import ru.nbch.credit_tracker.service.indic.PhoneService;
|
import ru.nbch.credit_tracker.service.indic.PhoneService;
|
||||||
|
|
@ -42,32 +42,32 @@ public class UpdatingFlagsService {
|
||||||
|
|
||||||
private void update() {
|
private void update() {
|
||||||
log.info("Start updating flags");
|
log.info("Start updating flags");
|
||||||
List<PackageData> packages = signalService.findPackagesOnMonitoring();
|
List<UserPackage> packages = signalService.findPackagesOnMonitoring();
|
||||||
for (PackageData packageData : packages) {
|
for (UserPackage userPackage : packages) {
|
||||||
log.info("Updating flags for Package {}", packageData.getPackageName());
|
log.info("Updating flags for Package {}", userPackage.getPackageName());
|
||||||
List<SubjectData> subjects = signalService.findFullSubjectsData(packageData.getId())
|
List<PhoneFidMap> subjects = signalService.findFullSubjectsData(userPackage.getId())
|
||||||
.stream().filter(subject -> subject.getCalculatedAt() != null && hasDaysPassed(subject.getCalculatedAt())).toList();
|
.stream().filter(subject -> subject.getCalculatedAt() != null && hasDaysPassed(subject.getCalculatedAt())).toList();
|
||||||
updateFlags(packageData.getId(), subjects, packageData.getPackageName());
|
updateFlags(userPackage.getId(), subjects, userPackage.getPackageName());
|
||||||
}
|
}
|
||||||
log.info("Finish updating flags");
|
log.info("Finish updating flags");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFlags(Integer packageId, List<SubjectData> subjects, String packageName) {
|
private void updateFlags(Integer packageId, List<PhoneFidMap> subjects, String packageName) {
|
||||||
try {
|
try {
|
||||||
signalService.setPackageStatus(packageId, Status.PROCESSING);
|
signalService.updatePackageStatus(packageId, Status.PROCESSING);
|
||||||
List<PhoneService.FidsPhoneData> phoneFidsData = signalService.updateFlags(subjects, packageId);
|
List<PhoneService.FidsPhoneData> phoneFidsData = signalService.updateFlags(subjects, packageId);
|
||||||
if (!phoneFidsData.isEmpty()) {
|
if (!phoneFidsData.isEmpty()) {
|
||||||
Signals signals = signalService.buildSignals(packageId, phoneFidsData);
|
Signals signals = signalService.buildSignals(packageId, phoneFidsData);
|
||||||
if (signalRestService.update(signals)) {
|
if (signalRestService.update(signals)) {
|
||||||
log.info("Flags were updated successfully. PackageId: {} PackageName: {}. Package status changed to ON_MONITORING", packageId, packageName);
|
log.info("Flags were updated successfully. PackageId: {} PackageName: {}. Package status changed to ON_MONITORING", packageId, packageName);
|
||||||
signalService.setPackageStatus(packageId, Status.ON_MONITORING);
|
signalService.updatePackageStatus(packageId, Status.ON_MONITORING);
|
||||||
} else {
|
} else {
|
||||||
log.info("Updated package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName);
|
log.info("Updated package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName);
|
||||||
signalService.setPackageStatus(packageId, Status.ERROR);
|
signalService.updatePackageStatus(packageId, Status.ERROR);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.info("No flags were updated for package id {}. Package status changed to ON_MONITORING", packageId);
|
log.info("No flags were updated for package id {}. Package status changed to ON_MONITORING", packageId);
|
||||||
signalService.setPackageStatus(packageId, Status.ON_MONITORING);
|
signalService.updatePackageStatus(packageId, Status.ON_MONITORING);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Ошибка при поиске фидов или перерасчете флагов просрочек. Package_id {}", packageId, e);
|
log.error("Ошибка при поиске фидов или перерасчете флагов просрочек. Package_id {}", packageId, e);
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||||
import ru.nbch.credit_tracker.mapper.indic.PhoneMapper;
|
import ru.nbch.credit_tracker.mapper.indic.PhoneMapper;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
@ -20,16 +20,12 @@ public class PhoneService {
|
||||||
this.mapper = mapper;
|
this.mapper = mapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<FidsPhoneData> findFidsPhoneData(List<SubjectData> subjects) {
|
public List<FidsPhoneData> findFidsPhoneData(List<PhoneFidMap> subjects) {
|
||||||
return findFidsPhoneData(subjects, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<FidsPhoneData> findFidsPhoneData(List<SubjectData> subjects, boolean processNullFids) {
|
|
||||||
List<FidsPhoneData> fidsPhoneDataList = new ArrayList<>();
|
List<FidsPhoneData> fidsPhoneDataList = new ArrayList<>();
|
||||||
int batchSize = 10000;
|
int batchSize = 10000;
|
||||||
for (int i = 0; i < subjects.size(); i += batchSize) {
|
for (int i = 0; i < subjects.size(); i += batchSize) {
|
||||||
int end = Math.min(i + batchSize, subjects.size());
|
int end = Math.min(i + batchSize, subjects.size());
|
||||||
List<SubjectData> currentSubjects = subjects.subList(i, end);
|
List<PhoneFidMap> currentSubjects = subjects.subList(i, end);
|
||||||
List<String> phones = currentSubjects.stream().map(subject -> "9" + subject.getPhone()).toList();
|
List<String> phones = currentSubjects.stream().map(subject -> "9" + subject.getPhone()).toList();
|
||||||
List<FidsData> fidsData = mapper.findFids(phones);
|
List<FidsData> fidsData = mapper.findFids(phones);
|
||||||
|
|
||||||
|
|
@ -40,7 +36,7 @@ public class PhoneService {
|
||||||
Integer fid = fidsMap.get(phone);
|
Integer fid = fidsMap.get(phone);
|
||||||
if (fid != null) {
|
if (fid != null) {
|
||||||
fidsPhoneDataList.add(new FidsPhoneData(subject.getId(), fid, subject.getPhone(), subject.getSubjectId()));
|
fidsPhoneDataList.add(new FidsPhoneData(subject.getId(), fid, subject.getPhone(), subject.getSubjectId()));
|
||||||
} else if (processNullFids) {
|
} else {
|
||||||
fidsPhoneDataList.add(new FidsPhoneData(subject.getId(), null, subject.getPhone(), subject.getSubjectId()));
|
fidsPhoneDataList.add(new FidsPhoneData(subject.getId(), null, subject.getPhone(), subject.getSubjectId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package ru.nbch.credit_tracker.service.signal;
|
package ru.nbch.credit_tracker.service.signal;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.entities.dto.HitsData;
|
import ru.nbch.credit_tracker.entities.dto.Hit;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.HitsMapper;
|
import ru.nbch.credit_tracker.mapper.signal.HitsMapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -15,7 +15,7 @@ public class HitsService {
|
||||||
this.mapper = mapper;
|
this.mapper = mapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHits(List<HitsData> hits) {
|
public void insertHits(List<Hit> hits) {
|
||||||
mapper.setHits(hits);
|
mapper.insertHits(hits);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
package ru.nbch.credit_tracker.service.signal;
|
package ru.nbch.credit_tracker.service.signal;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.Subject;
|
import ru.nbch.credit_tracker.entities.request.monitoring_request.Subject;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper;
|
import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
|
@ -21,19 +20,15 @@ public class PhoneFidMapService {
|
||||||
mapper.registerSubjects(subjects, packageId);
|
mapper.registerSubjects(subjects, packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerSubjectsFidAndDebts(Integer id, Integer fid, Integer flagDebt5000, Integer flag90, LocalDateTime calculatedAt) {
|
public List<PhoneFidMap> findPhoneFidMaps(Integer packageId) {
|
||||||
mapper.registerSubjectsFidAndDebts(id, fid, flagDebt5000, flag90, calculatedAt);
|
return mapper.findPhoneFidMaps(packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SubjectData> findSubjectsData(Integer packageId) {
|
public List<PhoneFidMap> findFullPhoneFidMap(Integer packageId) {
|
||||||
return mapper.findSubjectsData(packageId);
|
return mapper.findFullPhoneFidMap(packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SubjectData> findFullSubjectsData( Integer packageId) {
|
public void updatePhoneFidMaps(List<PhoneFidMap> subjects) {
|
||||||
return mapper.findFullSubjectsData(packageId);
|
mapper.updatePhoneFidMaps(subjects);
|
||||||
}
|
|
||||||
|
|
||||||
public void updateSubjects(List<SubjectData> subjects) {
|
|
||||||
mapper.updateSubjects(subjects);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
package ru.nbch.credit_tracker.service.signal;
|
package ru.nbch.credit_tracker.service.signal;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
import ru.nbch.credit_tracker.entities.dto.UserPackage;
|
||||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest;
|
|
||||||
import ru.nbch.credit_tracker.enums.Status;
|
import ru.nbch.credit_tracker.enums.Status;
|
||||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
||||||
|
|
||||||
|
|
@ -19,38 +18,38 @@ public class UserPackageService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPackageNotUnique(String userId, String packageName) {
|
public boolean isPackageNotUnique(String userId, String packageName) {
|
||||||
return mapper.isPackageNotUnique(userId, packageName);
|
return mapper.isPackageNotUnique(userId.substring(0, 6), packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPackageExists(String userId, String packageName, Status status) {
|
public boolean isPackageExists(String userId, String packageName, Status status) {
|
||||||
return mapper.isPackageExists(userId, packageName, status.name());
|
return mapper.isPackageExists(userId.substring(0, 6), packageName, status.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deletePackage(String userId, String packageName, Status newStatus, Status previousStatus, LocalDateTime deactivatedAt) {
|
public void deletePackage(String userId, String packageName, Status newStatus, Status previousStatus, LocalDateTime deactivatedAt) {
|
||||||
mapper.deletePackage(userId, packageName, newStatus.name(), previousStatus.name(), deactivatedAt);
|
mapper.deletePackage(userId.substring(0, 6), packageName, newStatus.name(), previousStatus.name(), deactivatedAt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer insertPackage(MonitoringRequest request, LocalDateTime creadedAt, Status status) {
|
public Integer insertPackage(UserPackage userPackage) {
|
||||||
return mapper.insertPackage(request, creadedAt, status.name());
|
return mapper.insertPackage(userPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPackageStatus(Integer packageId, Status status) {
|
public void updatePackageStatus(Integer packageId, Status status) {
|
||||||
mapper.setPackageStatus(packageId, status.name());
|
mapper.updatePackageStatus(packageId, status.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPackageLastDownloadedReport(Integer id, String fileName) {
|
public void updatePackageLastDownloadedReport(Integer id, String fileName) {
|
||||||
mapper.setPackageLastDownloadedReport(id, fileName);
|
mapper.updatePackageLastDownloadedReport(id, fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PackageData findPackageData(Integer id) {
|
public UserPackage findPackage(Integer id) {
|
||||||
return mapper.findPackageData(id);
|
return mapper.findPackage(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PackageData> findPackageDataList(String userId, Status status) {
|
public List<UserPackage> findUserPackages(String userId, Status status) {
|
||||||
return mapper.findPackageDataList(userId, status.name());
|
return mapper.findUserPackages(userId.substring(0, 6), status.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PackageData> findPackagesByStatus(Status status) {
|
public List<UserPackage> findAllPackagesByStatus(Status status) {
|
||||||
return mapper.findPackagesByStatus(status.name());
|
return mapper.findAllPackagesByStatus(status.name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<mapper namespace="ru.nbch.credit_tracker.mapper.signal.HitsMapper">
|
<mapper namespace="ru.nbch.credit_tracker.mapper.signal.HitsMapper">
|
||||||
|
|
||||||
<insert id="setHits" parameterType="java.util.List">
|
<insert id="insertHits" parameterType="java.util.List">
|
||||||
INSERT INTO signals_hits (package_id, subject_id, signal_type, response_sent_at, report_file_name)
|
INSERT INTO signals_hits (package_id, subject_id, signal_type, response_sent_at, report_file_name)
|
||||||
values
|
values
|
||||||
<foreach collection="hits" item="hit" separator=",">
|
<foreach collection="hits" item="hit" separator=",">
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<mapper namespace="ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper">
|
<mapper namespace="ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper">
|
||||||
|
|
||||||
<resultMap id="subjectDataResultMap" type="ru.nbch.credit_tracker.entities.dto.SubjectData">
|
<resultMap id="PhoneFidMapResultMap" type="ru.nbch.credit_tracker.entities.dto.PhoneFidMap">
|
||||||
<result property="id" column="id"/>
|
<result property="id" column="id"/>
|
||||||
<result property="packageId" column="package_id"/>
|
<result property="packageId" column="package_id"/>
|
||||||
<result property="subjectId" column="subject_id"/>
|
<result property="subjectId" column="subject_id"/>
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
|
||||||
<update id="updateSubjects" parameterType="java.util.List">
|
<update id="updatePhoneFidMaps" parameterType="java.util.List">
|
||||||
<foreach collection="subjects" item="subject" separator=";">
|
<foreach collection="subjects" item="subject" separator=";">
|
||||||
UPDATE signals_phone_fid_map
|
UPDATE signals_phone_fid_map
|
||||||
SET
|
SET
|
||||||
|
|
@ -40,19 +40,13 @@
|
||||||
</foreach>
|
</foreach>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="registerSubjectsFidAndDebts">
|
<select id="findPhoneFidMaps" resultMap="PhoneFidMapResultMap" resultType="java.util.List">
|
||||||
UPDATE signals_phone_fid_map
|
|
||||||
SET fid = #{fid}, flag_debt5000 = #{flagDebt5000}, flag_90_12 = #{flag90}, calculated_at = #{calculatedAt}
|
|
||||||
WHERE id = #{id}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<select id="findSubjectsData" resultMap="subjectDataResultMap" resultType="java.util.List">
|
|
||||||
SELECT id, subject_id, phone
|
SELECT id, subject_id, phone
|
||||||
FROM signals_phone_fid_map
|
FROM signals_phone_fid_map
|
||||||
WHERE package_id = #{packageId}
|
WHERE package_id = #{packageId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findFullSubjectsData" resultMap="subjectDataResultMap" resultType="java.util.List">
|
<select id="findFullPhoneFidMap" resultMap="PhoneFidMapResultMap" resultType="java.util.List">
|
||||||
SELECT id,
|
SELECT id,
|
||||||
package_id,
|
package_id,
|
||||||
subject_id,
|
subject_id,
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<mapper namespace="ru.nbch.credit_tracker.mapper.signal.UserPackageMapper">
|
<mapper namespace="ru.nbch.credit_tracker.mapper.signal.UserPackageMapper">
|
||||||
|
|
||||||
<resultMap id="packageDataResultMap" type="ru.nbch.credit_tracker.entities.dto.PackageData">
|
<resultMap id="packageDataResultMap" type="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||||
<result property="id" column="id"/>
|
<result property="id" column="id"/>
|
||||||
<result property="userId" column="membercode"/>
|
<result property="userId" column="membercode"/>
|
||||||
<result property="packageName" column="package_name"/>
|
<result property="packageName" column="package_name"/>
|
||||||
|
|
@ -38,40 +38,34 @@
|
||||||
#{previousStatus}
|
#{previousStatus}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="registerPackage" resultType="java.lang.Integer"
|
<select id="insertPackage" resultType="java.lang.Integer"
|
||||||
parameterType="ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest">
|
parameterType="ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest">
|
||||||
INSERT INTO signals_user_packages (membercode, package_name, created_at, status)
|
INSERT INTO signals_user_packages (membercode, package_name, created_at, status)
|
||||||
values (#{request.userId}, #{request.packageName}, #{creadedAt}, #{status}) RETURNING id
|
values (#{userPackage.userId}, #{userPackage.packageName}, #{userPackage.creadedAt}, #{userPackage.status}) RETURNING id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertPackage"
|
<update id="updatePackageStatus">
|
||||||
parameterType="ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest">
|
|
||||||
INSERT INTO signals_user_packages (membercode, package_name, created_at, status)
|
|
||||||
values (#{request.userId}, #{request.packageName}, #{creadedAt}, #{status})
|
|
||||||
</insert>
|
|
||||||
|
|
||||||
<update id="setPackageStatus">
|
|
||||||
UPDATE signals_user_packages
|
UPDATE signals_user_packages
|
||||||
SET status = #{status}
|
SET status = #{status}
|
||||||
WHERE id = #{packageId}
|
WHERE id = #{packageId}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="setPackageLastDownloadedReport">
|
<update id="updatePackageLastDownloadedReport">
|
||||||
UPDATE signals_user_packages
|
UPDATE signals_user_packages
|
||||||
SET last_downloaded_report = #{fileName}
|
SET last_downloaded_report = #{fileName}
|
||||||
WHERE id = #{id}
|
WHERE id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="findPackageData" resultMap="packageDataResultMap"
|
<select id="findPackage" resultMap="packageDataResultMap"
|
||||||
resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||||
SELECT membercode, package_name
|
SELECT membercode, package_name
|
||||||
FROM signals_user_packages
|
FROM signals_user_packages
|
||||||
WHERE id = #{id}
|
WHERE id = #{id}
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findPackageDataList" resultMap="packageDataResultMap"
|
<select id="findUserPackages" resultMap="packageDataResultMap"
|
||||||
resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||||
SELECT package_name, created_at
|
SELECT package_name, created_at
|
||||||
FROM signals_user_packages
|
FROM signals_user_packages
|
||||||
WHERE membercode IS NOT NULL
|
WHERE membercode IS NOT NULL
|
||||||
|
|
@ -79,8 +73,8 @@
|
||||||
AND status = #{status}
|
AND status = #{status}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="findPackagesByStatus" resultMap="packageDataResultMap"
|
<select id="findAllPackagesByStatus" resultMap="packageDataResultMap"
|
||||||
resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||||
SELECT id, membercode, package_name, created_at, last_downloaded_report
|
SELECT id, membercode, package_name, created_at, last_downloaded_report
|
||||||
FROM signals_user_packages
|
FROM signals_user_packages
|
||||||
WHERE status = #{status}
|
WHERE status = #{status}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue