浏览代码

feature: 同步服务完善
1.重新梳理了除界面操作外的其它kafka消息推送与消费

luoyb 1 年之前
父节点
当前提交
e5a9022fe2

+ 1 - 1
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DefaultConstants.java

@@ -98,5 +98,5 @@ public interface DefaultConstants {
      */
     Long GRADUATE_ROLE_ID = 1844275170961874946L;
 
-    String PUSH_DATA = "0";
+    String PUSH_DATA = "1";
 }

+ 2 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaCloudConsumer.java

@@ -34,7 +34,8 @@ public class KafkaCloudConsumer {
      *
      * @param record 消息记录
      */
-    @KafkaListener(topics = KafkaTopicConstants.OLD_SYNC_TOPIC, groupId = "old-to-cloud-group")
+    //@KafkaListener(topics = KafkaTopicConstants.OLD_SYNC_TOPIC, groupId = "old-to-cloud-group")
+    @KafkaListener(topics = "old-kafka-jw", groupId = "test-ykt2")
     public void kafkaEventBusHandler(ConsumerRecord<String, String> record) {
         KafkaMessage<?> receiveMsg = JSONUtil.toBean(record.value(), KafkaMessage.class);
         String eventType = receiveMsg.getHeader().getEventType();

+ 64 - 32
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/cloud/PushDeptEventStrategyImpl.java

@@ -1,20 +1,19 @@
 package org.dromara.server.mq.event.kafka.impl.cloud;
 
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.common.core.config.DefaultConfig;
-import org.dromara.common.core.constant.CloudMqEventConstants;
 import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.domain.R;
+import org.dromara.common.message.kafka.constant.EventSenderConstants;
 import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.hotel.api.domain.bo.RemoteTeamBo;
 import org.dromara.hotel.api.domain.vo.RemoteTeamVo;
 import org.dromara.hotel.api.service.RemoteTeamService;
-import org.dromara.server.mq.event.kafka.IEventStrategy;
+import org.dromara.server.mq.event.kafka.IYktEventStrategy;
 import org.dromara.system.api.RemoteDeptService;
 import org.dromara.system.api.domain.bo.RemoteDeptBo;
 import org.dromara.system.api.domain.vo.RemoteDeptVo;
@@ -30,42 +29,75 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(EventTypeConstants.DEPT)
-public class PushDeptEventStrategyImpl implements IEventStrategy {
+@Service(EventSenderConstants.SYSTEM)
+public class PushDeptEventStrategyImpl implements IYktEventStrategy {
     @DubboReference
     private final RemoteDeptService remoteDeptService;
     @DubboReference
     private final RemoteTeamService remoteTeamService;
-    private final DefaultConfig defaultConfig;
+
+    //@Override
+    //public void doMsgHandle(JSONObject data) {
+    //    RemoteDeptBo remoteDeptBo = JSONUtil.toBean(data, RemoteDeptBo.class);
+    //    log.info("[处理云端->本地部门同步请求]-[部门信息:{}]", JSONUtil.toJsonStr(remoteDeptBo));
+    //    RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(remoteDeptBo.getDeptId());
+    //    if (ObjectUtil.isEmpty(remoteDeptVo)) {
+    //        remoteDeptService.insertDept(remoteDeptBo);
+    //    } else {
+    //        remoteDeptService.updateDept(remoteDeptBo);
+    //    }
+    //    if (remoteDeptBo.getDeptType().equals(DefaultConstants.CLASS_DEPT_TYPE)) {
+    //        // 如果部门类型为培训班,则同步到客房的团客
+    //        RemoteTeamBo remoteTeamBo = new RemoteTeamBo();
+    //        remoteTeamBo.setId(remoteDeptBo.getDeptId());
+    //        remoteTeamBo.setName(remoteDeptBo.getDeptName());
+    //        remoteTeamBo.setStartTime(remoteDeptBo.getBeginDate());
+    //        remoteTeamBo.setEndTime(remoteDeptBo.getEndDate());
+    //        remoteTeamBo.setPlanQuantity(100L);
+    //        remoteTeamBo.setRemark(remoteDeptBo.getDeptName());
+    //        remoteTeamBo.setOtherId(remoteDeptBo.getOtherId());
+    //        remoteTeamBo.setTenantId(remoteDeptBo.getTenantId());
+    //        remoteTeamBo.setOperatorId(ObjectUtil.isEmpty(remoteDeptBo.getCreateBy()) ? remoteDeptBo.getUpdateBy() : remoteDeptBo.getCreateBy());
+    //        log.info("[处理云端->本地部门至团客]-[团客信息:{}]", JSONUtil.toJsonStr(remoteTeamBo));
+    //        R<RemoteTeamVo> remoteTeamVo = remoteTeamService.selectTeamByBo(remoteTeamBo);
+    //        if(R.isSuccess(remoteTeamVo)){
+    //            remoteTeamService.updateTeamByBo(remoteTeamBo);
+    //        } else {
+    //            remoteTeamService.insertTeamByBo(remoteTeamBo);
+    //        }
+    //    }
+    //}
 
     @Override
-    public void doMsgHandle(JSONObject data) {
-        RemoteDeptBo remoteDeptBo = JSONUtil.toBean(data, RemoteDeptBo.class);
-        log.info("[处理云端->本地部门同步请求]-[部门信息:{}]", JSONUtil.toJsonStr(remoteDeptBo));
-        RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(remoteDeptBo.getDeptId());
-        if (ObjectUtil.isEmpty(remoteDeptVo)) {
-            remoteDeptService.insertDept(remoteDeptBo);
-        } else {
-            remoteDeptService.updateDept(remoteDeptBo);
-        }
-        if (remoteDeptBo.getDeptType().equals(DefaultConstants.CLASS_DEPT_TYPE)) {
-            // 如果部门类型为培训班,则同步到客房的团客
-            RemoteTeamBo remoteTeamBo = new RemoteTeamBo();
-            remoteTeamBo.setId(remoteDeptBo.getDeptId());
-            remoteTeamBo.setName(remoteDeptBo.getDeptName());
-            remoteTeamBo.setStartTime(remoteDeptBo.getBeginDate());
-            remoteTeamBo.setEndTime(remoteDeptBo.getEndDate());
-            remoteTeamBo.setPlanQuantity(100L);
-            remoteTeamBo.setRemark(remoteDeptBo.getDeptName());
-            remoteTeamBo.setOtherId(remoteDeptBo.getOtherId());
-            remoteTeamBo.setTenantId(remoteDeptBo.getTenantId());
-            remoteTeamBo.setOperatorId(ObjectUtil.isEmpty(remoteDeptBo.getCreateBy()) ? remoteDeptBo.getUpdateBy() : remoteDeptBo.getCreateBy());
-            log.info("[处理云端->本地部门至团客]-[团客信息:{}]", JSONUtil.toJsonStr(remoteTeamBo));
-            R<RemoteTeamVo> remoteTeamVo = remoteTeamService.selectTeamByBo(remoteTeamBo);
-            if(R.isSuccess(remoteTeamVo)){
-                remoteTeamService.updateTeamByBo(remoteTeamBo);
+    public void doMsgHandle(String eventType, Object msg) throws Exception {
+        if (eventType.equals(EventTypeConstants.DEPT)) {
+            RemoteDeptBo remoteDeptBo = JSONUtil.toBean(JSONUtil.parseObj(msg), RemoteDeptBo.class);
+            log.info("[处理云端->本地部门同步请求]-[部门信息:{}]", JSONUtil.toJsonStr(remoteDeptBo));
+            RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(remoteDeptBo.getDeptId());
+            if (ObjectUtil.isEmpty(remoteDeptVo)) {
+                remoteDeptService.insertDept(remoteDeptBo);
             } else {
-                remoteTeamService.insertTeamByBo(remoteTeamBo);
+                remoteDeptService.updateDept(remoteDeptBo);
+            }
+            if (remoteDeptBo.getDeptType().equals(DefaultConstants.CLASS_DEPT_TYPE)) {
+                // 如果部门类型为培训班,则同步到客房的团客
+                RemoteTeamBo remoteTeamBo = new RemoteTeamBo();
+                remoteTeamBo.setId(remoteDeptBo.getDeptId());
+                remoteTeamBo.setName(remoteDeptBo.getDeptName());
+                remoteTeamBo.setStartTime(remoteDeptBo.getBeginDate());
+                remoteTeamBo.setEndTime(remoteDeptBo.getEndDate());
+                remoteTeamBo.setPlanQuantity(100L);
+                remoteTeamBo.setRemark(remoteDeptBo.getDeptName());
+                remoteTeamBo.setOtherId(remoteDeptBo.getOtherId());
+                remoteTeamBo.setTenantId(remoteDeptBo.getTenantId());
+                remoteTeamBo.setOperatorId(ObjectUtil.isEmpty(remoteDeptBo.getCreateBy()) ? remoteDeptBo.getUpdateBy() : remoteDeptBo.getCreateBy());
+                log.info("[处理云端->本地部门至团客]-[团客信息:{}]", JSONUtil.toJsonStr(remoteTeamBo));
+                R<RemoteTeamVo> remoteTeamVo = remoteTeamService.selectTeamByBo(remoteTeamBo);
+                if (R.isSuccess(remoteTeamVo)) {
+                    remoteTeamService.updateTeamByBo(remoteTeamBo);
+                } else {
+                    remoteTeamService.insertTeamByBo(remoteTeamBo);
+                }
             }
         }
     }