Merge branch 'master' into dev
# Conflicts: # pom.xml # src/main/java/ru/nbch/credit_tracker/entities/dto/PhoneFidMap.java # src/main/java/ru/nbch/credit_tracker/mapper/signal/PhoneFidMapMapper.java # src/main/java/ru/nbch/credit_tracker/service/SignalService.java # src/main/java/ru/nbch/credit_tracker/service/signal/PhoneFidMapService.java
This commit is contained in:
commit
438956f8b5
32 changed files with 449 additions and 341 deletions
|
|
@ -1,6 +1,5 @@
|
||||||
FROM eclipse-temurin:17-jre-alpine
|
FROM eclipse-temurin:17-jre-alpine
|
||||||
MAINTAINER ru.nbch
|
MAINTAINER ru.nbch
|
||||||
RUN apk add gcompat bash
|
|
||||||
|
|
||||||
VOLUME /opt/app/logs/app
|
VOLUME /opt/app/logs/app
|
||||||
VOLUME /opt/app/logs/json
|
VOLUME /opt/app/logs/json
|
||||||
|
|
@ -14,6 +13,11 @@ COPY maven/start-credit-tracker.sh /opt/app/start-credit-tracker.sh
|
||||||
COPY maven/credit-tracker.properties /opt/app/credit-tracker.properties
|
COPY maven/credit-tracker.properties /opt/app/credit-tracker.properties
|
||||||
COPY maven/monitoring-request.xsd /opt/app/monitoring-request.xsd
|
COPY maven/monitoring-request.xsd /opt/app/monitoring-request.xsd
|
||||||
COPY maven/signal-package.xsd /opt/app/signal-package.xsd
|
COPY maven/signal-package.xsd /opt/app/signal-package.xsd
|
||||||
|
COPY maven/ca_nbki.cer /usr/local/share/ca-certificates/corp.crt
|
||||||
|
|
||||||
|
RUN apk add --no-cache ca-certificates \
|
||||||
|
&& update-ca-certificates \
|
||||||
|
RUN apk add gcompat bash
|
||||||
|
|
||||||
RUN chmod +x /opt/app/start-credit-tracker.sh
|
RUN chmod +x /opt/app/start-credit-tracker.sh
|
||||||
ENTRYPOINT ["/opt/app/start-credit-tracker.sh"]
|
ENTRYPOINT ["/opt/app/start-credit-tracker.sh"]
|
||||||
|
|
|
||||||
33
ca_nbki.cer
Normal file
33
ca_nbki.cer
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
Tsm6UcBOJAnv
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
#commons
|
#commons
|
||||||
APP_VERSION=1.17
|
APP_VERSION=1.20
|
||||||
REGISTRY_URL=rh8-vm3.nbki.msk:5000
|
REGISTRY_URL=rh8-vm3.nbki.msk:5000
|
||||||
JMX_PORT=
|
JMX_PORT=
|
||||||
JMX_HOSTNAME=
|
JMX_HOSTNAME=
|
||||||
|
|
|
||||||
29
pom.xml
29
pom.xml
|
|
@ -10,15 +10,15 @@
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>ru.nbch</groupId>
|
<groupId>ru.nbch</groupId>
|
||||||
<artifactId>credit-tracker</artifactId>
|
<artifactId>credit-tracker</artifactId>
|
||||||
<version>2.0</version>
|
<version>1.20</version>
|
||||||
<name>credit_tracker</name>
|
<name>credit_tracker</name>
|
||||||
<description>Credit Tracker Application</description>
|
<description>Credit Tracker Application</description>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>21</java.version>
|
<java.version>17</java.version>
|
||||||
<git.info.prefix>git_info</git.info.prefix>
|
<git.info.prefix>git_info</git.info.prefix>
|
||||||
<git.info.filename>git.properties</git.info.filename>
|
<git.info.filename>git.properties</git.info.filename>
|
||||||
<registry.url>rh8-vm3.nbki.msk:5000</registry.url>
|
<registry.url>10.230.238.56:5000</registry.url>
|
||||||
<!-- <registry.url>rh8-vm3.nbki.msk:5000</registry.url>-->
|
<!-- <registry.url>rh8-vm3.nbki.msk:5000</registry.url>-->
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|
@ -126,11 +126,6 @@
|
||||||
<version>3.0.4</version>
|
<version>3.0.4</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>com.h2database</groupId>
|
|
||||||
<artifactId>h2</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<artifactId>mockito-junit-jupiter</artifactId>
|
<artifactId>mockito-junit-jupiter</artifactId>
|
||||||
|
|
@ -142,7 +137,6 @@
|
||||||
<profile>
|
<profile>
|
||||||
<id>docker-push-dev</id>
|
<id>docker-push-dev</id>
|
||||||
<build>
|
<build>
|
||||||
<pluginManagement>
|
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>io.fabric8</groupId>
|
<groupId>io.fabric8</groupId>
|
||||||
|
|
@ -153,7 +147,7 @@
|
||||||
<id>Build and deploy docker container</id>
|
<id>Build and deploy docker container</id>
|
||||||
<phase>install</phase>
|
<phase>install</phase>
|
||||||
<goals>
|
<goals>
|
||||||
<!--<goal>build</goal>-->
|
<goal>build</goal>
|
||||||
<goal>push</goal>
|
<goal>push</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
|
|
@ -169,11 +163,15 @@
|
||||||
<inline>
|
<inline>
|
||||||
<files>
|
<files>
|
||||||
<file>
|
<file>
|
||||||
<source>${project.build.directory}/${project.build.finalName}.jar</source>
|
<source>
|
||||||
|
${project.build.directory}/${project.build.finalName}.jar
|
||||||
|
</source>
|
||||||
<outputDirectory>.</outputDirectory>
|
<outputDirectory>.</outputDirectory>
|
||||||
</file>
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<source>${project.basedir}/apm-agent/elastic-apm-agent-1.45.0.jar</source>
|
<source>
|
||||||
|
${project.basedir}/apm-agent/elastic-apm-agent-1.45.0.jar
|
||||||
|
</source>
|
||||||
<outputDirectory>.</outputDirectory>
|
<outputDirectory>.</outputDirectory>
|
||||||
</file>
|
</file>
|
||||||
<file>
|
<file>
|
||||||
|
|
@ -192,6 +190,12 @@
|
||||||
<source>${project.basedir}/signal-package.xsd</source>
|
<source>${project.basedir}/signal-package.xsd</source>
|
||||||
<outputDirectory>.</outputDirectory>
|
<outputDirectory>.</outputDirectory>
|
||||||
</file>
|
</file>
|
||||||
|
<file>
|
||||||
|
<source>
|
||||||
|
${project.basedir}/ca_nbki.cer
|
||||||
|
</source>
|
||||||
|
<outputDirectory>.</outputDirectory>
|
||||||
|
</file>
|
||||||
</files>
|
</files>
|
||||||
</inline>
|
</inline>
|
||||||
</assembly>
|
</assembly>
|
||||||
|
|
@ -204,7 +208,6 @@
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</pluginManagement>
|
|
||||||
</build>
|
</build>
|
||||||
</profile>
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ public class PersonFactoryBuilder {
|
||||||
|
|
||||||
|
|
||||||
private PersonService.PersonData personData;
|
private PersonService.PersonData personData;
|
||||||
private Integer uid;
|
private Long uid;
|
||||||
|
|
||||||
public static PersonFactoryBuilder builder() {
|
public static PersonFactoryBuilder builder() {
|
||||||
return new PersonFactoryBuilder();
|
return new PersonFactoryBuilder();
|
||||||
|
|
@ -41,7 +41,7 @@ public class PersonFactoryBuilder {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PersonFactoryBuilder uid(Integer uid) {
|
public PersonFactoryBuilder uid(Long uid) {
|
||||||
this.uid = uid;
|
this.uid = uid;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ public class GlobalExceptionHandler {
|
||||||
switch (ex.getErrorFormat()) {
|
switch (ex.getErrorFormat()) {
|
||||||
case MonitoringError -> commonError = new MonitoringError();
|
case MonitoringError -> commonError = new MonitoringError();
|
||||||
case MonitoringActivePackagesError -> commonError = new MonitoringActivePackagesError();
|
case MonitoringActivePackagesError -> commonError = new MonitoringActivePackagesError();
|
||||||
|
case MonitoringAllPackagesError -> commonError = new MonitoringAllPackagesError();
|
||||||
case MonitoringDownloadError -> commonError = new MonitoringDownloadError();
|
case MonitoringDownloadError -> commonError = new MonitoringDownloadError();
|
||||||
case MonitoringReportListError -> commonError = new MonitoringReportListError();
|
case MonitoringReportListError -> commonError = new MonitoringReportListError();
|
||||||
case MonitoringPackageDeleteError -> commonError = new MonitoringPackageDeleteError();
|
case MonitoringPackageDeleteError -> commonError = new MonitoringPackageDeleteError();
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ import java.time.LocalDateTime;
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class Hit {
|
public class Hit {
|
||||||
private Integer id;
|
private Long id;
|
||||||
private Integer packageId;
|
private Long packageId;
|
||||||
private String subjectId;
|
private String subjectId;
|
||||||
private Integer signalType;
|
private Integer signalType;
|
||||||
private LocalDateTime responseSentAt;
|
private LocalDateTime responseSentAt;
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,9 @@ import java.time.LocalDateTime;
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
public class PhoneFidMap {
|
public class PhoneFidMap {
|
||||||
private Integer id;
|
private Long id;
|
||||||
|
private Long packageId;
|
||||||
private UUID recUuid;
|
private UUID recUuid;
|
||||||
private Integer packageId;
|
|
||||||
private String subjectId;
|
private String subjectId;
|
||||||
private String phone;
|
private String phone;
|
||||||
private Integer fid;
|
private Integer fid;
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,12 @@ import java.time.LocalDateTime;
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
public class UserPackage {
|
public class UserPackage {
|
||||||
private Integer id;
|
private Long id;
|
||||||
private String userId;
|
private String userId;
|
||||||
private String packageName;
|
private String packageName;
|
||||||
private LocalDateTime createdAt;
|
private LocalDateTime createdAt;
|
||||||
private String status;
|
private String status;
|
||||||
private LocalDateTime deactivatedAt;
|
private LocalDateTime deactivatedAt;
|
||||||
private String lastDownloadedReport;
|
private String lastDownloadedReport;
|
||||||
|
private LocalDateTime monitoringAt;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ public class Person {
|
||||||
@XmlValue
|
@XmlValue
|
||||||
protected String value;
|
protected String value;
|
||||||
@XmlAttribute(name = "uid", required = true)
|
@XmlAttribute(name = "uid", required = true)
|
||||||
protected Integer uid;
|
protected Long uid;
|
||||||
@XmlAttribute(name = "oksm", required = true)
|
@XmlAttribute(name = "oksm", required = true)
|
||||||
protected String oksm;
|
protected String oksm;
|
||||||
@XmlAttribute(name = "s", required = true)
|
@XmlAttribute(name = "s", required = true)
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ public class MonitoringReportErrors {
|
||||||
public static class P {
|
public static class P {
|
||||||
|
|
||||||
@XmlAttribute(name = "uid")
|
@XmlAttribute(name = "uid")
|
||||||
protected Integer uid;
|
protected Long uid;
|
||||||
|
|
||||||
@XmlValue
|
@XmlValue
|
||||||
protected String value;
|
protected String value;
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import java.util.List;
|
||||||
public class Person {
|
public class Person {
|
||||||
|
|
||||||
@XmlAttribute(name = "uid", required = true)
|
@XmlAttribute(name = "uid", required = true)
|
||||||
protected Integer uid;
|
protected Long uid;
|
||||||
|
|
||||||
@XmlElement(name = "Inquiry", required = true)
|
@XmlElement(name = "Inquiry", required = true)
|
||||||
protected List<Inquiry> inquiries;
|
protected List<Inquiry> inquiries;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package ru.nbch.credit_tracker.entities.user_response.errors;
|
||||||
|
|
||||||
|
import jakarta.xml.bind.annotation.*;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "MonitoringAllPackagesResponse", propOrder = {
|
||||||
|
"status",
|
||||||
|
"errorCode",
|
||||||
|
"errorText"
|
||||||
|
})
|
||||||
|
@XmlRootElement(name = "MonitoringAllPackagesResponse")
|
||||||
|
public class MonitoringAllPackagesError implements CommonError {
|
||||||
|
|
||||||
|
@XmlElement(name = "Status", required = true)
|
||||||
|
protected String status;
|
||||||
|
@XmlElement(name = "Code",required = true)
|
||||||
|
protected String errorCode;
|
||||||
|
@XmlElement(name = "Message",required = true)
|
||||||
|
protected String errorText;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,7 @@ package ru.nbch.credit_tracker.enums;
|
||||||
|
|
||||||
public enum XmlErrorFormat {
|
public enum XmlErrorFormat {
|
||||||
MonitoringActivePackagesError,
|
MonitoringActivePackagesError,
|
||||||
|
MonitoringAllPackagesError,
|
||||||
MonitoringDownloadError,
|
MonitoringDownloadError,
|
||||||
MonitoringError,
|
MonitoringError,
|
||||||
MonitoringPackageDeleteError,
|
MonitoringPackageDeleteError,
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ public class SignalFacade {
|
||||||
|
|
||||||
// Валидация Архива на количетсво файлов, размер и расширение
|
// Валидация Архива на количетсво файлов, размер и расширение
|
||||||
MonitoringRequest monitoringRequest;
|
MonitoringRequest monitoringRequest;
|
||||||
Integer packageId;
|
Long packageId;
|
||||||
ZipInputStream zipInputStream = null;
|
ZipInputStream zipInputStream = null;
|
||||||
String filePath;
|
String filePath;
|
||||||
try {
|
try {
|
||||||
|
|
@ -224,7 +224,7 @@ public class SignalFacade {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SetAndClearMdc(argIndex = 1)
|
@SetAndClearMdc(argIndex = 1)
|
||||||
public void registerFidsAndDebts(Integer packageId, String packageName, String filePath) {
|
public void registerFidsAndDebts(Long packageId, String packageName, String filePath) {
|
||||||
Map<String, String> context = MDC.getCopyOfContextMap();
|
Map<String, String> context = MDC.getCopyOfContextMap();
|
||||||
executor.execute(() -> {
|
executor.execute(() -> {
|
||||||
if (context != null) {
|
if (context != null) {
|
||||||
|
|
@ -240,8 +240,9 @@ public class SignalFacade {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (signalRestService.setupMonitoring(packageId)) {
|
if (signalRestService.setupMonitoring(packageId)) {
|
||||||
log.info("Package was successfully registered in signal service. PackageId: {} PackageName: {}", packageId, packageName);
|
LocalDateTime monitoringAt = LocalDateTime.now();
|
||||||
signalService.updatePackageStatus(packageId, Status.ON_MONITORING);
|
log.info("Package was successfully registered in signal service. PackageId: {} PackageName: {}, MonitoringAt: {}", packageId, packageName, monitoringAt);
|
||||||
|
signalService.updatePackageOnMonitoringSuccess(packageId, monitoringAt);
|
||||||
monitoringErrorProcesingService.findErrors(packageId);
|
monitoringErrorProcesingService.findErrors(packageId);
|
||||||
} 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);
|
||||||
|
|
@ -297,7 +298,7 @@ public class SignalFacade {
|
||||||
try {
|
try {
|
||||||
AuthorizationService.AuthResult authResult = authorizationService.findAuthInfo(allPackagesRequest.getUserId(), allPackagesRequest.getPassword());
|
AuthorizationService.AuthResult authResult = authorizationService.findAuthInfo(allPackagesRequest.getUserId(), allPackagesRequest.getPassword());
|
||||||
if (!authResult.isSuccess()) {
|
if (!authResult.isSuccess()) {
|
||||||
throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringActivePackagesError);
|
throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringAllPackagesError);
|
||||||
}
|
}
|
||||||
List<UserPackage> activePackages = signalService.findAllPackages(allPackagesRequest.getUserId());
|
List<UserPackage> activePackages = signalService.findAllPackages(allPackagesRequest.getUserId());
|
||||||
|
|
||||||
|
|
@ -319,13 +320,13 @@ public class SignalFacade {
|
||||||
response.setPackages(packages);
|
response.setPackages(packages);
|
||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
} else {
|
} else {
|
||||||
throw clientExcp(SignalError.ERROR_019, XmlErrorFormat.MonitoringActivePackagesError);
|
throw clientExcp(SignalError.ERROR_019, XmlErrorFormat.MonitoringAllPackagesError);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (e instanceof SignalClientException) {
|
if (e instanceof SignalClientException) {
|
||||||
throw (SignalClientException) e;
|
throw (SignalClientException) e;
|
||||||
}
|
}
|
||||||
throw serverExcp(SignalError.ERROR_013, XmlErrorFormat.MonitoringActivePackagesError, e);
|
throw serverExcp(SignalError.ERROR_013, XmlErrorFormat.MonitoringAllPackagesError, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,11 @@ import java.util.List;
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface PhoneFidMapMapper {
|
public interface PhoneFidMapMapper {
|
||||||
|
|
||||||
void registerSubjects(@Param("subjects") List<Subject> subjects, @Param("packageId") Integer packageId);
|
void registerSubjects(@Param("subjects") List<Subject> subjects, @Param("packageId") Long packageId);
|
||||||
void register(@Param("phoneFidMap") List<PhoneFidMap> phoneFidMap, @Param("packageId") Integer packageId);
|
void register(@Param("phoneFidMap") List<PhoneFidMap> phoneFidMap, @Param("packageId") Long packageId);
|
||||||
void registerWithId(@Param("phoneFidMap") List<PhoneFidMap> phoneFidMap);
|
void registerWithId(@Param("phoneFidMap") List<PhoneFidMap> phoneFidMap);
|
||||||
|
|
||||||
List<PhoneFidMap> findFullPhoneFidMap(@Param("packageId") Integer packageId, @Param("offset") int offset, @Param("limit") int limit);
|
List<PhoneFidMap> findFullPhoneFidMap(@Param("packageId") Long packageId, @Param("offset") int offset, @Param("limit") int limit);
|
||||||
|
|
||||||
void updatePhoneFidMaps(@Param("subjects") Collection<PhoneFidMap> subjects);
|
void updatePhoneFidMaps(@Param("subjects") Collection<PhoneFidMap> subjects);
|
||||||
void updateOne(@Param("subject") PhoneFidMap subject);
|
void updateOne(@Param("subject") PhoneFidMap subject);
|
||||||
|
|
@ -23,7 +23,7 @@ public interface PhoneFidMapMapper {
|
||||||
|
|
||||||
void updatePhoneFidMapsErrors(@Param("subjects") List<PhoneFidMap> subjects);
|
void updatePhoneFidMapsErrors(@Param("subjects") List<PhoneFidMap> subjects);
|
||||||
|
|
||||||
PhoneFidMap findPhoneFidMapById(@Param("id") Integer packageId);
|
PhoneFidMap findPhoneFidMapById(@Param("id") Long packageId);
|
||||||
|
|
||||||
boolean hasNonNullFids(@Param("packageId") Integer packageId);
|
boolean hasNonNullFids(@Param("packageId") Long packageId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,15 @@ 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("userPackage") UserPackage userPackage);
|
Long insertPackage(@Param("userPackage") UserPackage userPackage);
|
||||||
|
|
||||||
void updatePackageStatus(@Param("packageId") Integer packageId, @Param("status") String status);
|
void updatePackageStatus(@Param("packageId") Long packageId, @Param("status") String status);
|
||||||
|
|
||||||
void updatePackageLastDownloadedReport(@Param("id") Integer id, @Param("fileName") String fileName);
|
void updatePackageLastDownloadedReport(@Param("id") Long id, @Param("fileName") String fileName);
|
||||||
|
|
||||||
UserPackage findPackage(@Param("id") Integer id);
|
void updatePackageOnMonitoringSuccess(@Param("id") Long id, @Param("monitoringAt") LocalDateTime monitoringAt);
|
||||||
|
|
||||||
|
UserPackage findPackage(@Param("id") Long id);
|
||||||
|
|
||||||
List<UserPackage> findUserPackages(@Param("userId") String userId, @Param("statuses") List<String> status);
|
List<UserPackage> findUserPackages(@Param("userId") String userId, @Param("statuses") List<String> status);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,13 +25,13 @@ public class MonitoringErrorProcesingService {
|
||||||
this.signalRestService = signalRestService;
|
this.signalRestService = signalRestService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void findErrors(Integer packageId) {
|
public void findErrors(Long packageId) {
|
||||||
UserPackage userPackage = signalService.findPackage(packageId);
|
UserPackage userPackage = signalService.findPackage(packageId);
|
||||||
getCurrentProxy().processPackage(userPackage, packageId);
|
getCurrentProxy().processPackage(userPackage, packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SetAndClearMdc
|
@SetAndClearMdc
|
||||||
public void processPackage(UserPackage userPackage, Integer packageId) {
|
public void processPackage(UserPackage userPackage, Long packageId) {
|
||||||
if (userPackage != null) {
|
if (userPackage != null) {
|
||||||
String packCode = userPackage.getUserId().substring(0, 6) + "_" + userPackage.getPackageName();
|
String packCode = userPackage.getUserId().substring(0, 6) + "_" + userPackage.getPackageName();
|
||||||
log.info("Проверка на ошибки при постановке на мониторинг. packCode={}, packageId={}", packCode, packageId);
|
log.info("Проверка на ошибки при постановке на мониторинг. packCode={}, packageId={}", packCode, packageId);
|
||||||
|
|
|
||||||
|
|
@ -312,7 +312,7 @@ public class MonitoringService {
|
||||||
log.info("Signal hits updated for package {}", userPackage.getPackageName());
|
log.info("Signal hits updated for package {}", userPackage.getPackageName());
|
||||||
}
|
}
|
||||||
|
|
||||||
public String loadReport(Integer packageId, String reportName) {
|
public String loadReport(Long packageId, String reportName) {
|
||||||
return signalRestService.downloadReport(packageId, reportName);
|
return signalRestService.downloadReport(packageId, reportName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ public class SignalService {
|
||||||
return userPackageService.isPackageNotUnique(userId, packageName);
|
return userPackageService.isPackageNotUnique(userId, packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer registerPackage(MonitoringRequest request) {
|
public Long registerPackage(MonitoringRequest request) {
|
||||||
UserPackage userPackage = UserPackage.builder()
|
UserPackage userPackage = UserPackage.builder()
|
||||||
.userId(request.getUserId())
|
.userId(request.getUserId())
|
||||||
.packageName(request.getPackageName())
|
.packageName(request.getPackageName())
|
||||||
|
|
@ -87,7 +87,7 @@ public class SignalService {
|
||||||
return userPackageService.insertPackage(userPackage);
|
return userPackageService.insertPackage(userPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer registerPackage(String userId, String packageName) {
|
public Long registerPackage(String userId, String packageName) {
|
||||||
UserPackage userPackage = UserPackage.builder()
|
UserPackage userPackage = UserPackage.builder()
|
||||||
.userId(userId)
|
.userId(userId)
|
||||||
.packageName(packageName)
|
.packageName(packageName)
|
||||||
|
|
@ -97,7 +97,7 @@ public class SignalService {
|
||||||
return userPackageService.insertPackage(userPackage);
|
return userPackageService.insertPackage(userPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerSubjects(String filePath, Integer packageId) {
|
public void registerSubjects(String filePath, Long packageId) {
|
||||||
log.info("Start registering subjects. PackageId: {}", packageId);
|
log.info("Start registering subjects. PackageId: {}", packageId);
|
||||||
try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(Path.of(filePath)), 8 * 1024 * 1024)) {
|
try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(Path.of(filePath)), 8 * 1024 * 1024)) {
|
||||||
staxXmlProcessor.read(in, MonitoringRequest.class,
|
staxXmlProcessor.read(in, MonitoringRequest.class,
|
||||||
|
|
@ -122,7 +122,7 @@ public class SignalService {
|
||||||
* на поиск флагов и формирование отчета в оф. сервис сигналов
|
* на поиск флагов и формирование отчета в оф. сервис сигналов
|
||||||
* @param packageId id пакета, по которому идет выборка {@link PhoneFidMap}
|
* @param packageId id пакета, по которому идет выборка {@link PhoneFidMap}
|
||||||
*/
|
*/
|
||||||
public void processSubjects(Integer packageId) {
|
public void processSubjects(Long packageId) {
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
List<PhoneFidMap> batch;
|
List<PhoneFidMap> batch;
|
||||||
do {
|
do {
|
||||||
|
|
@ -139,7 +139,7 @@ public class SignalService {
|
||||||
/**
|
/**
|
||||||
* Обрабатывает все PhoneFidMap по packageId, выгружая их пачками и фильтруя по переданному фильтру
|
* Обрабатывает все PhoneFidMap по packageId, выгружая их пачками и фильтруя по переданному фильтру
|
||||||
*/
|
*/
|
||||||
public UpdateResult updateSubjects(Integer packageId, Predicate<PhoneFidMap> filter) {
|
public UpdateResult updateSubjects(Long packageId, Predicate<PhoneFidMap> filter) {
|
||||||
boolean updated = false;
|
boolean updated = false;
|
||||||
boolean noFidsFound = true;
|
boolean noFidsFound = true;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
|
@ -194,7 +194,7 @@ public class SignalService {
|
||||||
* @return fidsFound true - если хотя бы по одному номеру был найден фид, false - в противном случае
|
* @return fidsFound true - если хотя бы по одному номеру был найден фид, false - в противном случае
|
||||||
*/
|
*/
|
||||||
// TODO Добавить отдельный метод. Если не нашелся фид, надо обновить в базе fid = null и флаги = null calculated_at=now()
|
// TODO Добавить отдельный метод. Если не нашелся фид, надо обновить в базе fid = null и флаги = null calculated_at=now()
|
||||||
public boolean updateFlags(Map<Integer, PhoneFidMap> fidsMap, Integer packageId) {
|
public boolean updateFlags(Map<Integer, PhoneFidMap> fidsMap, Long packageId) {
|
||||||
log.info("Start calculating flags for subjects batch. PackageId: {}", packageId);
|
log.info("Start calculating flags for subjects batch. PackageId: {}", packageId);
|
||||||
Map<Integer, FlagsService.FlagsData> flagsDataMap = flagsService.findFlags(fidsMap.keySet().stream().toList());
|
Map<Integer, FlagsService.FlagsData> flagsDataMap = flagsService.findFlags(fidsMap.keySet().stream().toList());
|
||||||
List<PhoneFidMap> subjectToUpdate = new ArrayList<>();
|
List<PhoneFidMap> subjectToUpdate = new ArrayList<>();
|
||||||
|
|
@ -246,16 +246,20 @@ public class SignalService {
|
||||||
userPackageService.insertPackage(userPackage);
|
userPackageService.insertPackage(userPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updatePackageStatus(Integer packageId, Status status) {
|
public void updatePackageStatus(Long packageId, Status status) {
|
||||||
userPackageService.updatePackageStatus(packageId, status);
|
userPackageService.updatePackageStatus(packageId, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updatePackageOnMonitoringSuccess(Long packageId, LocalDateTime monitoringAt) {
|
||||||
|
userPackageService.updatePackageOnMonitoringSuccess(packageId, monitoringAt);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Формирует файл запроса в официальный сервис сигналов, выгружая паспортные данные пачками и сразу записывая их в файл
|
* Формирует файл запроса в официальный сервис сигналов, выгружая паспортные данные пачками и сразу записывая их в файл
|
||||||
*
|
*
|
||||||
* @return Путь к файлу запроса к официальному сервису сигналов на постановку на мониторинг
|
* @return Путь к файлу запроса к официальному сервису сигналов на постановку на мониторинг
|
||||||
*/
|
*/
|
||||||
public String writeSignals(Integer packageId) {
|
public String writeSignals(Long packageId) {
|
||||||
String folderPath = config.getLoadDir() + File.separator + "tmp_folder" + File.separator;
|
String folderPath = config.getLoadDir() + File.separator + "tmp_folder" + File.separator;
|
||||||
String filePath = folderPath + UUID.randomUUID() + "_output.xml";
|
String filePath = folderPath + UUID.randomUUID() + "_output.xml";
|
||||||
CTUtil.createFolder(folderPath);
|
CTUtil.createFolder(folderPath);
|
||||||
|
|
@ -271,7 +275,7 @@ public class SignalService {
|
||||||
return filePath;
|
return filePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Signals buildSignals(Integer packageId) {
|
public Signals buildSignals(Long packageId) {
|
||||||
UserPackage userPackage = userPackageService.findPackage(packageId);
|
UserPackage userPackage = userPackageService.findPackage(packageId);
|
||||||
Signals signals = new Signals();
|
Signals signals = new Signals();
|
||||||
signals.setOnline("2"); // Всегда=2 (только онлайн-сигналы)
|
signals.setOnline("2"); // Всегда=2 (только онлайн-сигналы)
|
||||||
|
|
@ -287,7 +291,7 @@ public class SignalService {
|
||||||
* Обрабатывает все PhoneFidMap по packageId, выгружая их пачками и фильтруя по переданному фильтру.
|
* Обрабатывает все PhoneFidMap по packageId, выгружая их пачками и фильтруя по переданному фильтру.
|
||||||
* writer записывает пачку сразу в файл
|
* writer записывает пачку сразу в файл
|
||||||
*/
|
*/
|
||||||
private void buildPersons(Integer packageId, Consumer<List<Person>> writer) {
|
private void buildPersons(Long packageId, Consumer<List<Person>> writer) {
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
List<PhoneFidMap> batch;
|
List<PhoneFidMap> batch;
|
||||||
do {
|
do {
|
||||||
|
|
@ -327,7 +331,7 @@ public class SignalService {
|
||||||
return persons;
|
return persons;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateSubjectsErrors(String filePath, Integer packageId) {
|
public void updateSubjectsErrors(String filePath, Long packageId) {
|
||||||
log.info("Start updating subjects errors. PackageId: {}", packageId);
|
log.info("Start updating subjects errors. PackageId: {}", packageId);
|
||||||
try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(Path.of(filePath)), 8 * 1024 * 1024)) {
|
try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(Path.of(filePath)), 8 * 1024 * 1024)) {
|
||||||
staxXmlProcessor.read(in, MonitoringReportErrors.class,
|
staxXmlProcessor.read(in, MonitoringReportErrors.class,
|
||||||
|
|
@ -386,19 +390,19 @@ public class SignalService {
|
||||||
hitsService.insertHits(hits);
|
hitsService.insertHits(hits);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateLastDownloadedReport(Integer id, String fileName) {
|
public void updateLastDownloadedReport(Long id, String fileName) {
|
||||||
userPackageService.updatePackageLastDownloadedReport(id, fileName);
|
userPackageService.updatePackageLastDownloadedReport(id, fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PhoneFidMap findPhoneFidMapById(Integer id) {
|
public PhoneFidMap findPhoneFidMapById(Long id) {
|
||||||
return phoneFidMapService.findPhoneFidMapById(id);
|
return phoneFidMapService.findPhoneFidMapById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasNonNullfids(Integer packageId) {
|
public boolean hasNonNullfids(Long packageId) {
|
||||||
return phoneFidMapService.hasNonNullfids(packageId);
|
return phoneFidMapService.hasNonNullfids(packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserPackage findPackage(Integer packageId) {
|
public UserPackage findPackage(Long packageId) {
|
||||||
return userPackageService.findPackage(packageId);
|
return userPackageService.findPackage(packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ public class UpdateProcessingPackagesService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SetAndClearMdc(argIndex = 1)
|
@SetAndClearMdc(argIndex = 1)
|
||||||
public void process(Integer packageId, String packageName) {
|
public void process(Long packageId, String packageName) {
|
||||||
try {
|
try {
|
||||||
SignalService.UpdateResult updateResult = signalService.updateSubjects(packageId, null);
|
SignalService.UpdateResult updateResult = signalService.updateSubjects(packageId, null);
|
||||||
if (updateResult.isNoFidsFound()) {
|
if (updateResult.isNoFidsFound()) {
|
||||||
|
|
|
||||||
|
|
@ -54,21 +54,24 @@ public class UpdatingFlagsService {
|
||||||
for (UserPackage userPackage : packages) {
|
for (UserPackage userPackage : packages) {
|
||||||
log.info("Updating flags for Package {}", userPackage.getPackageName());
|
log.info("Updating flags for Package {}", userPackage.getPackageName());
|
||||||
MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() +"]");
|
MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() +"]");
|
||||||
updateFlags(userPackage.getId(), userPackage.getPackageName());
|
updateFlags(userPackage);
|
||||||
MDC.remove("ru.nbch.credit_tracker.log.mdc.key");
|
MDC.remove("ru.nbch.credit_tracker.log.mdc.key");
|
||||||
}
|
}
|
||||||
log.info("Finish updating flags");
|
log.info("Finish updating flags");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFlags(Integer packageId, String packageName) {
|
private void updateFlags(UserPackage userPackage) {
|
||||||
|
Long packageId = userPackage.getId();
|
||||||
|
String packageName = userPackage.getPackageName();
|
||||||
try {
|
try {
|
||||||
signalService.updatePackageStatus(packageId, Status.PROCESSING);
|
signalService.updatePackageStatus(packageId, Status.PROCESSING);
|
||||||
Predicate<PhoneFidMap> filter = subject -> subject.getCalculatedAt() != null && hasDaysPassed(subject.getCalculatedAt());
|
Predicate<PhoneFidMap> filter = subject -> subject.getCalculatedAt() != null && hasDaysPassed(subject.getCalculatedAt());
|
||||||
SignalService.UpdateResult updateResult = signalService.updateSubjects(packageId, filter);
|
SignalService.UpdateResult updateResult = signalService.updateSubjects(packageId, filter);
|
||||||
if (updateResult.isUpdated()) {
|
if (updateResult.isUpdated()) {
|
||||||
if (signalRestService.setupMonitoring(packageId)) {
|
if (signalRestService.setupMonitoring(packageId)) {
|
||||||
log.info("Flags were updated successfully. PackageId: {} PackageName: {}. Package status changed to ON_MONITORING", packageId, packageName);
|
LocalDateTime monitoringAt = userPackage.getMonitoringAt() != null ? userPackage.getMonitoringAt() : LocalDateTime.now();
|
||||||
signalService.updatePackageStatus(packageId, Status.ON_MONITORING);
|
log.info("Flags were updated successfully. PackageId: {} PackageName: {} MonitoringAt: {}. Package status changed to ON_MONITORING", packageId, packageName, monitoringAt);
|
||||||
|
signalService.updatePackageOnMonitoringSuccess(packageId, monitoringAt);
|
||||||
monitoringErrorProcesingService.findErrors(packageId);
|
monitoringErrorProcesingService.findErrors(packageId);
|
||||||
} 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);
|
||||||
|
|
|
||||||
|
|
@ -22,14 +22,15 @@ public class PhoneFidMapService {
|
||||||
this.sqlSessionFactory = sqlSessionFactory;
|
this.sqlSessionFactory = sqlSessionFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerSubjects(List<Subject> subjects, Integer packageId) {
|
public void registerSubjects(List<Subject> subjects, Long packageId) {
|
||||||
mapper.registerSubjects(subjects, packageId);
|
mapper.registerSubjects(subjects, packageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void register(List<PhoneFidMap> phoneFidMap, Integer packageId) {
|
public void register(List<PhoneFidMap> phoneFidMap, Long packageId) {
|
||||||
mapper.register(phoneFidMap, packageId);
|
mapper.register(phoneFidMap, packageId);
|
||||||
}
|
}
|
||||||
public List<PhoneFidMap> findFullPhoneFidMap(Integer packageId, int offset, int limit) {
|
|
||||||
|
public List<PhoneFidMap> findFullPhoneFidMap(Long packageId, int offset, int limit) {
|
||||||
return mapper.findFullPhoneFidMap(packageId, offset, limit);
|
return mapper.findFullPhoneFidMap(packageId, offset, limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -55,11 +56,11 @@ public class PhoneFidMapService {
|
||||||
mapper.updatePhoneFidMapsErrors(subjects);
|
mapper.updatePhoneFidMapsErrors(subjects);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PhoneFidMap findPhoneFidMapById(Integer id) {
|
public PhoneFidMap findPhoneFidMapById(Long id) {
|
||||||
return mapper.findPhoneFidMapById(id);
|
return mapper.findPhoneFidMapById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasNonNullfids(Integer packageId) {
|
public boolean hasNonNullfids(Long packageId) {
|
||||||
return mapper.hasNonNullFids(packageId);
|
return mapper.hasNonNullFids(packageId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ public class SignalRestService {
|
||||||
* Ставит пакет на мониторинг в официальный сервис сигналов
|
* Ставит пакет на мониторинг в официальный сервис сигналов
|
||||||
* @return true - если пакет успешно поставился на мониторинг. false - в противном случае
|
* @return true - если пакет успешно поставился на мониторинг. false - в противном случае
|
||||||
*/
|
*/
|
||||||
public boolean setupMonitoring(Integer packageId) throws Exception {
|
public boolean setupMonitoring(Long packageId) throws Exception {
|
||||||
String path = signalService.writeSignals(packageId);
|
String path = signalService.writeSignals(packageId);
|
||||||
Resource request = compressFile(path);
|
Resource request = compressFile(path);
|
||||||
|
|
||||||
|
|
@ -105,7 +105,7 @@ public class SignalRestService {
|
||||||
/**
|
/**
|
||||||
* @return имя файла с ошибками по поставленному на мониторинг отчету
|
* @return имя файла с ошибками по поставленному на мониторинг отчету
|
||||||
*/
|
*/
|
||||||
public String getErrorFileName(Integer packageId, String packCode) {
|
public String getErrorFileName(Long packageId, String packCode) {
|
||||||
String url = GET_REPORT_URI + "?packCode=" + packCode;
|
String url = GET_REPORT_URI + "?packCode=" + packCode;
|
||||||
|
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
|
@ -148,7 +148,7 @@ public class SignalRestService {
|
||||||
*
|
*
|
||||||
* @return путь к разархивированному файлу. Пример: <loadDir>/tmp_folder/<package_id>/0001XX_MY_BATCH_223112.1.errors.xml.gz
|
* @return путь к разархивированному файлу. Пример: <loadDir>/tmp_folder/<package_id>/0001XX_MY_BATCH_223112.1.errors.xml.gz
|
||||||
*/
|
*/
|
||||||
public String loadErrorFile(Integer packageId, String fileName) {
|
public String loadErrorFile(Long packageId, String fileName) {
|
||||||
String url = DOWNLOAD_REPORT_URI + "?fNameRequest=" + fileName;
|
String url = DOWNLOAD_REPORT_URI + "?fNameRequest=" + fileName;
|
||||||
|
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
|
@ -229,7 +229,7 @@ public class SignalRestService {
|
||||||
*
|
*
|
||||||
* @return путь к разархивированному файлу. Пример: <loadDir>/tmp_folder/<package_id>/0001XX_MY_BATCH_204.1.online.2025-07-08T20-00-46.xml.gz.xml
|
* @return путь к разархивированному файлу. Пример: <loadDir>/tmp_folder/<package_id>/0001XX_MY_BATCH_204.1.online.2025-07-08T20-00-46.xml.gz.xml
|
||||||
*/
|
*/
|
||||||
public String downloadReport(Integer packageId, String reportName) {
|
public String downloadReport(Long packageId, String reportName) {
|
||||||
String url = DOWNLOAD_ONLINE_REPORT_URI + "?fNameReport=" + reportName;
|
String url = DOWNLOAD_ONLINE_REPORT_URI + "?fNameReport=" + reportName;
|
||||||
|
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
|
@ -247,7 +247,7 @@ public class SignalRestService {
|
||||||
return unzipReport(response,packageId, reportName);
|
return unzipReport(response,packageId, reportName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String unzipReport(ResponseEntity<byte[]> response, Integer packageId, String reportName) {
|
private String unzipReport(ResponseEntity<byte[]> response, Long packageId, String reportName) {
|
||||||
boolean isGzipped = response.getHeaders().getContentType() != null
|
boolean isGzipped = response.getHeaders().getContentType() != null
|
||||||
&& response.getHeaders().getContentType().toString().equals("application/x-gzip");
|
&& response.getHeaders().getContentType().toString().equals("application/x-gzip");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,19 +34,23 @@ public class UserPackageService {
|
||||||
mapper.deletePackage(userId.substring(0, 6), packageName, newStatus.name(), previousStatus.name(), deactivatedAt);
|
mapper.deletePackage(userId.substring(0, 6), packageName, newStatus.name(), previousStatus.name(), deactivatedAt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer insertPackage(UserPackage userPackage) {
|
public Long insertPackage(UserPackage userPackage) {
|
||||||
return mapper.insertPackage(userPackage);
|
return mapper.insertPackage(userPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updatePackageStatus(Integer packageId, Status status) {
|
public void updatePackageStatus(Long packageId, Status status) {
|
||||||
mapper.updatePackageStatus(packageId, status.name());
|
mapper.updatePackageStatus(packageId, status.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updatePackageLastDownloadedReport(Integer id, String fileName) {
|
public void updatePackageLastDownloadedReport(Long id, String fileName) {
|
||||||
mapper.updatePackageLastDownloadedReport(id, fileName);
|
mapper.updatePackageLastDownloadedReport(id, fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserPackage findPackage(Integer id) {
|
public void updatePackageOnMonitoringSuccess(Long id, LocalDateTime monitoringAt) {
|
||||||
|
mapper.updatePackageOnMonitoringSuccess(id, monitoringAt);
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserPackage findPackage(Long id) {
|
||||||
return mapper.findPackage(id);
|
return mapper.findPackage(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ public class MonitoringReportErrorsStaxtReader extends BaseStaxReader<Monitoring
|
||||||
switch (reader.getAttributeLocalName(i)) {
|
switch (reader.getAttributeLocalName(i)) {
|
||||||
case "uid" -> {
|
case "uid" -> {
|
||||||
try {
|
try {
|
||||||
int uid = Integer.parseInt(text);
|
Long uid = Long.parseLong(text);
|
||||||
obj.getCurrentPerson().setUid(uid);
|
obj.getCurrentPerson().setUid(uid);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
log.error("Couldn't parse uid: {}", text);
|
log.error("Couldn't parse uid: {}", text);
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ public class OnlineDownloadReportPersonsStaxReader extends BaseStaxReader<Person
|
||||||
switch (reader.getAttributeLocalName(i)) {
|
switch (reader.getAttributeLocalName(i)) {
|
||||||
case "uid" -> {
|
case "uid" -> {
|
||||||
try {
|
try {
|
||||||
int uid = Integer.parseInt(text);
|
Long uid = Long.parseLong(text);
|
||||||
obj.getCurrentPerson().setUid(uid);
|
obj.getCurrentPerson().setUid(uid);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
log.error("Couldn't parse uid: {}", text);
|
log.error("Couldn't parse uid: {}", text);
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
<result property="status" column="status"/>
|
<result property="status" column="status"/>
|
||||||
<result property="deactivatedAt" column="deactivated_at"/>
|
<result property="deactivatedAt" column="deactivated_at"/>
|
||||||
<result property="lastDownloadedReport" column="last_downloaded_report"/>
|
<result property="lastDownloadedReport" column="last_downloaded_report"/>
|
||||||
|
<result property="monitoringAt" column="monitoring_at"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<select id="isPackageNotUnique" resultType="boolean">
|
<select id="isPackageNotUnique" resultType="boolean">
|
||||||
|
|
@ -51,7 +52,7 @@
|
||||||
#{previousStatus}
|
#{previousStatus}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="insertPackage" resultType="java.lang.Integer"
|
<select id="insertPackage" resultType="java.lang.Long"
|
||||||
parameterType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
parameterType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||||
INSERT INTO signals_user_packages (membercode, package_name, created_at, status)
|
INSERT INTO signals_user_packages (membercode, package_name, created_at, status)
|
||||||
values (#{userPackage.userId}, #{userPackage.packageName}, #{userPackage.createdAt}, #{userPackage.status}) RETURNING id
|
values (#{userPackage.userId}, #{userPackage.packageName}, #{userPackage.createdAt}, #{userPackage.status}) RETURNING id
|
||||||
|
|
@ -69,9 +70,15 @@
|
||||||
WHERE id = #{id}
|
WHERE id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="updatePackageOnMonitoringSuccess">
|
||||||
|
UPDATE signals_user_packages
|
||||||
|
SET monitoring_at = #{monitoringAt}, status = 'ON_MONITORING'
|
||||||
|
WHERE id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
<select id="findPackage" resultMap="packageDataResultMap"
|
<select id="findPackage" resultMap="packageDataResultMap"
|
||||||
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||||
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report
|
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report, monitoring_at
|
||||||
FROM signals_user_packages
|
FROM signals_user_packages
|
||||||
WHERE id = #{id}
|
WHERE id = #{id}
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
|
|
@ -79,7 +86,7 @@
|
||||||
|
|
||||||
<select id="findUserPackages" resultMap="packageDataResultMap"
|
<select id="findUserPackages" resultMap="packageDataResultMap"
|
||||||
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||||
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report
|
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report, monitoring_at
|
||||||
FROM signals_user_packages
|
FROM signals_user_packages
|
||||||
WHERE membercode IS NOT NULL
|
WHERE membercode IS NOT NULL
|
||||||
AND LEFT(membercode, 6) = #{userId}
|
AND LEFT(membercode, 6) = #{userId}
|
||||||
|
|
@ -91,7 +98,7 @@
|
||||||
|
|
||||||
<select id="findAllPackagesByUserId" resultMap="packageDataResultMap"
|
<select id="findAllPackagesByUserId" resultMap="packageDataResultMap"
|
||||||
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||||
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report
|
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report, monitoring_at
|
||||||
FROM signals_user_packages
|
FROM signals_user_packages
|
||||||
WHERE membercode IS NOT NULL
|
WHERE membercode IS NOT NULL
|
||||||
AND LEFT(membercode, 6) = #{userId}
|
AND LEFT(membercode, 6) = #{userId}
|
||||||
|
|
@ -99,7 +106,7 @@
|
||||||
|
|
||||||
<select id="findAllPackagesByStatus" resultMap="packageDataResultMap"
|
<select id="findAllPackagesByStatus" resultMap="packageDataResultMap"
|
||||||
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
resultType="ru.nbch.credit_tracker.entities.dto.UserPackage">
|
||||||
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report
|
SELECT id, membercode, package_name, created_at, status, deactivated_at, last_downloaded_report, monitoring_at
|
||||||
FROM signals_user_packages
|
FROM signals_user_packages
|
||||||
WHERE status = #{status}
|
WHERE status = #{status}
|
||||||
</select>
|
</select>
|
||||||
|
|
|
||||||
2
src/main/resources/sql/v1.10.ddl
Normal file
2
src/main/resources/sql/v1.10.ddl
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
alter table signals_phone_fid_map
|
||||||
|
add error_text text;
|
||||||
2
src/main/resources/sql/v1.18.ddl
Normal file
2
src/main/resources/sql/v1.18.ddl
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
alter table signals_user_packages
|
||||||
|
add "monitoring_at" timestamp;
|
||||||
14
src/main/resources/sql/v1.20.ddl
Normal file
14
src/main/resources/sql/v1.20.ddl
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
alter table signals_user_packages
|
||||||
|
alter column id type bigint using id::bigint;
|
||||||
|
|
||||||
|
alter table signals_phone_fid_map
|
||||||
|
alter column id type bigint using id::bigint;
|
||||||
|
|
||||||
|
alter table signals_phone_fid_map
|
||||||
|
alter column package_id type bigint using package_id::bigint;
|
||||||
|
|
||||||
|
alter table signals_hits
|
||||||
|
alter column id type bigint using id::bigint;
|
||||||
|
|
||||||
|
alter table signals_hits
|
||||||
|
alter column package_id type bigint using package_id::bigint;
|
||||||
Loading…
Add table
Reference in a new issue