From 7e25d6d1060083896a7efcdca7136b5941e36962 Mon Sep 17 00:00:00 2001 From: hewencai <2357300448@qq.com> Date: Tue, 16 Dec 2025 18:43:08 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=90=8C=E6=AD=A5=E9=85=8D=E7=BD=AE=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E7=BC=BA=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 13403ea027e91605ce97463b230df5355c8c6834) --- .../DatabusUserDeptChangeProducer.java | 19 +++++++++++++++++++ .../DatabusUserPostChangeProducer.java | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/mq/producer/databus/DatabusUserDeptChangeProducer.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/mq/producer/databus/DatabusUserDeptChangeProducer.java index d5f75058..a1f5007a 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/mq/producer/databus/DatabusUserDeptChangeProducer.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/mq/producer/databus/DatabusUserDeptChangeProducer.java @@ -15,6 +15,9 @@ import org.springframework.stereotype.Component; * 用户-部门关系变更消息 Producer *
* 负责发送用户与部门的关联关系变更事件 + *
+ * 注意:客户端系统(分公司)应该禁用此功能,避免形成消息循环 + * 配置项:zt.databus.change.producer.enabled=false * * @author ZT */ @@ -25,6 +28,16 @@ public class DatabusUserDeptChangeProducer { @Resource private RocketMQTemplate rocketMQTemplate; + /** + * 是否启用变更消息发送 + *
+ * 默认值:false(安全优先,避免未配置时导致消息循环)
+ * 集团侧(数据源):必须显式设置为 true,发送变更消息
+ * 分公司侧(客户端):保持 false 或不配置,禁用变更消息,避免循环
+ */
+ @Value("${zt.databus.change.producer.enabled:false}")
+ private boolean enabled;
+
@Value("${zt.databus.change.topic-prefix:databus-change}")
private String topicPrefix;
@@ -98,6 +111,12 @@ public class DatabusUserDeptChangeProducer {
* 发送消息到 MQ
*/
private void sendMessage(DatabusEventType eventType, DatabusUserDeptData data) {
+ if (!enabled) {
+ log.debug("[Databus] 变更消息发送已禁用, 跳过用户-部门关系变更消息, eventType={}, userId={}, deptId={}",
+ eventType, data.getUserId(), data.getDeptId());
+ return;
+ }
+
DatabusMessage
* 负责发送用户与岗位的关联关系变更事件
+ *
+ * 注意:客户端系统(分公司)应该禁用此功能,避免形成消息循环
+ * 配置项:zt.databus.change.producer.enabled=false
*
* @author ZT
*/
@@ -25,6 +28,16 @@ public class DatabusUserPostChangeProducer {
@Resource
private RocketMQTemplate rocketMQTemplate;
+ /**
+ * 是否启用变更消息发送
+ *
+ * 默认值:false(安全优先,避免未配置时导致消息循环)
+ * 集团侧(数据源):必须显式设置为 true,发送变更消息
+ * 分公司侧(客户端):保持 false 或不配置,禁用变更消息,避免循环
+ */
+ @Value("${zt.databus.change.producer.enabled:false}")
+ private boolean enabled;
+
@Value("${zt.databus.change.topic-prefix:databus-change}")
private String topicPrefix;
@@ -96,6 +109,12 @@ public class DatabusUserPostChangeProducer {
* 发送消息到 MQ
*/
private void sendMessage(DatabusEventType eventType, DatabusUserPostData data) {
+ if (!enabled) {
+ log.debug("[Databus] 变更消息发送已禁用, 跳过用户-岗位关系变更消息, eventType={}, userId={}, postId={}",
+ eventType, data.getUserId(), data.getPostId());
+ return;
+ }
+
DatabusMessage