This commit is contained in:
parent
5b5f96309e
commit
94c88e16bd
6 changed files with 52 additions and 27 deletions
|
|
@ -4,14 +4,14 @@ import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.context.ConfigurableApplicationContext;
|
import org.springframework.context.ConfigurableApplicationContext;
|
||||||
import ru.nbch.credit_tracker.service.MonitoringService;
|
import ru.nbch.credit_tracker.service.MonitoringService;
|
||||||
import ru.nbch.credit_tracker.service.UpdateProcessingPackagesService;
|
import ru.nbch.credit_tracker.service.StartupRestoreService;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
public class CreditTrackerApplication {
|
public class CreditTrackerApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
ConfigurableApplicationContext ctx = SpringApplication.run(CreditTrackerApplication.class, args);
|
ConfigurableApplicationContext ctx = SpringApplication.run(CreditTrackerApplication.class, args);
|
||||||
UpdateProcessingPackagesService updateProcessingPackagesService = ctx.getBean(UpdateProcessingPackagesService.class);
|
StartupRestoreService updateProcessingPackagesService = ctx.getBean(StartupRestoreService.class);
|
||||||
MonitoringService monitoringService = ctx.getBean(MonitoringService.class);
|
MonitoringService monitoringService = ctx.getBean(MonitoringService.class);
|
||||||
updateProcessingPackagesService.run();
|
updateProcessingPackagesService.run();
|
||||||
monitoringService.run();
|
monitoringService.run();
|
||||||
|
|
|
||||||
|
|
@ -241,10 +241,12 @@ public class SignalFacadeV3 {
|
||||||
throw clientExcp(deleteStatusError(status), XmlErrorFormat.MonitoringPackageDeleteError, packageName);
|
throw clientExcp(deleteStatusError(status), XmlErrorFormat.MonitoringPackageDeleteError, packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (status == Status.ON_MONITORING) {
|
||||||
boolean successfullyDeleted = signalRestService.deletePackage(username, packageName);
|
boolean successfullyDeleted = signalRestService.deletePackage(username, packageName);
|
||||||
if (!successfullyDeleted) {
|
if (!successfullyDeleted) {
|
||||||
throw clientExcp(SignalError.ERROR_017, XmlErrorFormat.MonitoringPackageDeleteError, packageName);
|
throw clientExcp(SignalError.ERROR_017, XmlErrorFormat.MonitoringPackageDeleteError, packageName);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LocalDateTime deactivatedAt = LocalDateTime.now();
|
LocalDateTime deactivatedAt = LocalDateTime.now();
|
||||||
userPackageService.deletePackageById(packageToDelete.getId(), deactivatedAt);
|
userPackageService.deletePackageById(packageToDelete.getId(), deactivatedAt);
|
||||||
|
|
|
||||||
|
|
@ -11,12 +11,6 @@ public interface UserPackageMapper {
|
||||||
|
|
||||||
boolean isPackageNotUnique(@Param("userId") String userId, @Param("packageName") String packageName);
|
boolean isPackageNotUnique(@Param("userId") String userId, @Param("packageName") String packageName);
|
||||||
|
|
||||||
boolean isPackageExists(@Param("userId") String userId, @Param("packageName") String packageName, @Param("status") String status);
|
|
||||||
|
|
||||||
boolean hasActivePackages(@Param("userId") String userId, @Param("packageName") String packageName, @Param("statuses") List<String> statuses);
|
|
||||||
|
|
||||||
void deletePackage(@Param("userId") String userId, @Param("packageName") String packageName, @Param("status") String newStatus, @Param("previousStatus") String previousStatus, @Param("deactivatedAt") LocalDateTime deactivatedAt);
|
|
||||||
|
|
||||||
void deletePackageById(@Param("id") Long id, @Param("status") String newStatus, @Param("deactivatedAt") LocalDateTime deactivatedAt);
|
void deletePackageById(@Param("id") Long id, @Param("status") String newStatus, @Param("deactivatedAt") LocalDateTime deactivatedAt);
|
||||||
|
|
||||||
Long insertPackage(@Param("userPackage") UserPackage userPackage);
|
Long insertPackage(@Param("userPackage") UserPackage userPackage);
|
||||||
|
|
@ -26,6 +20,7 @@ public interface UserPackageMapper {
|
||||||
void updatePackageLastDownloadedReport(@Param("id") Long id, @Param("fileName") String fileName);
|
void updatePackageLastDownloadedReport(@Param("id") Long id, @Param("fileName") String fileName);
|
||||||
|
|
||||||
void updatePackageOnMonitoringSuccess(@Param("id") Long id, @Param("monitoringAt") LocalDateTime monitoringAt);
|
void updatePackageOnMonitoringSuccess(@Param("id") Long id, @Param("monitoringAt") LocalDateTime monitoringAt);
|
||||||
|
void updateNoFidMonitoring(@Param("id") Long id);
|
||||||
void setLastSearchedDt(@Param("id") Long id);
|
void setLastSearchedDt(@Param("id") Long id);
|
||||||
void setFidChanged(@Param("packageIds") List<Long> id);
|
void setFidChanged(@Param("packageIds") List<Long> id);
|
||||||
|
|
||||||
|
|
@ -37,6 +32,7 @@ public interface UserPackageMapper {
|
||||||
List<UserPackage> findAllPackagesByStatus(@Param("statuses") String... statuses);
|
List<UserPackage> findAllPackagesByStatus(@Param("statuses") String... statuses);
|
||||||
|
|
||||||
List<UserPackage> findAllPackagesByUserId(@Param("userId") String userId);
|
List<UserPackage> findAllPackagesByUserId(@Param("userId") String userId);
|
||||||
|
List<UserPackage> findOnMonitoringPackages();
|
||||||
List<UserPackage> findByMemberCodeAndPackageName(@Param("memberCode") String memberCode,
|
List<UserPackage> findByMemberCodeAndPackageName(@Param("memberCode") String memberCode,
|
||||||
@Param("packageName") String packageName);
|
@Param("packageName") String packageName);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package ru.nbch.credit_tracker.service;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -27,39 +26,45 @@ import ru.nbch.credit_tracker.utils.error.ExceptionUtils;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@EnableAspectJAutoProxy(exposeProxy = true)
|
@EnableAspectJAutoProxy(exposeProxy = true)
|
||||||
public class UpdateProcessingPackagesService {
|
public class StartupRestoreService {
|
||||||
|
|
||||||
private final UserPackageMapper userPackageMapper;
|
private final UserPackageMapper userPackageMapper;
|
||||||
private final PackagesRecordsMapper phoneFidMapMapper;
|
private final PackagesRecordsMapper phoneFidMapMapper;
|
||||||
private final PipelinePackageFabric pipelinePackageManager;
|
private final PipelinePackageFabric pipelinePackageManager;
|
||||||
private final PipelinePackageOrchestrator pipelineOrchestrator;
|
private final PipelinePackageOrchestrator pipelineOrchestrator;
|
||||||
private final CreditTrackerSettings creditTrackerSettings;
|
private final CreditTrackerSettings creditTrackerSettings;
|
||||||
|
private final MonitoringErrorProcesingService monitoringErrorProcesingService;
|
||||||
private final Saver saver;
|
private final Saver saver;
|
||||||
private final ExecutorService pipelineExecutorService;
|
|
||||||
private final ExecutorService saverExecutorService;
|
|
||||||
|
|
||||||
public UpdateProcessingPackagesService(UserPackageMapper userPackageMapper,
|
public StartupRestoreService(UserPackageMapper userPackageMapper,
|
||||||
PackagesRecordsMapper phoneFidMapMapper,
|
PackagesRecordsMapper phoneFidMapMapper,
|
||||||
PipelinePackageFabric pipelinePackageManager, PipelinePackageOrchestrator pipelineOrchestrator,
|
PipelinePackageFabric pipelinePackageManager,
|
||||||
|
PipelinePackageOrchestrator pipelineOrchestrator,
|
||||||
CreditTrackerSettings creditTrackerSettings,
|
CreditTrackerSettings creditTrackerSettings,
|
||||||
Saver saver,
|
MonitoringErrorProcesingService monitoringErrorProcesingService,
|
||||||
ExecutorService pipelineExecutorService,
|
Saver saver) {
|
||||||
ExecutorService saverExecutorService) {
|
|
||||||
this.userPackageMapper = userPackageMapper;
|
this.userPackageMapper = userPackageMapper;
|
||||||
this.phoneFidMapMapper = phoneFidMapMapper;
|
this.phoneFidMapMapper = phoneFidMapMapper;
|
||||||
this.pipelinePackageManager = pipelinePackageManager;
|
this.pipelinePackageManager = pipelinePackageManager;
|
||||||
this.pipelineOrchestrator = pipelineOrchestrator;
|
this.pipelineOrchestrator = pipelineOrchestrator;
|
||||||
this.creditTrackerSettings = creditTrackerSettings;
|
this.creditTrackerSettings = creditTrackerSettings;
|
||||||
|
this.monitoringErrorProcesingService = monitoringErrorProcesingService;
|
||||||
this.saver = saver;
|
this.saver = saver;
|
||||||
this.pipelineExecutorService = pipelineExecutorService;
|
|
||||||
this.saverExecutorService = saverExecutorService;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
|
onMonitoringRestore();
|
||||||
acceptedRestore();
|
acceptedRestore();
|
||||||
processingRestore();
|
processingRestore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void onMonitoringRestore() {
|
||||||
|
List<UserPackage> packages = userPackageMapper.findOnMonitoringPackages();
|
||||||
|
packages.forEach(userPackage -> {
|
||||||
|
monitoringErrorProcesingService.findErrors(userPackage.getId());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void acceptedRestore() {
|
private void acceptedRestore() {
|
||||||
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(Status.ACCEPTED.name());
|
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(Status.ACCEPTED.name());
|
||||||
log.debug("Found {} packages in status ACCEPTED", packages.size());
|
log.debug("Found {} packages in status ACCEPTED", packages.size());
|
||||||
|
|
@ -81,7 +86,7 @@ public class UpdateProcessingPackagesService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processingRestore() {
|
private void processingRestore() {
|
||||||
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(Status.PROCESSING.name());
|
List<UserPackage> packages = userPackageMapper.findAllPackagesByStatus(Status.PROCESSING.name(), Status.PROCESSING_REPEATED.name());
|
||||||
packages = packages.stream().filter(userPackage -> userPackage.getRejectStatus() == null).toList();
|
packages = packages.stream().filter(userPackage -> userPackage.getRejectStatus() == null).toList();
|
||||||
log.debug("Found {} packages in status PROCESSING and rejected_status = null", packages.size());
|
log.debug("Found {} packages in status PROCESSING and rejected_status = null", packages.size());
|
||||||
for (UserPackage userPackage : packages) {
|
for (UserPackage userPackage : packages) {
|
||||||
|
|
@ -11,7 +11,6 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||||
import ru.nbch.credit_tracker.enums.RejectedStatus;
|
import ru.nbch.credit_tracker.enums.RejectedStatus;
|
||||||
import ru.nbch.credit_tracker.enums.Status;
|
|
||||||
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
import ru.nbch.credit_tracker.mapper.signal.UserPackageMapper;
|
||||||
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
import ru.nbch.credit_tracker.model.impl.PackageVariable;
|
||||||
import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload;
|
import ru.nbch.credit_tracker.model.impl.SignalXmlFilePayload;
|
||||||
|
|
@ -119,7 +118,7 @@ public class PipelinePackageOrchestrator {
|
||||||
}
|
}
|
||||||
if (res.signalXmlFilePath() == null) {
|
if (res.signalXmlFilePath() == null) {
|
||||||
log.info("No one fid was found by packageId : {}; xml file won't be sent", packageId);
|
log.info("No one fid was found by packageId : {}; xml file won't be sent", packageId);
|
||||||
userPackageMapper.updatePackageStatus(packageId, Status.NO_FID.name());
|
userPackageMapper.updateNoFidMonitoring(packageId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,12 @@
|
||||||
WHERE id = #{id}
|
WHERE id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="updateNoFidMonitoring">
|
||||||
|
UPDATE signals_user_packages
|
||||||
|
SET monitoring_at = created_at, status = 'NO_FID', fid_changed = null
|
||||||
|
WHERE id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
<update id="setLastSearchedDt">
|
<update id="setLastSearchedDt">
|
||||||
UPDATE signals_user_packages
|
UPDATE signals_user_packages
|
||||||
SET last_searched_at = now()
|
SET last_searched_at = now()
|
||||||
|
|
@ -141,6 +147,23 @@
|
||||||
WHERE fid_changed = 1 and status = 'PROCESSING_REPEATED'
|
WHERE fid_changed = 1 and status = 'PROCESSING_REPEATED'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="findOnMonitoringPackages" resultMap="packageDataResultMap">
|
||||||
|
SELECT id,
|
||||||
|
membercode,
|
||||||
|
package_name,
|
||||||
|
created_at,
|
||||||
|
status,
|
||||||
|
deactivated_at,
|
||||||
|
last_downloaded_report,
|
||||||
|
monitoring_at,
|
||||||
|
last_searched_at,
|
||||||
|
reject_status,
|
||||||
|
signal_types
|
||||||
|
FROM signals_user_packages
|
||||||
|
WHERE status = 'ON_MONITORING' and reject_status is null
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="findUserPackages" resultMap="packageDataResultMap">
|
<select id="findUserPackages" resultMap="packageDataResultMap">
|
||||||
SELECT id,
|
SELECT id,
|
||||||
membercode,
|
membercode,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue