session not launched notification

This commit is contained in:
ialbert 2023-09-12 15:22:39 +03:00
parent 08271d7e36
commit 21ec74df69
3 changed files with 45 additions and 6 deletions

View file

@ -0,0 +1,32 @@
package ru.spcex.clearing.notification;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.NotificationNewRequest;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
import ru.spcex.platform.enumeration.ObjectType;
import ru.spcex.platform.enumeration.Priority;
@Component
public class NotificationSender {
private final Logger log = LoggerFactory.getLogger(getClass());
private final KafkaSender kafkaSender;
@Autowired
public NotificationSender(KafkaSender kafkaSender) {
this.kafkaSender = kafkaSender;
}
public void sendNotification(ObjectType objType, String comment, Priority priority) {
NotificationNewRequest reviseNotification = new NotificationNewRequest();
reviseNotification.setObjectType(ObjectType.rgst.getKey());
reviseNotification.setComment(comment);
reviseNotification.setPriority(priority.getKey());
kafkaSender.sendRequestToQueue(Consts.NOTIFICATION_NEW, reviseNotification);
log.info("notification {} sent {}", objType, comment);
}
}

View file

@ -6,14 +6,15 @@ import org.springframework.stereotype.Service;
import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.misc.Session;
import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.error.ClearingError;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.notification.NotificationSender;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.platform.enumeration.Section; import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.enumeration.SessionStatus;
import ru.spcex.platform.enumeration.SessionType;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.enumeration.IEnumKey;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
import ru.spcex.platform.utils.error.ValidationException; import ru.spcex.platform.utils.error.ValidationException;
import java.util.Map; import java.util.Map;
@ -22,6 +23,8 @@ import java.util.Map;
public class SessionManager { public class SessionManager {
private final Logger log = LoggerFactory.getLogger(getClass()); private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<Session> sessionImdg; private final Imdg<Session> sessionImdg;
private final NotificationSender notification;
private final IMessageResolver msgs;
private final PrimaryAuctionT0Session primaryAuctionT0Session; private final PrimaryAuctionT0Session primaryAuctionT0Session;
private final PrimaryAuctionBnSession primaryAuctionBnSession; private final PrimaryAuctionBnSession primaryAuctionBnSession;
@ -32,11 +35,13 @@ public class SessionManager {
private final ReturnDepositSession returnDepositSession; private final ReturnDepositSession returnDepositSession;
public SessionManager(ImdgProvider imdgProvider, public SessionManager(ImdgProvider imdgProvider,
PrimaryAuctionT0Session primaryAuctionT0Session, NotificationSender notification, IMessageResolver msgs, PrimaryAuctionT0Session primaryAuctionT0Session,
PrimaryAuctionBnSession primaryAuctionBnSession, PrimaryAuctionBnSession primaryAuctionBnSession,
PrimaryAuctionB0Session primaryAuctionB0Session, PrimaryAuctionB0Session primaryAuctionB0Session,
SecondaryAuctionT0Session secondaryAuctionT0Session, SecondaryAuctionT0Session secondaryAuctionT0Session,
IntermediateMkrSession intermediateMkrSession, FinalMkrSession finalMkrSession, ReturnDepositSession returnDepositSession) { IntermediateMkrSession intermediateMkrSession, FinalMkrSession finalMkrSession, ReturnDepositSession returnDepositSession) {
this.notification = notification;
this.msgs = msgs;
this.primaryAuctionT0Session = primaryAuctionT0Session; this.primaryAuctionT0Session = primaryAuctionT0Session;
this.primaryAuctionBnSession = primaryAuctionBnSession; this.primaryAuctionBnSession = primaryAuctionBnSession;
this.primaryAuctionB0Session = primaryAuctionB0Session; this.primaryAuctionB0Session = primaryAuctionB0Session;
@ -83,7 +88,9 @@ public class SessionManager {
)); ));
if (existActiveSession != null) { if (existActiveSession != null) {
log.warn("Can not start new session, cause exist active session.id={}", existActiveSession.getId()); log.warn("Can not start new session, cause exist active session.id={}", existActiveSession.getId());
throw new ValidationException(ClearingError.ActiveSessionIsPresent, String.valueOf(existActiveSession.getId())); EnumMessage err = new EnumMessage(ClearingError.ActiveSessionIsPresent, String.valueOf(existActiveSession.getId()));
notification.sendNotification(ObjectType.session, msgs.resolve(err), Priority.HIGH);
throw new ValidationException(err);
} }
} }
} }

View file

@ -3,7 +3,7 @@ package ru.spcex.platform.enumeration;
import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.enumeration.IEnumKey;
public enum ObjectType implements IEnumKey { public enum ObjectType implements IEnumKey {
statement("STMT"), vfrs("VFRS"), rgst("RGST"), gateway("GTWY"); statement("STMT"), vfrs("VFRS"), rgst("RGST"), gateway("GTWY"), session("SESN");
private final String key; private final String key;