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
|
||||
@Setter
|
||||
public class HitsData {
|
||||
public class Hit {
|
||||
private Integer id;
|
||||
private Integer packageId;
|
||||
private String subjectId;
|
||||
|
|
@ -1,10 +1,6 @@
|
|||
package ru.nbch.credit_tracker.entities.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
|
@ -13,7 +9,7 @@ import java.time.LocalDateTime;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class SubjectData {
|
||||
public class PhoneFidMap {
|
||||
private Integer id;
|
||||
private Integer packageId;
|
||||
private String subjectId;
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package ru.nbch.credit_tracker.entities.dto;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
|
|
@ -7,7 +8,8 @@ import java.time.LocalDateTime;
|
|||
|
||||
@Getter
|
||||
@Setter
|
||||
public class PackageData {
|
||||
@Builder
|
||||
public class UserPackage {
|
||||
private Integer id;
|
||||
private String userId;
|
||||
private String packageName;
|
||||
|
|
@ -1,14 +1,5 @@
|
|||
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 org.springframework.beans.factory.annotation.Qualifier;
|
||||
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.Subject;
|
||||
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.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.errors.*;
|
||||
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.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.ValidationUtil;
|
||||
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;
|
||||
|
||||
@Slf4j
|
||||
|
|
@ -221,14 +219,14 @@ public class SignalFacade {
|
|||
// TODO validate xsd?
|
||||
if (signalRestService.update(signals)) {
|
||||
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 {
|
||||
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) {
|
||||
signalService.setPackageStatus(packageId, Status.ERROR);
|
||||
signalService.updatePackageStatus(packageId, Status.ERROR);
|
||||
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.Param;
|
||||
import ru.nbch.credit_tracker.entities.dto.HitsData;
|
||||
import ru.nbch.credit_tracker.entities.dto.Hit;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
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.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 java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
|
|
@ -13,12 +12,10 @@ public interface PhoneFidMapMapper {
|
|||
|
||||
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 updateSubjects(@Param("subjects") List<SubjectData> subjects);
|
||||
void updatePhoneFidMaps(@Param("subjects") List<PhoneFidMap> subjects);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ 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.PackageData;
|
||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest;
|
||||
import ru.nbch.credit_tracker.entities.dto.UserPackage;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
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);
|
||||
|
||||
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 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.dto.Hit;
|
||||
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||
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.online_download.Inquiry;
|
||||
import ru.nbch.credit_tracker.entities.response.online_download.OnlineDownloadReport;
|
||||
|
|
@ -57,13 +57,13 @@ public class MonitoringService {
|
|||
|
||||
private void monitor() {
|
||||
log.info("Start monitoring");
|
||||
List<PackageData> packages = signalService.findPackagesOnMonitoring();
|
||||
for (PackageData packageData : packages) {
|
||||
log.info("Processing package {}", packageData.getPackageName());
|
||||
SgnlOnlineReport onlineReports = signalRestService.getReports(packageData.getUserId().substring(0, 6) + "_" + packageData.getPackageName());
|
||||
List<UserPackage> packages = signalService.findPackagesOnMonitoring();
|
||||
for (UserPackage userPackage : packages) {
|
||||
log.info("Processing package {}", userPackage.getPackageName());
|
||||
SgnlOnlineReport onlineReports = signalRestService.getReports(userPackage.getUserId().substring(0, 6) + "_" + userPackage.getPackageName());
|
||||
|
||||
if (onlineReports == null) {
|
||||
log.info("No reports found for package {}", packageData.getPackageName());
|
||||
log.info("No reports found for package {}", userPackage.getPackageName());
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -71,7 +71,7 @@ public class MonitoringService {
|
|||
.filter(fileName -> CTUtil.parseDateFromReportFileName(fileName) != null).toList(); // TODO оптимизировать
|
||||
|
||||
if (fileNames.isEmpty()) {
|
||||
log.info("No new report found for package {}", packageData.getPackageName());
|
||||
log.info("No new report found for package {}", userPackage.getPackageName());
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -79,16 +79,16 @@ public class MonitoringService {
|
|||
.orElseGet(Collections::emptyList)
|
||||
.stream().max(Comparator.comparing(CTUtil::parseDateFromReportFileName)); // отфильтровали только те имена, которые парсятся в дату, так что null тут не придет
|
||||
|
||||
LocalDateTime lastDownloadedReportDate = CTUtil.parseDateFromReportFileName(packageData.getLastDownloadedReport());
|
||||
LocalDateTime lastDownloadedReportDate = CTUtil.parseDateFromReportFileName(userPackage.getLastDownloadedReport());
|
||||
|
||||
if (packageData.getLastDownloadedReport() != null) {
|
||||
log.info("Last downloaded report found for package {}. Last Downloaded Report Name: {}", packageData.getPackageName(), packageData.getLastDownloadedReport());
|
||||
if (userPackage.getLastDownloadedReport() != null) {
|
||||
log.info("Last downloaded report found for package {}. Last Downloaded Report Name: {}", userPackage.getPackageName(), userPackage.getLastDownloadedReport());
|
||||
} else {
|
||||
log.info("Last Downloaded Report Name is empty");
|
||||
}
|
||||
|
||||
OnlineDownloadReport report = null;
|
||||
if (packageData.getLastDownloadedReport() == null && newReport.isPresent()) {
|
||||
if (userPackage.getLastDownloadedReport() == null && newReport.isPresent()) {
|
||||
report = loadReport(newReport.get()); // по этому пакету еще не было загруженных отчетов, продолжаем работу с полученным
|
||||
} else if (lastDownloadedReportDate != null && newReport.isPresent()) {
|
||||
LocalDateTime newReportDate = CTUtil.parseDateFromReportFileName(newReport.get());
|
||||
|
|
@ -97,28 +97,28 @@ public class MonitoringService {
|
|||
}
|
||||
}
|
||||
if (report == null) {
|
||||
log.info("Report was not loaded for package {}", packageData.getPackageName());
|
||||
log.info("Report was not loaded for package {}", userPackage.getPackageName());
|
||||
continue;
|
||||
}
|
||||
|
||||
MonitoringSignalResponse response = generateResponse(packageData, report.getPersons().getPersons());
|
||||
String fileName = createResponseFile(packageData, response);
|
||||
MonitoringSignalResponse response = generateResponse(userPackage, report.getPersons().getPersons());
|
||||
String fileName = createResponseFile(userPackage, response);
|
||||
if (fileName != null) {
|
||||
log.info("New report fileName: {}", fileName);
|
||||
updateSignalHits(packageData, response, fileName);
|
||||
signalService.updateLastDownloadedReport(packageData.getId(), newReport.get());
|
||||
updateSignalHits(userPackage, response, fileName);
|
||||
signalService.updateLastDownloadedReport(userPackage.getId(), newReport.get());
|
||||
} 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");
|
||||
}
|
||||
|
||||
private MonitoringSignalResponse generateResponse(PackageData packageData, List<Person> persons) {
|
||||
private MonitoringSignalResponse generateResponse(UserPackage userPackage, List<Person> persons) {
|
||||
MonitoringSignalResponse response = new MonitoringSignalResponse();
|
||||
response.setPackageName(packageData.getPackageName()); // Имя пакета, переданного при установке
|
||||
response.setPackageName(userPackage.getPackageName()); // Имя пакета, переданного при установке
|
||||
Subjects subjects = new Subjects();
|
||||
List<SubjectData> subjectDataList = signalService.findFullSubjectsData(packageData.getId());
|
||||
List<PhoneFidMap> phoneFidMapList = signalService.findFullSubjectsData(userPackage.getId());
|
||||
for (Person person : persons) {
|
||||
Signals signals = new Signals();
|
||||
for (Inquiry inquiry : person.getInquiries()) {
|
||||
|
|
@ -135,7 +135,7 @@ public class MonitoringService {
|
|||
|
||||
// Если есть хотя бы один заполненный сигнал, значит заполняем остальные данные
|
||||
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.setId(subjectData.getSubjectId()); // Уникальный идентификатор субъекта (равен Id из XML-пакета при установке мониторинга)
|
||||
subject.setClientId(subjectData.getPhone());
|
||||
|
|
@ -150,10 +150,10 @@ public class MonitoringService {
|
|||
return response;
|
||||
}
|
||||
|
||||
private String createResponseFile(PackageData packageData, MonitoringSignalResponse response) {
|
||||
private String createResponseFile(UserPackage userPackage, MonitoringSignalResponse response) {
|
||||
try {
|
||||
String fileName = CTUtil.generateResponseReportFileName(packageData.getUserId(), packageData.getPackageName());
|
||||
String filePath = config.getLoadDir() + File.separator + packageData.getUserId().substring(0, 6) + File.separator;
|
||||
String fileName = CTUtil.generateResponseReportFileName(userPackage.getUserId(), userPackage.getPackageName());
|
||||
String filePath = config.getLoadDir() + File.separator + userPackage.getUserId().substring(0, 6) + File.separator;
|
||||
|
||||
File folder = new File(filePath);
|
||||
if (!folder.exists()) {
|
||||
|
|
@ -179,23 +179,23 @@ public class MonitoringService {
|
|||
return null;
|
||||
}
|
||||
|
||||
private void updateSignalHits(PackageData packageData, MonitoringSignalResponse response, String reportFileName) {
|
||||
log.info("Updating signal hits for {}", packageData.getPackageName());
|
||||
private void updateSignalHits(UserPackage userPackage, MonitoringSignalResponse response, String reportFileName) {
|
||||
log.info("Updating signal hits for {}", userPackage.getPackageName());
|
||||
LocalDateTime responseSentAt = LocalDateTime.now();
|
||||
List<HitsData> hits = new ArrayList<>();
|
||||
List<Hit> hits = new ArrayList<>();
|
||||
response.getSubjects().getSubjects().forEach(subject -> {
|
||||
subject.getSignals().getSignals().forEach(signal -> {
|
||||
HitsData hitsData = new HitsData();
|
||||
hitsData.setPackageId(packageData.getId());
|
||||
hitsData.setSubjectId(subject.getId());
|
||||
hitsData.setSignalType(1);
|
||||
hitsData.setResponseSentAt(responseSentAt);
|
||||
hitsData.setReportFileName(reportFileName);
|
||||
hits.add(hitsData);
|
||||
Hit hit = new Hit();
|
||||
hit.setPackageId(userPackage.getId());
|
||||
hit.setSubjectId(subject.getId());
|
||||
hit.setSignalType(1);
|
||||
hit.setResponseSentAt(responseSentAt);
|
||||
hit.setReportFileName(reportFileName);
|
||||
hits.add(hit);
|
||||
});
|
||||
});
|
||||
signalService.setHits(hits);
|
||||
log.info("Signal hits updated for package {}", packageData.getPackageName());
|
||||
signalService.insertHits(hits);
|
||||
log.info("Signal hits updated for package {}", userPackage.getPackageName());
|
||||
}
|
||||
|
||||
private OnlineDownloadReport loadReport(String reportName) {
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ import lombok.extern.slf4j.Slf4j;
|
|||
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.dto.Hit;
|
||||
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||
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.Subject;
|
||||
import ru.nbch.credit_tracker.entities.response.active_packages.MonitoringActivePackagesResponse;
|
||||
|
|
@ -67,41 +67,46 @@ public class SignalService {
|
|||
}
|
||||
|
||||
public boolean isPackageNotUnique(MonitoringRequest request) {
|
||||
String userId = request.getUserId();
|
||||
return userPackageService.isPackageNotUnique(userId.substring(0, 6), request.getPackageName());
|
||||
return userPackageService.isPackageNotUnique(request.getUserId(), request.getPackageName());
|
||||
}
|
||||
|
||||
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();
|
||||
for (int i = 0; i < subjects.size(); i += batchSize) {
|
||||
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;
|
||||
}
|
||||
|
||||
public List<PhoneService.FidsPhoneData> registerSubjectsFidAndDebts(Integer packageId) {
|
||||
List<SubjectData> subjects = phoneFidMapService.findSubjectsData(packageId);
|
||||
List<PhoneFidMap> subjects = phoneFidMapService.findPhoneFidMaps(packageId);
|
||||
return updateFlags(subjects, packageId);
|
||||
}
|
||||
|
||||
public List<PhoneService.FidsPhoneData> updateFlags(List<SubjectData> subjects, Integer packageId) {
|
||||
List<PhoneService.FidsPhoneData> fidsPhoneDataList = phoneService.findFidsPhoneData(subjects, true);
|
||||
public List<PhoneService.FidsPhoneData> updateFlags(List<PhoneFidMap> subjects, Integer packageId) {
|
||||
List<PhoneService.FidsPhoneData> fidsPhoneDataList = phoneService.findFidsPhoneData(subjects);
|
||||
LocalDateTime calculatedAt = LocalDateTime.now();
|
||||
for (int i = 0; i < fidsPhoneDataList.size(); i += batchSize) {
|
||||
int end = Math.min(i + batchSize, fidsPhoneDataList.size());
|
||||
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());
|
||||
List<SubjectData> subjectToUpdate = new ArrayList<>();
|
||||
List<PhoneFidMap> subjectToUpdate = new ArrayList<>();
|
||||
|
||||
currentList.forEach(data -> {
|
||||
SubjectData subject;
|
||||
PhoneFidMap subject;
|
||||
if (data.getFid() != null) {
|
||||
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 {
|
||||
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);
|
||||
});
|
||||
|
|
@ -109,7 +114,7 @@ public class SignalService {
|
|||
int updateBatchSize = batchSize / 8; // 8 параметров на одну запись для обновления. Максимальное количество параметров ~65000
|
||||
for (int j = 0; j < subjectToUpdate.size(); j += updateBatchSize) {
|
||||
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) {
|
||||
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) {
|
||||
userPackageService.setPackageStatus(packageId, status);
|
||||
public void updatePackageStatus(Integer packageId, Status status) {
|
||||
userPackageService.updatePackageStatus(packageId, status);
|
||||
}
|
||||
|
||||
public Signals buildSignals(Integer packageId, List<PhoneService.FidsPhoneData> fids) {
|
||||
PackageData packageData = userPackageService.findPackageData(packageId);
|
||||
UserPackage userPackage = userPackageService.findPackage(packageId);
|
||||
Signals signals = new Signals();
|
||||
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.setUser(config.getSignalsuser());
|
||||
signals.setAuth(auth);
|
||||
|
|
@ -208,12 +219,11 @@ public class SignalService {
|
|||
|
||||
|
||||
public MonitoringActivePackagesResponse findActivePackages(String userId) {
|
||||
String memberCode = userId.substring(0, 6);
|
||||
MonitoringActivePackagesResponse activePackages = new MonitoringActivePackagesResponse();
|
||||
activePackages.setStatus("OK");
|
||||
activePackages.setMembercode(memberCode);
|
||||
activePackages.setMembercode(userId.substring(0, 6));
|
||||
Packages packages = new Packages();
|
||||
userPackageService.findPackageDataList(memberCode, Status.ON_MONITORING).forEach(data -> {
|
||||
userPackageService.findUserPackages(userId, Status.ON_MONITORING).forEach(data -> {
|
||||
Package pack = new Package();
|
||||
pack.setPackageName(data.getPackageName());
|
||||
pack.setCreatedAt(data.getCreatedAt() != null ? data.getCreatedAt().toString() : null);
|
||||
|
|
@ -228,12 +238,12 @@ public class SignalService {
|
|||
}
|
||||
|
||||
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) {
|
||||
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();
|
||||
deleteResponse.setStatus("Deleted");
|
||||
|
|
@ -242,19 +252,19 @@ public class SignalService {
|
|||
return deleteResponse;
|
||||
}
|
||||
|
||||
public List<PackageData> findPackagesOnMonitoring() {
|
||||
return userPackageService.findPackagesByStatus(Status.ON_MONITORING);
|
||||
public List<UserPackage> findPackagesOnMonitoring() {
|
||||
return userPackageService.findAllPackagesByStatus(Status.ON_MONITORING);
|
||||
}
|
||||
|
||||
public List<SubjectData> findFullSubjectsData(Integer packageId) {
|
||||
return phoneFidMapService.findFullSubjectsData(packageId);
|
||||
public List<PhoneFidMap> findFullSubjectsData(Integer packageId) {
|
||||
return phoneFidMapService.findFullPhoneFidMap(packageId);
|
||||
}
|
||||
|
||||
public void setHits(List<HitsData> hits) {
|
||||
hitsService.setHits(hits);
|
||||
public void insertHits(List<Hit> hits) {
|
||||
hitsService.insertHits(hits);
|
||||
}
|
||||
|
||||
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 org.springframework.stereotype.Service;
|
||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
||||
import ru.nbch.credit_tracker.entities.dto.SubjectData;
|
||||
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||
import ru.nbch.credit_tracker.entities.dto.UserPackage;
|
||||
import ru.nbch.credit_tracker.entities.signal_package.Signals;
|
||||
import ru.nbch.credit_tracker.enums.Status;
|
||||
import ru.nbch.credit_tracker.service.indic.PhoneService;
|
||||
|
|
@ -42,32 +42,32 @@ public class UpdatingFlagsService {
|
|||
|
||||
private void update() {
|
||||
log.info("Start updating flags");
|
||||
List<PackageData> packages = signalService.findPackagesOnMonitoring();
|
||||
for (PackageData packageData : packages) {
|
||||
log.info("Updating flags for Package {}", packageData.getPackageName());
|
||||
List<SubjectData> subjects = signalService.findFullSubjectsData(packageData.getId())
|
||||
List<UserPackage> packages = signalService.findPackagesOnMonitoring();
|
||||
for (UserPackage userPackage : packages) {
|
||||
log.info("Updating flags for Package {}", userPackage.getPackageName());
|
||||
List<PhoneFidMap> subjects = signalService.findFullSubjectsData(userPackage.getId())
|
||||
.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");
|
||||
}
|
||||
|
||||
private void updateFlags(Integer packageId, List<SubjectData> subjects, String packageName) {
|
||||
private void updateFlags(Integer packageId, List<PhoneFidMap> subjects, String packageName) {
|
||||
try {
|
||||
signalService.setPackageStatus(packageId, Status.PROCESSING);
|
||||
signalService.updatePackageStatus(packageId, Status.PROCESSING);
|
||||
List<PhoneService.FidsPhoneData> phoneFidsData = signalService.updateFlags(subjects, packageId);
|
||||
if (!phoneFidsData.isEmpty()) {
|
||||
Signals signals = signalService.buildSignals(packageId, phoneFidsData);
|
||||
if (signalRestService.update(signals)) {
|
||||
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 {
|
||||
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 {
|
||||
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) {
|
||||
log.error("Ошибка при поиске фидов или перерасчете флагов просрочек. Package_id {}", packageId, e);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ 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.entities.dto.PhoneFidMap;
|
||||
import ru.nbch.credit_tracker.mapper.indic.PhoneMapper;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
|
@ -20,16 +20,12 @@ public class PhoneService {
|
|||
this.mapper = mapper;
|
||||
}
|
||||
|
||||
public List<FidsPhoneData> findFidsPhoneData(List<SubjectData> subjects) {
|
||||
return findFidsPhoneData(subjects, false);
|
||||
}
|
||||
|
||||
public List<FidsPhoneData> findFidsPhoneData(List<SubjectData> subjects, boolean processNullFids) {
|
||||
public List<FidsPhoneData> findFidsPhoneData(List<PhoneFidMap> subjects) {
|
||||
List<FidsPhoneData> fidsPhoneDataList = new ArrayList<>();
|
||||
int batchSize = 10000;
|
||||
for (int i = 0; i < subjects.size(); i += batchSize) {
|
||||
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<FidsData> fidsData = mapper.findFids(phones);
|
||||
|
||||
|
|
@ -40,7 +36,7 @@ public class PhoneService {
|
|||
Integer fid = fidsMap.get(phone);
|
||||
if (fid != null) {
|
||||
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()));
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package ru.nbch.credit_tracker.service.signal;
|
||||
|
||||
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 java.util.List;
|
||||
|
|
@ -15,7 +15,7 @@ public class HitsService {
|
|||
this.mapper = mapper;
|
||||
}
|
||||
|
||||
public void setHits(List<HitsData> hits) {
|
||||
mapper.setHits(hits);
|
||||
public void insertHits(List<Hit> hits) {
|
||||
mapper.insertHits(hits);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
package ru.nbch.credit_tracker.service.signal;
|
||||
|
||||
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.mapper.signal.PhoneFidMapMapper;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
|
|
@ -21,19 +20,15 @@ public class PhoneFidMapService {
|
|||
mapper.registerSubjects(subjects, packageId);
|
||||
}
|
||||
|
||||
public void registerSubjectsFidAndDebts(Integer id, Integer fid, Integer flagDebt5000, Integer flag90, LocalDateTime calculatedAt) {
|
||||
mapper.registerSubjectsFidAndDebts(id, fid, flagDebt5000, flag90, calculatedAt);
|
||||
public List<PhoneFidMap> findPhoneFidMaps(Integer packageId) {
|
||||
return mapper.findPhoneFidMaps(packageId);
|
||||
}
|
||||
|
||||
public List<SubjectData> findSubjectsData(Integer packageId) {
|
||||
return mapper.findSubjectsData(packageId);
|
||||
public List<PhoneFidMap> findFullPhoneFidMap(Integer packageId) {
|
||||
return mapper.findFullPhoneFidMap(packageId);
|
||||
}
|
||||
|
||||
public List<SubjectData> findFullSubjectsData( Integer packageId) {
|
||||
return mapper.findFullSubjectsData(packageId);
|
||||
}
|
||||
|
||||
public void updateSubjects(List<SubjectData> subjects) {
|
||||
mapper.updateSubjects(subjects);
|
||||
public void updatePhoneFidMaps(List<PhoneFidMap> subjects) {
|
||||
mapper.updatePhoneFidMaps(subjects);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
package ru.nbch.credit_tracker.service.signal;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.nbch.credit_tracker.entities.dto.PackageData;
|
||||
import ru.nbch.credit_tracker.entities.request.monitoring_request.MonitoringRequest;
|
||||
import ru.nbch.credit_tracker.entities.dto.UserPackage;
|
||||
import ru.nbch.credit_tracker.enums.Status;
|
||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
||||
|
||||
|
|
@ -19,38 +18,38 @@ public class UserPackageService {
|
|||
}
|
||||
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
return mapper.insertPackage(request, creadedAt, status.name());
|
||||
public Integer insertPackage(UserPackage userPackage) {
|
||||
return mapper.insertPackage(userPackage);
|
||||
}
|
||||
|
||||
public void setPackageStatus(Integer packageId, Status status) {
|
||||
mapper.setPackageStatus(packageId, status.name());
|
||||
public void updatePackageStatus(Integer packageId, Status status) {
|
||||
mapper.updatePackageStatus(packageId, status.name());
|
||||
}
|
||||
|
||||
public void setPackageLastDownloadedReport(Integer id, String fileName) {
|
||||
mapper.setPackageLastDownloadedReport(id, fileName);
|
||||
public void updatePackageLastDownloadedReport(Integer id, String fileName) {
|
||||
mapper.updatePackageLastDownloadedReport(id, fileName);
|
||||
}
|
||||
|
||||
public PackageData findPackageData(Integer id) {
|
||||
return mapper.findPackageData(id);
|
||||
public UserPackage findPackage(Integer id) {
|
||||
return mapper.findPackage(id);
|
||||
}
|
||||
|
||||
public List<PackageData> findPackageDataList(String userId, Status status) {
|
||||
return mapper.findPackageDataList(userId, status.name());
|
||||
public List<UserPackage> findUserPackages(String userId, Status status) {
|
||||
return mapper.findUserPackages(userId.substring(0, 6), status.name());
|
||||
}
|
||||
|
||||
public List<PackageData> findPackagesByStatus(Status status) {
|
||||
return mapper.findPackagesByStatus(status.name());
|
||||
public List<UserPackage> findAllPackagesByStatus(Status status) {
|
||||
return mapper.findAllPackagesByStatus(status.name());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<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)
|
||||
values
|
||||
<foreach collection="hits" item="hit" separator=",">
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<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="packageId" column="package_id"/>
|
||||
<result property="subjectId" column="subject_id"/>
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
</insert>
|
||||
|
||||
|
||||
<update id="updateSubjects" parameterType="java.util.List">
|
||||
<update id="updatePhoneFidMaps" parameterType="java.util.List">
|
||||
<foreach collection="subjects" item="subject" separator=";">
|
||||
UPDATE signals_phone_fid_map
|
||||
SET
|
||||
|
|
@ -40,19 +40,13 @@
|
|||
</foreach>
|
||||
</update>
|
||||
|
||||
<update id="registerSubjectsFidAndDebts">
|
||||
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="findPhoneFidMaps" resultMap="PhoneFidMapResultMap" resultType="java.util.List">
|
||||
SELECT id, subject_id, phone
|
||||
FROM signals_phone_fid_map
|
||||
WHERE package_id = #{packageId}
|
||||
</select>
|
||||
|
||||
<select id="findFullSubjectsData" resultMap="subjectDataResultMap" resultType="java.util.List">
|
||||
<select id="findFullPhoneFidMap" resultMap="PhoneFidMapResultMap" resultType="java.util.List">
|
||||
SELECT id,
|
||||
package_id,
|
||||
subject_id,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<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="userId" column="membercode"/>
|
||||
<result property="packageName" column="package_name"/>
|
||||
|
|
@ -38,40 +38,34 @@
|
|||
#{previousStatus}
|
||||
</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">
|
||||
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>
|
||||
|
||||
<insert id="insertPackage"
|
||||
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 id="updatePackageStatus">
|
||||
UPDATE signals_user_packages
|
||||
SET status = #{status}
|
||||
WHERE id = #{packageId}
|
||||
</update>
|
||||
|
||||
<update id="setPackageLastDownloadedReport">
|
||||
<update id="updatePackageLastDownloadedReport">
|
||||
UPDATE signals_user_packages
|
||||
SET last_downloaded_report = #{fileName}
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<select id="findPackageData" resultMap="packageDataResultMap"
|
||||
resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
||||
<select id="findPackage" resultMap="packageDataResultMap"
|
||||
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||
SELECT membercode, package_name
|
||||
FROM signals_user_packages
|
||||
WHERE id = #{id}
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="findPackageDataList" resultMap="packageDataResultMap"
|
||||
resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
||||
<select id="findUserPackages" resultMap="packageDataResultMap"
|
||||
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||
SELECT package_name, created_at
|
||||
FROM signals_user_packages
|
||||
WHERE membercode IS NOT NULL
|
||||
|
|
@ -79,8 +73,8 @@
|
|||
AND status = #{status}
|
||||
</select>
|
||||
|
||||
<select id="findPackagesByStatus" resultMap="packageDataResultMap"
|
||||
resultType="ru.nbch.credit_tracker.entities.dto.PackageData">
|
||||
<select id="findAllPackagesByStatus" resultMap="packageDataResultMap"
|
||||
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||
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