package com.yanzuoguang.mq.vo; import com.yanzuoguang.dao.TableAnnotation; import com.yanzuoguang.util.helper.CheckerHelper; import com.yanzuoguang.util.helper.DateHelper; import com.yanzuoguang.util.helper.StringHelper; import com.yanzuoguang.util.vo.BaseVo; import com.yanzuoguang.util.vo.InitDao; import io.swagger.annotations.ApiModelProperty; /** * 发送消息 * * @author 颜佐光 */ @TableAnnotation("Queue_Message") public class MessageVo extends BaseVo implements InitDao { /** * 延迟方式:0-自动,1-私有,2-公有 */ @ApiModelProperty(notes = "延迟方式:0-公有,1-私有") public static final int DED_TIME_TYPE_PUBLIC = 0; public static final int DED_TIME_TYPE_PRIVATE = 1; /** * 消息编号,仅内部使用,消息编号会发送变动 */ private String messageId; /** * 交换器 */ private String exchangeName; /** * 路由键 */ private String routeKey; /** * 消息内容 */ private String message; /** * 延迟毫秒 */ private long dedTime; /** * 延迟方式:0-自动,1-私有,2-公有 */ @ApiModelProperty(notes = "延迟方式:0-自动,1-私有,2-公有") private int dedTimeType; /** * 处理次数 */ private int handleCount; /** * 上次处理时间 */ private String handleTime; /** * 发送批次 */ private String batchId; /** * 创建时间 */ private String createTime; /** * 检测函数 */ public void check() { CheckerHelper.newInstance() .notBlankCheck("ExchangeName", this.getExchangeName()) .notBlankCheck("RouteKey", this.getRouteKey()) .notBlankCheck("Message", this.getMessage()) .checkException(this); } /** * 构造函数 */ public MessageVo() { } /** * 构造函数 * * @param exchangeNameRouteKey 交换器名称+路由键 * @param message 消息内容 */ public MessageVo(String exchangeNameRouteKey, String message) { this(exchangeNameRouteKey, exchangeNameRouteKey, message); } /** * 构造函数 * * @param exchangeName 交换器名称 * @param routeKey 路由键 * @param message 消息内容 */ public MessageVo(String exchangeName, String routeKey, String message) { this.exchangeName = exchangeName; this.routeKey = routeKey; this.message = message; } /** * 构造函数 * * @param exchangeNameRouteKey 交换器名称+路由键 * @param message 消息内容 * @param dedTime 过期时间 */ public MessageVo(String exchangeNameRouteKey, String message, long dedTime) { this(exchangeNameRouteKey, exchangeNameRouteKey, message, dedTime); } /** * 构造函数 * * @param exchangeNameRouteKey 交换器名称+路由键 * @param message 消息内容 * @param dedTime 过期时间 * @param dedTimeType 过期处理方式 */ public MessageVo(String exchangeNameRouteKey, String message, long dedTime, int dedTimeType) { this(exchangeNameRouteKey, exchangeNameRouteKey, message, dedTime, dedTimeType); } /** * 构造函数 * * @param exchangeName 交换器名称 * @param routeKey 路由键 * @param message 消息内容 * @param dedTime 过期时间 */ public MessageVo(String exchangeName, String routeKey, String message, long dedTime) { this(exchangeName, routeKey, message, dedTime, DED_TIME_TYPE_PUBLIC); } /** * 构造函数 * * @param exchangeName 交换器名称 * @param routeKey 路由键 * @param message 消息内容 * @param dedTime 过期时间 * @param dedTimeType 过期处理方式 */ public MessageVo(String exchangeName, String routeKey, String message, long dedTime, int dedTimeType) { this.exchangeName = exchangeName; this.routeKey = routeKey; this.message = message; this.dedTime = (int) dedTime; this.dedTimeType = dedTimeType; } /** * 构造函数 * * @param exchangeName 交换器名称 * @param routeKey 路由键 * @param message 消息内容 * @param handleTime 处理时间 */ public MessageVo(String exchangeName, String routeKey, String message, String handleTime) { this.exchangeName = exchangeName; this.routeKey = routeKey; this.message = message; this.handleTime = handleTime; this.dedTimeType = DED_TIME_TYPE_PUBLIC; } public String getMessageId() { return messageId; } public void setMessageId(String messageId) { this.messageId = messageId; } public String getExchangeName() { return exchangeName; } public void setExchangeName(String exchangeName) { this.exchangeName = exchangeName; } public String getRouteKey() { return routeKey; } public void setRouteKey(String routeKey) { this.routeKey = routeKey; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public long getDedTime() { return dedTime; } public void setDedTime(long dedTime) { this.dedTime = dedTime; } public int getDedTimeType() { return dedTimeType; } public void setDedTimeType(int dedTimeType) { this.dedTimeType = dedTimeType; } public int getHandleCount() { return handleCount; } public void setHandleCount(int handleCount) { this.handleCount = handleCount; } public String getHandleTime() { return handleTime; } public void setHandleTime(String handleTime) { this.handleTime = handleTime; } public String getBatchId() { return batchId; } public void setBatchId(String batchId) { this.batchId = batchId; } public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } @Override public void init() { this.batchId = StringHelper.getFirst(this.batchId, StringHelper.EMPTY); this.message = StringHelper.getFirst(this.message, StringHelper.EMPTY); this.handleTime = StringHelper.getFirst(this.handleTime, DateHelper.getNow()); this.createTime = StringHelper.getFirst(this.createTime, DateHelper.getNow()); } }