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.spcex.clearing.error.ClearingError;
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.cud.schedule.LauncherCommandRequest;
import ru.spcex.platform.enumeration.Section;
import ru.spcex.platform.enumeration.SessionStatus;
import ru.spcex.platform.enumeration.SessionType;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg;
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.IMessageResolver;
import ru.spcex.platform.utils.error.ValidationException;
import java.util.Map;
@ -22,6 +23,8 @@ import java.util.Map;
public class SessionManager {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<Session> sessionImdg;
private final NotificationSender notification;
private final IMessageResolver msgs;
private final PrimaryAuctionT0Session primaryAuctionT0Session;
private final PrimaryAuctionBnSession primaryAuctionBnSession;
@ -32,11 +35,13 @@ public class SessionManager {
private final ReturnDepositSession returnDepositSession;
public SessionManager(ImdgProvider imdgProvider,
PrimaryAuctionT0Session primaryAuctionT0Session,
NotificationSender notification, IMessageResolver msgs, PrimaryAuctionT0Session primaryAuctionT0Session,
PrimaryAuctionBnSession primaryAuctionBnSession,
PrimaryAuctionB0Session primaryAuctionB0Session,
SecondaryAuctionT0Session secondaryAuctionT0Session,
IntermediateMkrSession intermediateMkrSession, FinalMkrSession finalMkrSession, ReturnDepositSession returnDepositSession) {
this.notification = notification;
this.msgs = msgs;
this.primaryAuctionT0Session = primaryAuctionT0Session;
this.primaryAuctionBnSession = primaryAuctionBnSession;
this.primaryAuctionB0Session = primaryAuctionB0Session;
@ -83,7 +88,9 @@ public class SessionManager {
));
if (existActiveSession != null) {
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;
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;