From 5acda45438723eeb2afff4052fa408be8be78c7b Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Tue, 9 Sep 2025 11:33:23 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/BKI-3198 Allow users get list of reports for packages in PROCESSING status --- .../ru/nbch/credit_tracker/facade/SignalFacade.java | 2 +- .../mapper/signal/UserPackageMapper.java | 3 ++- .../nbch/credit_tracker/service/SignalService.java | 4 ++++ .../service/signal/UserPackageService.java | 4 ++++ .../mybatis/mapper/signal/UserPackageMapper.xml | 12 ++++++++++++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java index 45388a0..8e4c95a 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java @@ -304,7 +304,7 @@ public class SignalFacade { public ResponseEntity getReportList(String username, String packageName) { try { - if (!signalService.isPackageExists(username, packageName)) { + if (!signalService.hasActivePackages(username, packageName)) { throw clientExcp(SignalError.ERROR_012, XmlErrorFormat.MonitoringReportListError, packageName); } diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java index 6481d0b..436488a 100644 --- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java +++ b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java @@ -14,6 +14,8 @@ public interface UserPackageMapper { 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 statuses); + 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); @@ -27,5 +29,4 @@ public interface UserPackageMapper { List findUserPackages(@Param("userId") String userId, @Param("statuses") List status); List findAllPackagesByStatus(@Param("status") String status); - } 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 745c53b..8efae3c 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java @@ -290,6 +290,10 @@ public class SignalService { return userPackageService.isPackageExists(username, packageName, Status.ON_MONITORING); } + public boolean hasActivePackages(String username, String packageName) { + return userPackageService.hasActivePackages(username, packageName, Status.ON_MONITORING, Status.PROCESSING); + } + public void deletePackage(String username, String packageName, LocalDateTime deactivatedAt) { userPackageService.deletePackage(username, packageName, Status.DELETED, Status.ON_MONITORING, deactivatedAt); } diff --git a/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java b/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java index a1ffbf1..0dbc049 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/signal/UserPackageService.java @@ -26,6 +26,10 @@ public class UserPackageService { return mapper.isPackageExists(userId.substring(0, 6), packageName, status.name()); } + public boolean hasActivePackages(String userId, String packageName, Status... status) { + return mapper.hasActivePackages(userId.substring(0, 6), packageName, Arrays.stream(status).map(Enum::name).toList()); + } + public void deletePackage(String userId, String packageName, Status newStatus, Status previousStatus, LocalDateTime deactivatedAt) { mapper.deletePackage(userId.substring(0, 6), packageName, newStatus.name(), previousStatus.name(), deactivatedAt); } diff --git a/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml b/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml index c5c22c2..9022c27 100644 --- a/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml +++ b/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml @@ -31,6 +31,18 @@ AND status = #{status} + + UPDATE signals_user_packages SET status = #{status}, deactivated_at = #{deactivatedAt}