From 0cc8b9b3a9b1c7ed6d397917510a77eebf75fd70 Mon Sep 17 00:00:00 2001 From: jianjun Date: Tue, 27 Apr 2021 17:37:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8F=98=E5=8A=A8=E5=8F=91?= =?UTF-8?q?=E9=80=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-commons/epmet-commons-rocketmq/pom.xml | 6 +- .../messages/ProjectChangedMQMsg.java | 17 +++++ .../epmet-message-client/pom.xml | 6 ++ .../com/epmet/constant/SystemMessageType.java | 5 ++ .../java/com/epmet/send/SendMqMsgUtil.java | 69 +++++++++++++++++++ 5 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/ProjectChangedMQMsg.java create mode 100644 epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java diff --git a/epmet-commons/epmet-commons-rocketmq/pom.xml b/epmet-commons/epmet-commons-rocketmq/pom.xml index a3761c000f..274ec09b58 100644 --- a/epmet-commons/epmet-commons-rocketmq/pom.xml +++ b/epmet-commons/epmet-commons-rocketmq/pom.xml @@ -17,5 +17,9 @@ rocketmq-spring-boot-starter 2.0.1 + + org.projectlombok + lombok + - \ No newline at end of file + diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/ProjectChangedMQMsg.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/ProjectChangedMQMsg.java new file mode 100644 index 0000000000..075b3c8ce7 --- /dev/null +++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/ProjectChangedMQMsg.java @@ -0,0 +1,17 @@ +package com.epmet.commons.rocketmq.messages; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.io.Serializable; + +/** + * desc:项目变动通知消息实体类 + * @author liujianjun + */ +@Data +@AllArgsConstructor +public class ProjectChangedMQMsg implements Serializable { + + private String customerId; +} diff --git a/epmet-module/epmet-message/epmet-message-client/pom.xml b/epmet-module/epmet-message/epmet-message-client/pom.xml index 4c7ff05c15..6adcaf4a98 100644 --- a/epmet-module/epmet-message/epmet-message-client/pom.xml +++ b/epmet-module/epmet-message/epmet-message-client/pom.xml @@ -26,6 +26,12 @@ io.springfox springfox-swagger-ui + + com.epmet + epmet-commons-rocketmq + 2.0.0 + compile + diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java index 382b96e275..f3f98bac35 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java @@ -10,4 +10,9 @@ public interface SystemMessageType { */ String INIT_CUSTOMER = "init_customer"; + /** + * 项目变动 + */ + String PROJECT_CHANGED = "project_changed"; + } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java new file mode 100644 index 0000000000..2a382127b9 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java @@ -0,0 +1,69 @@ +package com.epmet.send; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.SystemMessageType; +import com.epmet.dto.form.SystemMsgFormDTO; +import com.epmet.feign.EpmetMessageOpenFeignClient; +import lombok.extern.slf4j.Slf4j; + +/** + * desc: 发送mq消息直接到rocketMq 系统 + * + * @author: LiuJanJun + * @date: 2021/4/23 2:39 下午 + * @versio: 1.0 + */ +@Slf4j +public class SendMqMsgUtil { + private static final SendMqMsgUtil INSTANCE = new SendMqMsgUtil(); + + private SendMqMsgUtil() { + + } + + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + + public static SendMqMsgUtil build() { + return INSTANCE; + } + + public SendMqMsgUtil openFeignClient(EpmetMessageOpenFeignClient epmetMessageOpenFeignClient) { + this.epmetMessageOpenFeignClient = epmetMessageOpenFeignClient; + return this; + } + + /** + * desc: 发送小组成就消息,计算小组成就 + * + * @param msgContent + * @return boolean + * @author LiuJanJun + * @date 2021/4/23 3:01 下午 + * @remark 失败重试1次,调用端自行判断如果失败是否要继续执行 + */ + public boolean sendProjectChangedMqMsg(ProjectChangedMQMsg msgContent) { + try { + SystemMsgFormDTO systemMsgFormDTO = new SystemMsgFormDTO(); + systemMsgFormDTO.setMessageType(SystemMessageType.PROJECT_CHANGED); + systemMsgFormDTO.setContent(msgContent); + Result sendMsgResult = null; + log.info("sendProjectChangedMqMsg param:{}",msgContent); + int retryTime = 0; + do { + sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(systemMsgFormDTO); + } while ((sendMsgResult == null || !sendMsgResult.success()) && retryTime++ < NumConstant.TWO); + + if (sendMsgResult != null && sendMsgResult.success()) { + return true; + } + log.error("发送(项目变动)系统消息到message服务失败:{},msg:{}", JSON.toJSONString(sendMsgResult), JSON.toJSONString(systemMsgFormDTO)); + } catch (Exception e) { + log.error("sendMqMsg exception", e); + } + return false; + } + +}