mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-04-11 04:53:15 +08:00
update 消息推送增加 消息类型 消息来源 前端跳转路径等扩展参数
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
package org.dromara.common.core.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.enums.PushSourceEnum;
|
||||
import org.dromara.common.core.enums.PushTypeEnum;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 推送给前端的统一消息体
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@Data
|
||||
public class PushPayload implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 消息类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 消息来源
|
||||
*/
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* 文本消息
|
||||
*/
|
||||
private String message;
|
||||
|
||||
/**
|
||||
* 扩展数据
|
||||
*/
|
||||
private Object data;
|
||||
|
||||
/**
|
||||
* 前端跳转路径
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 前端跳转参数
|
||||
*/
|
||||
private Map<String, Object> query;
|
||||
|
||||
/**
|
||||
* 时间戳
|
||||
*/
|
||||
private Long timestamp;
|
||||
|
||||
public static PushPayload of(String type, String source, String message, Object data) {
|
||||
PushPayload payload = new PushPayload();
|
||||
payload.setType(StringUtils.defaultIfBlank(type, PushTypeEnum.MESSAGE.getType()));
|
||||
payload.setSource(StringUtils.defaultIfBlank(source, PushSourceEnum.BACKEND.getSource()));
|
||||
payload.setMessage(message);
|
||||
payload.setData(data);
|
||||
payload.setTimestamp(System.currentTimeMillis());
|
||||
return payload;
|
||||
}
|
||||
|
||||
public static PushPayload of(PushTypeEnum type, PushSourceEnum source, String message, Object data) {
|
||||
return of(
|
||||
type == null ? null : type.getType(),
|
||||
source == null ? null : source.getSource(),
|
||||
message,
|
||||
data
|
||||
);
|
||||
}
|
||||
|
||||
public static PushPayload of(PushTypeEnum type, PushSourceEnum source, String message, Object data, String path, Map<String, Object> query) {
|
||||
PushPayload payload = of(type, source, message, data);
|
||||
payload.setPath(path);
|
||||
payload.setQuery(query);
|
||||
return payload;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package org.dromara.common.core.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 推送消息来源枚举
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum PushSourceEnum {
|
||||
|
||||
/**
|
||||
* 后端系统消息
|
||||
*/
|
||||
BACKEND("backend"),
|
||||
|
||||
/**
|
||||
* 通知公告
|
||||
*/
|
||||
NOTICE("notice"),
|
||||
|
||||
/**
|
||||
* 工作流
|
||||
*/
|
||||
WORKFLOW("workflow"),
|
||||
|
||||
/**
|
||||
* 大模型
|
||||
*/
|
||||
LLM("llm"),
|
||||
|
||||
/**
|
||||
* 客户端消息
|
||||
*/
|
||||
CLIENT("client");
|
||||
|
||||
private final String source;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package org.dromara.common.core.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 推送消息类型枚举
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum PushTypeEnum {
|
||||
|
||||
/**
|
||||
* 通用消息
|
||||
*/
|
||||
MESSAGE("message"),
|
||||
|
||||
/**
|
||||
* 通知公告
|
||||
*/
|
||||
NOTICE("notice"),
|
||||
|
||||
/**
|
||||
* 大模型消息
|
||||
*/
|
||||
LLM("llm"),
|
||||
|
||||
/**
|
||||
* 自定义消息
|
||||
*/
|
||||
CUSTOM("custom");
|
||||
|
||||
private final String type;
|
||||
}
|
||||
Reference in New Issue
Block a user