From bdd555e408cb670809e16fd0302b962ffa7e5096 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Fri, 17 Jul 2026 13:41:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(mq):=20=E6=B7=BB=E5=8A=A0=E4=BA=91?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E6=B6=88=E6=81=AF=E7=B1=BB=E5=92=8C=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建 CloudTopicMessage 类继承 BaseMessage,包含 guid、devId、frontId、node 和 detail 字段 - 添加 Detail 内部类,包含 type 和 msg 字段 - 使用 SerializedName 注解支持序列化和反序列化兼容性 - 创建 CloudTopicMessageTemplate 消息发送模板类 - 实现 sendMember 方法用于发送云主题消息到 CLOUD_TOPIC 主题 - 集成 RocketMQEnhanceTemplate 基础功能 --- .../njcn/mq/message/CloudTopicMessage.java | 64 +++++++++++++++++++ .../template/CloudTopicMessageTemplate.java | 33 ++++++++++ 2 files changed, 97 insertions(+) create mode 100644 pqs-common/common-mq/src/main/java/com/njcn/mq/message/CloudTopicMessage.java create mode 100644 pqs-common/common-mq/src/main/java/com/njcn/mq/template/CloudTopicMessageTemplate.java diff --git a/pqs-common/common-mq/src/main/java/com/njcn/mq/message/CloudTopicMessage.java b/pqs-common/common-mq/src/main/java/com/njcn/mq/message/CloudTopicMessage.java new file mode 100644 index 000000000..3da122004 --- /dev/null +++ b/pqs-common/common-mq/src/main/java/com/njcn/mq/message/CloudTopicMessage.java @@ -0,0 +1,64 @@ +package com.njcn.mq.message; + +import com.google.gson.annotations.SerializedName; +import com.njcn.middle.rocket.domain.BaseMessage; +import lombok.Data; + +/** + * @author xy + * @data 2026-07-15 + */ +@Data +public class CloudTopicMessage extends BaseMessage { + /** + * 消息请求的唯一标识 + */ + @SerializedName("guid") + private String guid; + + /** + * 设备Mac + */ + @SerializedName("Dev_id") + private String devId; + + /** + * 前置Id + * 序列化输出 "FrontId",反序列化兼容 "frontId" + */ + @SerializedName("FrontId") + private String frontId; + + /** + * 前置进程号 + * 序列化输出 "Node",反序列化兼容 "node" + */ + @SerializedName("Node") + private Integer node; + + /** + * 详情 + * 序列化输出 "Detail",反序列化兼容 "detail" + */ + @SerializedName("Detail") + private Detail detail; + + @Data + public static class Detail { + + /** + * 类型 + * 序列化输出 "Type",反序列化兼容 "type" + */ + @SerializedName("Type") + private Integer type; + + /** + * 消息内容 + * 序列化输出 "Msg",反序列化兼容 "msg" + */ + @SerializedName("Msg") + private Object msg; + } + +} diff --git a/pqs-common/common-mq/src/main/java/com/njcn/mq/template/CloudTopicMessageTemplate.java b/pqs-common/common-mq/src/main/java/com/njcn/mq/template/CloudTopicMessageTemplate.java new file mode 100644 index 000000000..5cf8288f9 --- /dev/null +++ b/pqs-common/common-mq/src/main/java/com/njcn/mq/template/CloudTopicMessageTemplate.java @@ -0,0 +1,33 @@ +package com.njcn.mq.template; + +import com.google.gson.Gson; +import com.njcn.middle.rocket.domain.BaseMessage; +import com.njcn.middle.rocket.template.RocketMQEnhanceTemplate; +import com.njcn.mq.constant.BusinessResource; +import com.njcn.mq.constant.BusinessTopic; +import com.njcn.mq.message.CloudTopicMessage; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.springframework.stereotype.Component; + +/** + * 类的介绍:读取装置版本配置信息 + * + * @author xuyang + * @version 1.0.0 + * @createTime 2026/7/15 + */ +@Component +public class CloudTopicMessageTemplate extends RocketMQEnhanceTemplate { + + public CloudTopicMessageTemplate(RocketMQTemplate template) { + super(template); + } + + public SendResult sendMember(CloudTopicMessage message, String tag) { + BaseMessage baseMessage = new BaseMessage(); + baseMessage.setSource(BusinessResource.WEB_RESOURCE); + baseMessage.setMessageBody(new Gson().toJson(message)); + return send(BusinessTopic.CLOUD_TOPIC,tag,baseMessage); + } +}