|
|
package com.iflytop.gd.common.notification;
import cn.hutool.core.date.DateTime; import com.iflytop.gd.app.model.dto.CmdDTO; import lombok.Getter;
/** * 向前台推送的消息类 */
@Getter public class Notification { private final String commandId; private final String command; private final String level; private final String title; private String content = null; private final String dateTime = DateTime.now().toString("yyyy/MM/dd HH:mm:ss");
private Notification(String commandId, String command, String level, String title, String content) { this.commandId = commandId; this.level = level; this.title = title; this.content = content; this.command = command; }
private Notification(String commandId, String command, String level, String title) { this.commandId = commandId; this.level = level; this.title = title; this.command = command; }
/** * 创建Info级别通知 * @param content 通知内容 * @return 通知实例 */ public static Notification infoNotification(String commandId, String command, String title, String content) { return new Notification(commandId, command, "info", title, content); }
public static Notification infoNotification(String commandId, String command, String title) { return new Notification(commandId, command, "info", title, ""); }
public static Notification infoNotification(CmdDTO cmdDTO, String title) { return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "info", title, ""); }
public static Notification infoHandleStartNotification(CmdDTO cmdDTO) { String title = String.format("开始执行{}指令", cmdDTO.getCommand()); return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "info", title, ""); }
public static Notification infoHandleEndNotification(CmdDTO cmdDTO) { String title = String.format("{}指令执行完成", cmdDTO.getCommand()); return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "info", title, ""); }
/** * 创建Warn级别通知 * @param content 通知内容 * @return 通知实例 */ public static Notification warnNotification(String commandId, String command, String title, String content) { return new Notification(commandId, command, "warn", title, content); }
/** * 创建Error级别通知 * @param content 通知内容 * @return 通知实例 */ public static Notification errorNotification(String commandId, String command, String title, String content) { return new Notification(commandId, command, "error", title, content); }
public static Notification errorNotification(CmdDTO cmdDTO, Exception e) { String title = String.format("执行{}出错", cmdDTO.getCommand()); return new Notification(cmdDTO.getCommandId(), cmdDTO.getCommand(), "error", title, e.getMessage()); }
/** * 创建Fatal级别通知 * @param content 通知内容 * @return 通知实例 */ public static Notification fatalNotification(String commandId, String command, String title, String content) { return new Notification(commandId, command, "fatal", title, content); }
}
|