From 692dacc55376f13aa4854e4bde85e57f6480ec28 Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Mon, 21 Jul 2025 11:15:20 +0300 Subject: [PATCH] Added UpdateProcessingPackagesService --- .../CreditTrackerApplication.java | 3 ++ .../credit_tracker/service/SignalService.java | 4 ++ .../UpdateProcessingPackagesService.java | 48 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java diff --git a/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java b/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java index eb2a0ac..d3a78f1 100644 --- a/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java +++ b/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java @@ -4,6 +4,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import ru.nbch.credit_tracker.service.MonitoringService; +import ru.nbch.credit_tracker.service.UpdateProcessingPackagesService; import ru.nbch.credit_tracker.service.UpdatingFlagsService; @SpringBootApplication @@ -11,8 +12,10 @@ public class CreditTrackerApplication { public static void main(String[] args) { ConfigurableApplicationContext ctx = SpringApplication.run(CreditTrackerApplication.class, args); + UpdateProcessingPackagesService updateProcessingPackagesService = ctx.getBean(UpdateProcessingPackagesService.class); MonitoringService monitoringService = ctx.getBean(MonitoringService.class); UpdatingFlagsService updatingFlagsService = ctx.getBean(UpdatingFlagsService.class); + updateProcessingPackagesService.run(); monitoringService.run(); updatingFlagsService.run(); } diff --git a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java index da5143a..8a55973 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java @@ -257,6 +257,10 @@ public class SignalService { return userPackageService.findAllPackagesByStatus(Status.ON_MONITORING); } + public List findPackagesOnProcessing() { + return userPackageService.findAllPackagesByStatus(Status.PROCESSING); + } + public void insertHits(List hits) { hitsService.insertHits(hits); } diff --git a/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java b/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java new file mode 100644 index 0000000..65ec88b --- /dev/null +++ b/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java @@ -0,0 +1,48 @@ +package ru.nbch.credit_tracker.service; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import ru.nbch.credit_tracker.entities.dto.UserPackage; +import ru.nbch.credit_tracker.enums.Status; +import ru.nbch.credit_tracker.service.signal.SignalRestService; + +import java.util.List; + +@Slf4j +@Service +public class UpdateProcessingPackagesService { + + private final SignalService signalService; + private final SignalRestService signalRestService; + + public UpdateProcessingPackagesService(SignalService signalService, SignalRestService signalRestService) { + this.signalService = signalService; + this.signalRestService = signalRestService; + } + + public void run() { + log.info("Start updating processing packages"); + List packages = signalService.findPackagesOnProcessing(); + for (UserPackage userPackage : packages) { + log.info("Updating flags for Package {}", userPackage.getPackageName()); + process(userPackage.getId(), userPackage.getPackageName()); + } + log.info("Finish updating processing packages"); + } + + private void process(Integer packageId, String packageName) { + try { + signalService.updateSubjects(packageId, null); + if (signalRestService.update(packageId, null)) { + log.info("Package was successfully registered in signal service. PackageId: {} PackageName: {}", packageId, packageName); + signalService.updatePackageStatus(packageId, Status.ON_MONITORING); + } else { + log.info("Package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName); + signalService.updatePackageStatus(packageId, Status.ERROR); + } + } catch (Exception e) { + signalService.updatePackageStatus(packageId, Status.ERROR); + log.error("Ошибка при поиске фидов или расчете флагов просрочек. Package_id {}", packageId, e); + } + } +}