Преглед изворни кода

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

luoyb пре 1 година
родитељ
комит
74e9faa68b
33 измењених фајлова са 372 додато и 253 уклоњено
  1. 2 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DefaultConstants.java
  2. 29 0
      ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/constant/EventSenderConstants.java
  3. 28 24
      ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/constant/EventTypeConstants.java
  4. 11 4
      ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/constant/KafkaTopicConstants.java
  5. 32 8
      ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/enums/EventTypeEnum.java
  6. 15 12
      ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/producer/KafkaNormalProducer.java
  7. 8 9
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/cardCenter/service/impl/PtCardServiceImpl.java
  8. 8 3
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/service/impl/PtUserAccountServiceImpl.java
  9. 6 3
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
  10. 43 40
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
  11. 27 23
      ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/BaseBusiness.java
  12. 69 0
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaCloudConsumer.java
  13. 0 39
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaConsumer.java
  14. 4 4
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaConsumerYkt.java
  15. 12 7
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/SyncKafkaConsumer.java
  16. 3 2
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/card/CloudConsumeEventStrategyImpl.java
  17. 0 52
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/card/ConsumeEventStrategyImpl.java
  18. 3 2
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/cloud/PushCardEventStrategyImpl.java
  19. 4 3
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/cloud/PushDeptEventStrategyImpl.java
  20. 3 2
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/cloud/PushUserAccountEventStrategyImpl.java
  21. 3 2
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/cloud/PushUserEventStrategyImpl.java
  22. 4 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/DeptAddEventStrategyImpl.java
  23. 4 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/DeptDelEventStrategyImpl.java
  24. 4 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/DeptUpdateEventStrategyImpl.java
  25. 4 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/TeacherAddEventStrategyImpl.java
  26. 2 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/TeacherDelEventStrategyImpl.java
  27. 4 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/TeacherUpdateEventStrategyImpl.java
  28. 4 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/ClassAddEventStrategyImpl.java
  29. 4 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/ClassDelEventStrategyImpl.java
  30. 4 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/ClassUpdateEventStrategyImpl.java
  31. 12 2
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/TrainUpdateEventStrategyImpl.java
  32. 4 1
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/TraineeAddEventStrategyImpl.java
  33. 12 2
      ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/TraineeDelEventStrategyImpl.java

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

@@ -97,4 +97,6 @@ public interface DefaultConstants {
      * 研究生默认角色
      */
     Long GRADUATE_ROLE_ID = 1844275170961874946L;
+
+    String PUSH_DATA = "0";
 }

+ 29 - 0
ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/constant/EventSenderConstants.java

@@ -9,6 +9,7 @@ package org.dromara.common.message.kafka.constant;
  * @since jdk17
  */
 public interface EventSenderConstants {
+    //region 和外部系统消息对接的发送者
     /**
      * 教务系统
      */
@@ -19,4 +20,32 @@ public interface EventSenderConstants {
      */
     String HR = "003";
 
+    /**
+     * 一卡通系统
+     */
+    String YKT = "005";
+    //endregion
+
+    //region 新系统消息对接发送者
+    /**
+     * 系统管理
+     */
+    String SYSTEM="100";
+    /**
+     * 管理后台
+     */
+    String BACKSTAGE="110";
+    /**
+     * 消费系统
+     */
+    String CONSUME="120";
+    /**
+     * 酒店系统
+     */
+    String HOTEL="130";
+    /**
+     * 自助服务
+     */
+    String SELF="140";
+    //endregion
 }

+ 28 - 24
ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/constant/EventTypeConstants.java

@@ -16,96 +16,100 @@ public interface EventTypeConstants {
     /**
      * 部门数据
      */
-    String DEPT = EventSenderEnum.SYSTEM.code() + "00001";
+    String DEPT = "10000001";
     /**
      * 用户数据
      */
-    String USER = EventSenderEnum.SYSTEM.code() + "00002";
+    String USER = "10000002";
     //endregion
 
     //region 管理平台
     /**
      * 一卡通账户数据
      */
-    String ACCOUNT = EventSenderEnum.BACKSTAGE.code() + "00001";
+    String ACCOUNT = "11000001";
 
     /**
      * 卡片数据
      */
-    String CARD = EventSenderEnum.BACKSTAGE + "00002";
+    String CARD = "12000002";
     //endregion
 
+    /**
+     * 消费请求
+     */
+    String CONSUME = "13000001";
     //region 一卡通
     /**
      * 消费记录
      */
-    String CONSUME_RECORD = EventSenderEnum.OLD.code() + "00001";
+    String CONSUME_RECORD = "00500001";
 
     /**
      * 报到状态
      */
-    String REGISTER_STATUS = EventSenderEnum.OLD + "00002";
+    String REGISTER_STATUS = "00500002";
     //endregion
 
     //region 教务系统
     /**
      * 班级增加
      */
-    String CLASS_ADD = EventSenderEnum.TRAIN.code() + "00001";
+    String TRAIN_CLASS_ADD = "00200001";
 
     /**
      * 班级修改
      */
-    String CLASS_EDIT = EventSenderEnum.TRAIN + "00002";
+    String TRAIN_CLASS_EDIT = "00200002";
 
     /**
      * 班级删除
      */
-    String CLASS_DEL = EventSenderEnum.TRAIN + "00003";
+    String TRAIN_CLASS_DEL = "00200003";
     /**
      * 学员增加
      */
-    String TRAINEE_ADD = EventSenderEnum.TRAIN.code() + "00004";
+    String TRAINEE_ADD = "00200004";
 
     /**
      * 学员修改
      */
-    String TRAINEE_EDIT = EventSenderEnum.TRAIN + "00005";
+    String TRAINEE_EDIT = "00200005";
 
     /**
      * 学员删除
      */
-    String TRAINEE_DEL = EventSenderEnum.TRAIN + "00006";
+    String TRAINEE_DEL = "00200006";
     //endregion
 
     //region 业中(人事)
     /**
-     * 班级增加
+     * 部门增加
      */
-    String DEPT_ADD = EventSenderEnum.HR.code() + "00001";
+    String DEPT_ADD = "00300001";
 
     /**
-     * 班级修改
+     * 部门修改
      */
-    String DEPT_EDIT = EventSenderEnum.HR + "00002";
+    String DEPT_EDIT = "00300002";
 
     /**
-     * 班级删除
+     * 部门删除
      */
-    String DEPT_DEL = EventSenderEnum.HR + "00003";
+    String DEPT_DEL = "00300003";
     /**
-     * 学员增加
+     * 教职工增加
      */
-    String TEACHER_ADD = EventSenderEnum.HR.code() + "00004";
+    String TEACHER_ADD = "00300004";
 
     /**
-     * 学员修改
+     * 教职工修改
      */
-    String TEACHER_EDIT = EventSenderEnum.HR + "00005";
+    String TEACHER_EDIT = "00300005";
 
     /**
-     * 学员删除
+     * 教职工删除
      */
-    String TEACHER_DEL = EventSenderEnum.HR + "00006";
+    String TEACHER_DEL = "00300006";
     //endregion
 }

+ 11 - 4
ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/constant/KafkaTopicConstants.java

@@ -1,11 +1,18 @@
 package org.dromara.common.message.kafka.constant;
 
 public interface KafkaTopicConstants {
-
-    // 本地库与信创云 同步 主题
+    /**
+     * 云平台同步到本地的主题
+     */
     String SYNC_DATA_TOPIC = "ykt_operation";
     /**
-     * 根据是否推送消息配置的推送主题
+     * 本地数据同步到云平台的主题
      */
-    String NORMAL_TOPIC = "normal_data_push";
+    String TO_CLOUD_TOPIC = "sync_to_cloud";
+
+    /**
+     * 旧系统数据同步主题
+     */
+    String OLD_SYNC_TOPIC = "eventBus";
+
 }

+ 32 - 8
ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/enums/EventTypeEnum.java

@@ -9,14 +9,38 @@ package org.dromara.common.message.kafka.enums;
  * @since jdk17
  */
 public enum EventTypeEnum {
-    DEPT(EventSenderEnum.SYSTEM.code() + "00001","部门数据");
-    // USER("110","用户数据"),
-    // ACCOUNT("120","账户数据"),
-    // CARD("130","卡片数据"),
-    // CONSUME_RECORD("140","消费记录"),
-    // REGISTER_STATUS("002","报到状态"),
-    // HR("003","人事系统"),
-    // OLD("005","一卡通系统");
+    //region 外部对接事件
+    //region 教务系统相关
+    CLASS_ADD("00200001", "班级增加"),
+    CLASS_EDIT("00200002", "班级修改"),
+    CLASS_DEL("00200003", "班级删除"),
+    TRAINEE_ADD("00200004", "学员增加"),
+    TRAINEE_EDIT("00200005", "学员修改"),
+    TRAINEE_DEL("00200006", "学员删除"),
+    //endregion
+
+    //region 教职工相关
+    DEPT_ADD("00300001", "部门增加"),
+    DEPT_EDIT("00300002", "部门修改"),
+    DEPT_DEL("00300003", "部门删除"),
+    TEACHER_ADD("00300004", "教职工增加"),
+    TEACHER_EDIT("00300005", "教职工修改"),
+    TEACHER_DEL("00300006", "教职工删除"),
+    //endregion
+
+    //region 原一卡通系统相关
+    CONSUME_RECORD("00500001", "消费记录"),
+    REGISTER_STATUS("00500002", "报到状态"),
+    //endregion
+    //endregion
+
+    //region 内部对接事件
+    DEPT("10000001", "部门数据"),
+    USER("10000002", "用户数据"),
+    ACCOUNT("11000001", "消费账户数据"),
+    CARD("11000002", "卡片数据"),
+    CONSUME("12000001", "消费请求");
+    //endregion
 
     private final String code;
     private final String name;

+ 15 - 12
ruoyi-common/ruoyi-common-message/src/main/java/org/dromara/common/message/kafka/producer/KafkaNormalProducer.java

@@ -6,6 +6,7 @@ import com.alibaba.fastjson2.JSON;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.producer.ProducerRecord;
+import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.enums.CloudMqEventEnum;
 import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.message.kafka.domain.KafkaHeader;
@@ -36,7 +37,7 @@ public class KafkaNormalProducer {
             send.whenComplete((result, ex) -> {
                 if (ex != null) {
                     log.error("[{}]-[{}]-[发送到kafka消息异常]-[{}]", EventSenderEnum.getMessage(sender),
-                              CloudMqEventEnum.getMessage(eventType), data, ex);
+                        CloudMqEventEnum.getMessage(eventType), data, ex);
                 } else {
                     log.info("[{}]-[{}]-[发送到kafka消息成功]-[{}]", EventSenderEnum.getMessage(sender), EventTypeEnum.getMessage(eventType), data);
                 }
@@ -47,18 +48,20 @@ public class KafkaNormalProducer {
     }
 
     public void sendKafkaMessage(String topic, String eventType, String sender, Object data) {
-        KafkaMessage<Object> message = new KafkaMessage<>();
-        KafkaHeader header = message.getHeader();
-        String tenantId = JSONUtil.parseObj(data).get("tenantId").toString();
-        header.setTimestamp(System.currentTimeMillis());
-        header.setEventId(IdUtil.simpleUUID());
-        header.setTenantId(tenantId);
-        header.setEventType(eventType);
-        header.setSender(sender);
+        if (DefaultConstants.PUSH_DATA.equals("1")) {
+            KafkaMessage<Object> message = new KafkaMessage<>();
+            KafkaHeader header = message.getHeader();
+            String tenantId = JSONUtil.parseObj(data).get("tenantId").toString();
+            header.setTimestamp(System.currentTimeMillis());
+            header.setEventId(IdUtil.simpleUUID());
+            header.setTenantId(tenantId);
+            header.setEventType(eventType);
+            header.setSender(sender);
 
-        message.setHeader(header);
-        message.setBody(data);
+            message.setHeader(header);
+            message.setBody(data);
 
-        SpringUtils.getAopProxy(this).sendKafkaMessage(topic, message);
+            SpringUtils.getAopProxy(this).sendKafkaMessage(topic, message);
+        }
     }
 }

+ 8 - 9
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/cardCenter/service/impl/PtCardServiceImpl.java

@@ -10,7 +10,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.esotericsoftware.minlog.Log;
 import lombok.RequiredArgsConstructor;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.backstage.api.RemotePtParameterService;
@@ -22,10 +21,11 @@ import org.dromara.backstage.cardCenter.domain.bo.PtCardBo;
 import org.dromara.backstage.cardCenter.mapper.PtCardMapper;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
 import org.dromara.backstage.domain.vo.card.PtCardVo;
-import org.dromara.backstage.mq.KafkaNormalProducer;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
+import org.dromara.common.message.kafka.constant.KafkaTopicConstants;
+import org.dromara.common.message.kafka.enums.EventSenderEnum;
+import org.dromara.common.message.kafka.producer.KafkaNormalProducer;
 import org.dromara.backstage.payment.domain.bo.PtBagBo;
-import org.dromara.backstage.payment.domain.vo.PtUserAccountVo;
-import org.dromara.common.core.constant.CacheNames;
 import org.dromara.common.core.constant.CloudMqEventConstants;
 import org.dromara.common.core.constant.Constants;
 import org.dromara.common.core.constant.DefaultConstants;
@@ -37,9 +37,6 @@ import org.dromara.common.message.kafka.domain.KafkaHeader;
 import org.dromara.common.message.kafka.domain.KafkaMessage;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.redis.utils.RedisUtils;
-import org.springframework.cache.annotation.CacheEvict;
-import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -151,7 +148,8 @@ public class PtCardServiceImpl implements IPtCardService {
                 bo.setCardId(add.getCardId());
             }
         }
-        sendCloudConsume(baseMapper.selectVoById(bo.getCardId()));
+        PtCardVo vo = baseMapper.selectVoById(bo.getCardId());
+        kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.CARD, EventSenderEnum.SYSTEM.code(), vo);
         return flag;
     }
 
@@ -166,7 +164,8 @@ public class PtCardServiceImpl implements IPtCardService {
         PtCard update = MapstructUtils.convert(bo, PtCard.class);
         validEntityBeforeSave(update);
         int count =  baseMapper.updateById(update) ;
-        sendCloudConsume(baseMapper.selectVoById(bo.getCardId()));
+        PtCardVo vo = baseMapper.selectVoById(bo.getCardId());
+        kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.CARD, EventSenderEnum.SYSTEM.code(), vo);
         return count>0;
     }
 

+ 8 - 3
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/service/impl/PtUserAccountServiceImpl.java

@@ -20,7 +20,7 @@ import org.dromara.backstage.basics.service.IPtCardtypeService;
 import org.dromara.backstage.cardCenter.domain.bo.PtCardBo;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
 import org.dromara.backstage.domain.vo.yc.YcTraineeVo;
-import org.dromara.backstage.mq.KafkaNormalProducer;
+import org.dromara.common.message.kafka.producer.KafkaNormalProducer;
 import org.dromara.backstage.payment.domain.PtUserAccount;
 import org.dromara.backstage.payment.domain.PtUserAccount4SelectVo;
 import org.dromara.backstage.payment.domain.bo.PtUserAccountBo;
@@ -37,8 +37,11 @@ import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.core.utils.file.FileUtils;
 import org.dromara.common.core.utils.file.MimeTypeUtils;
 import org.dromara.common.encrypt.interceptor.MybatisEncryptInterceptor;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
+import org.dromara.common.message.kafka.constant.KafkaTopicConstants;
 import org.dromara.common.message.kafka.domain.KafkaHeader;
 import org.dromara.common.message.kafka.domain.KafkaMessage;
+import org.dromara.common.message.kafka.enums.EventSenderEnum;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.redis.utils.RedisUtils;
@@ -228,7 +231,8 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
             bo.setUserNo(add.getUserNo());
             bagService.initAccountBag(bo.getUserId());
         }
-        sendCloudConsume(baseMapper.selectVoById(bo.getUserId()));
+        PtUserAccountVo vo = baseMapper.selectVoById(bo.getUserId());
+        kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.ACCOUNT, EventSenderEnum.SYSTEM.code(), vo);
         return flag;
     }
 
@@ -243,7 +247,8 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
         PtUserAccount update = MapstructUtils.convert(bo, PtUserAccount.class);
         validEntityBeforeSave(update);
         int count = baseMapper.updateById(update);
-         sendCloudConsume(baseMapper.selectVoById(bo.getUserId()));
+        PtUserAccountVo vo = baseMapper.selectVoById(bo.getUserId());
+        kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.ACCOUNT, EventSenderEnum.SYSTEM.code(), vo);
         return count > 0;
     }
 

+ 6 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java

@@ -292,7 +292,8 @@ public class SysDeptServiceImpl implements ISysDeptService {
         int count = this.insertDept(bo);
         if (count > 0) {
             SysDeptVo vo = baseMapper.selectVoById(bo.getDeptId());
-            sendCloudConsume(vo);
+            //sendCloudConsume(vo);
+            kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.DEPT, EventSenderEnum.SYSTEM.code(), vo);
             return vo;
         }
         return null;
@@ -326,7 +327,9 @@ public class SysDeptServiceImpl implements ISysDeptService {
             // 如果该部门是启用状态,则启用该部门的所有上级部门
             updateParentDeptStatusNormal(dept);
         }
-        sendCloudConsume(baseMapper.selectVoById(dept.getDeptId()));
+        //sendCloudConsume(baseMapper.selectVoById(dept.getDeptId()));
+        SysDeptVo vo = baseMapper.selectVoById(bo.getDeptId());
+        kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.DEPT, EventSenderEnum.SYSTEM.code(), vo);
         return result;
     }
 
@@ -458,7 +461,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
             // message.setBody(vo);
             //
             // kafkaNormalProducer.sendKafkaMessage(CloudMqEventConstants.TOPIC, message);
-            kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.NORMAL_TOPIC, EventTypeConstants.DEPT, EventSenderEnum.SYSTEM.code(), vo);
+            kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.DEPT, EventSenderEnum.SYSTEM.code(), vo);
         }
     }
 }

+ 43 - 40
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -116,11 +116,11 @@ public class SysUserServiceImpl implements ISysUserService {
             .eq(StringUtils.isNotBlank(user.getStatus()), "status", user.getStatus())
             .like(StringUtils.isNotBlank(user.getPhone()), "phone", user.getPhone())
             .between(params.get("beginTime") != null && params.get("endTime") != null,
-                     "create_time", params.get("beginTime"), params.get("endTime"))
+                "create_time", params.get("beginTime"), params.get("endTime"))
             .and(ObjectUtil.isNotNull(user.getDeptId()), w -> {
                 List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
-                                                                   .select(SysDept::getDeptId)
-                                                                   .apply(DataBaseHelper.findInSet(user.getDeptId(), "ancestors")));
+                    .select(SysDept::getDeptId)
+                    .apply(DataBaseHelper.findInSet(user.getDeptId(), "ancestors")));
                 List<Long> ids = StreamUtils.toList(deptList, SysDept::getDeptId);
                 ids.add(user.getDeptId());
                 w.in("dept_id", ids);
@@ -234,10 +234,10 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public List<SysUserVo> selectUserByIds(List<Long> userIds, Long deptId) {
         return baseMapper.selectUserList(new LambdaQueryWrapper<SysUser>()
-                                             .select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName)
-                                             .eq(SysUser::getStatus, UserConstants.USER_NORMAL)
-                                             .eq(ObjectUtil.isNotNull(deptId), SysUser::getDeptId, deptId)
-                                             .in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds));
+            .select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName)
+            .eq(SysUser::getStatus, UserConstants.USER_NORMAL)
+            .eq(ObjectUtil.isNotNull(deptId), SysUser::getDeptId, deptId)
+            .in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds));
     }
 
     /**
@@ -279,8 +279,8 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public boolean checkUserNameUnique(SysUserBo user) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
-                                              .eq(SysUser::getUserName, user.getUserName())
-                                              .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
+            .eq(SysUser::getUserName, user.getUserName())
+            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
         return exist;
     }
 
@@ -292,8 +292,8 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public boolean checkPhoneUnique(SysUserBo user) {
         return baseMapper.exists(new LambdaQueryWrapper<SysUser>()
-                                     .eq(SysUser::getPhone, user.getPhone())
-                                     .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
+            .eq(SysUser::getPhone, user.getPhone())
+            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
     }
 
     /**
@@ -304,8 +304,8 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public boolean checkEmailUnique(SysUserBo user) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysUser>()
-                                              .eq(SysUser::getEmail, user.getEmail())
-                                              .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
+            .eq(SysUser::getEmail, user.getEmail())
+            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
         return exist;
     }
 
@@ -317,8 +317,8 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public boolean checkUserNumbUnique(SysUserBo user) {
         return baseMapper.exists(new LambdaQueryWrapper<SysUser>()
-                                     .eq(SysUser::getUserNumb, user.getUserNumb())
-                                     .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
+            .eq(SysUser::getUserNumb, user.getUserNumb())
+            .ne(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId()));
     }
 
     /**
@@ -399,7 +399,9 @@ public class SysUserServiceImpl implements ISysUserService {
             SysUserVo vo = baseMapper.selectVoById(user.getUserId());
             vo.setUserNo(user.getUserNo());
             vo.setCardNo(user.getCardNo());
-            sendCloudConsume(vo);
+            kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.USER, EventSenderEnum.SYSTEM.code(), vo);
+            //sendCloudConsume(vo);
+
             return rows;
         } catch (Exception e) {
             log.error(e.getMessage(), e);
@@ -442,7 +444,8 @@ public class SysUserServiceImpl implements ISysUserService {
             int flag = baseMapper.updateById(sysUser);
             // 更新对应的一卡通账户信息
             remoteUserAccountService.updateByBo(BeanUtil.copyProperties(user, RemoteUserAccountBo.class));
-            sendCloudConsume(baseMapper.selectVoById(user.getUserId()));
+            SysUserVo vo = baseMapper.selectVoById(user.getUserId());
+            kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.USER, EventSenderEnum.SYSTEM.code(), vo);
             return flag;
         } catch (Exception e) {
             log.error(e.getMessage(), e);
@@ -472,9 +475,9 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public int updateUserStatus(Long userId, String status) {
         return baseMapper.update(null,
-                                 new LambdaUpdateWrapper<SysUser>()
-                                     .set(SysUser::getStatus, status)
-                                     .eq(SysUser::getUserId, userId));
+            new LambdaUpdateWrapper<SysUser>()
+                .set(SysUser::getStatus, status)
+                .eq(SysUser::getUserId, userId));
     }
 
     /**
@@ -487,12 +490,12 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public int updateUserProfile(SysUserBo user) {
         return baseMapper.update(null,
-                                 new LambdaUpdateWrapper<SysUser>()
-                                     .set(ObjectUtil.isNotNull(user.getNickName()), SysUser::getNickName, user.getNickName())
-                                     .set(SysUser::getPhone, user.getPhone())
-                                     .set(SysUser::getEmail, user.getEmail())
-                                     .set(SysUser::getSex, user.getSex())
-                                     .eq(SysUser::getUserId, user.getUserId()));
+            new LambdaUpdateWrapper<SysUser>()
+                .set(ObjectUtil.isNotNull(user.getNickName()), SysUser::getNickName, user.getNickName())
+                .set(SysUser::getPhone, user.getPhone())
+                .set(SysUser::getEmail, user.getEmail())
+                .set(SysUser::getSex, user.getSex())
+                .eq(SysUser::getUserId, user.getUserId()));
     }
 
     /**
@@ -505,9 +508,9 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public boolean updateUserAvatar(Long userId, Long avatar) {
         return baseMapper.update(null,
-                                 new LambdaUpdateWrapper<SysUser>()
-                                     .set(SysUser::getAvatar, avatar)
-                                     .eq(SysUser::getUserId, userId)) > 0;
+            new LambdaUpdateWrapper<SysUser>()
+                .set(SysUser::getAvatar, avatar)
+                .eq(SysUser::getUserId, userId)) > 0;
     }
 
     /**
@@ -520,9 +523,9 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public int resetUserPwd(Long userId, String password) {
         return baseMapper.update(null,
-                                 new LambdaUpdateWrapper<SysUser>()
-                                     .set(SysUser::getPassword, password)
-                                     .eq(SysUser::getUserId, userId));
+            new LambdaUpdateWrapper<SysUser>()
+                .set(SysUser::getPassword, password)
+                .eq(SysUser::getUserId, userId));
     }
 
     /**
@@ -654,7 +657,7 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public String selectUserNameById(Long userId) {
         SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
-                                                   .select(SysUser::getUserName).eq(SysUser::getUserId, userId));
+            .select(SysUser::getUserName).eq(SysUser::getUserId, userId));
         return ObjectUtil.isNull(sysUser) ? null : sysUser.getUserName();
     }
 
@@ -668,7 +671,7 @@ public class SysUserServiceImpl implements ISysUserService {
     @Cacheable(cacheNames = CacheNames.SYS_NICKNAME, key = "#userId")
     public String selectNicknameById(Long userId) {
         SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
-                                                   .select(SysUser::getNickName).eq(SysUser::getUserId, userId));
+            .select(SysUser::getNickName).eq(SysUser::getUserId, userId));
         return ObjectUtil.isNull(sysUser) ? null : sysUser.getNickName();
     }
 
@@ -693,7 +696,7 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public String selectPhonenumberById(Long userId) {
         SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
-                                                   .select(SysUser::getPhone).eq(SysUser::getUserId, userId));
+            .select(SysUser::getPhone).eq(SysUser::getUserId, userId));
         return ObjectUtil.isNull(sysUser) ? null : sysUser.getPhone();
     }
 
@@ -706,7 +709,7 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public String selectEmailById(Long userId) {
         SysUser sysUser = baseMapper.selectOne(new LambdaQueryWrapper<SysUser>()
-                                                   .select(SysUser::getEmail).eq(SysUser::getUserId, userId));
+            .select(SysUser::getEmail).eq(SysUser::getUserId, userId));
         return ObjectUtil.isNull(sysUser) ? null : sysUser.getEmail();
     }
 
@@ -719,7 +722,7 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public SysUserVo selectUserVoByOtherId(String otherId) {
         return baseMapper.selectVoOne(new LambdaQueryWrapper<SysUser>()
-                                          .eq(SysUser::getOtherId, otherId));
+            .eq(SysUser::getOtherId, otherId));
     }
 
     /**
@@ -732,7 +735,7 @@ public class SysUserServiceImpl implements ISysUserService {
     @Override
     public SysUserVo selectUserVoByUserName(String userName) {
         return baseMapper.selectVoOne(new LambdaQueryWrapper<SysUser>()
-                                          .eq(SysUser::getUserName, userName));
+            .eq(SysUser::getUserName, userName));
     }
 
     private void insertUserDept(SysUserBo bo, List<UserDeptBo> userDeptBoList) {
@@ -750,7 +753,7 @@ public class SysUserServiceImpl implements ISysUserService {
         if (CollectionUtil.isNotEmpty(userDeptBoList)) {
             // 排除主部门
             List<UserDeptBo> userDeptList = userDeptBoList.stream()
-                                                .filter(p -> ObjectUtil.notEqual(bo.getDeptId(), p.getDeptId())).toList();
+                .filter(p -> ObjectUtil.notEqual(bo.getDeptId(), p.getDeptId())).toList();
             if (CollectionUtil.isNotEmpty(userDeptList)) {
                 userDeptList.forEach(userDeptBo -> {
                     userDeptBo.setUserId(bo.getUserId());
@@ -775,7 +778,7 @@ public class SysUserServiceImpl implements ISysUserService {
             // message.setHeader(header);
             // message.setBody(vo);
             // String topic, String eventId, String eventType, String sender, Object data
-            kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.NORMAL_TOPIC, EventTypeConstants.USER, EventSenderEnum.SYSTEM.code(), vo);
+            //kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.NORMAL_TOPIC, EventTypeConstants.USER, EventSenderEnum.SYSTEM.code(), vo);
         }
     }
 }

+ 27 - 23
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/BaseBusiness.java

@@ -21,9 +21,12 @@ import org.dromara.common.core.enums.BalanceUpdateEnum;
 import org.dromara.common.core.enums.ResultCodeEnum;
 import org.dromara.common.core.exception.consume.ConsumeException;
 import org.dromara.common.core.utils.RecordIdUtils;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
+import org.dromara.common.message.kafka.constant.KafkaTopicConstants;
 import org.dromara.common.message.kafka.domain.KafkaHeader;
 import org.dromara.common.message.kafka.domain.KafkaMessage;
-import org.dromara.server.base.mq.KafkaNormalProducer;
+import org.dromara.common.message.kafka.producer.KafkaNormalProducer;
+import org.dromara.common.message.kafka.enums.EventSenderEnum;
 import org.dromara.server.base.mq.constant.PushConsumeEventConstants;
 import org.dromara.server.common.domain.consume.bo.ConsumptionBo;
 import org.dromara.server.common.domain.vo.yc.YcPushConsumeInfoVo;
@@ -59,7 +62,7 @@ public class BaseBusiness {
     private final IXfTermTotalService termTotalService;
     private final IXfConsumeDetailService consumeDetailService;
     private final IPtBagService bagService;
-    private final KafkaNormalProducer kafkaProducer;
+    private final KafkaNormalProducer kafkaNormalProducer;
 
     @DubboReference
     private final RemotePtParameterService remotePtParameterService;
@@ -245,18 +248,20 @@ public class BaseBusiness {
 
     @Async
     public void sendCloudConsume(ConsumptionBo bo){
-        KafkaMessage<ConsumptionBo> message = new KafkaMessage<>();
-        KafkaHeader header = message.getHeader();
-        header.setTimestamp(System.currentTimeMillis());
-        header.setEventId(CloudMqEventConstants.CONSUME);
-        header.setEventType(CloudMqEventConstants.CONSUME);
-        header.setSender(CloudMqEventConstants.SENDER);
+        //KafkaMessage<ConsumptionBo> message = new KafkaMessage<>();
+        //KafkaHeader header = message.getHeader();
+        //header.setTimestamp(System.currentTimeMillis());
+        //header.setEventId(CloudMqEventConstants.CONSUME);
+        //header.setEventType(CloudMqEventConstants.CONSUME);
+        //header.setSender(CloudMqEventConstants.SENDER);
+        //
+        //message.setHeader(header);
+        //message.setBody(bo);
+        //
+        //kafkaProducer.sendKafkaMessage("TO_CLOUD_EVENT", message);
+        //log.info("请求云端消费:{}", JSONUtil.toJsonStr(bo));
 
-        message.setHeader(header);
-        message.setBody(bo);
-
-        kafkaProducer.sendKafkaMessage("TO_CLOUD_EVENT", message);
-        log.info("请求云端消费:{}", JSONUtil.toJsonStr(bo));
+        kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.SYNC_DATA_TOPIC, EventTypeConstants.CONSUME, EventSenderEnum.CONSUME.code(), bo);
     }
 
     /**
@@ -342,17 +347,16 @@ public class BaseBusiness {
             ycSendConsumeInfo.setTermRecordID(vo.getTermRecordId());
             ycSendConsumeInfo.setPosRecordState(vo.getRecordStatus().intValue());
 
-            KafkaMessage<YcPushConsumeInfoVo> message = new KafkaMessage<>();
-            KafkaHeader header = message.getHeader();
-            header.setTimestamp(System.currentTimeMillis());
-            header.setEventId(PushConsumeEventConstants.CONSUME_DETAIL);
-            header.setEventType(PushConsumeEventConstants.CONSUME_DETAIL);
-            header.setSender(PushConsumeEventConstants.SENDER);
-            message.setHeader(header);
-            message.setBody(ycSendConsumeInfo);
+            //KafkaMessage<YcPushConsumeInfoVo> message = new KafkaMessage<>();
+            //KafkaHeader header = message.getHeader();
+            //header.setTimestamp(System.currentTimeMillis());
+            //header.setEventId(PushConsumeEventConstants.CONSUME_DETAIL);
+            //header.setEventType(PushConsumeEventConstants.CONSUME_DETAIL);
+            //header.setSender(PushConsumeEventConstants.SENDER);
+            //message.setHeader(header);
+            //message.setBody(ycSendConsumeInfo);
 
-            kafkaProducer.sendKafkaMessage("eventBus", message);
-            log.info("消费记录发送Kafka:{}", JSONUtil.toJsonStr(ycSendConsumeInfo));
+            kafkaNormalProducer.sendKafkaMessage(KafkaTopicConstants.OLD_SYNC_TOPIC, EventTypeConstants.CONSUME_RECORD, EventSenderEnum.SYSTEM.code(), vo);
         }
     }
 

+ 69 - 0
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaCloudConsumer.java

@@ -0,0 +1,69 @@
+package org.dromara.server.mq.consumer;
+
+import cn.hutool.core.util.ObjUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.kafka.clients.consumer.ConsumerRecord;
+import org.dromara.common.core.utils.SpringUtils;
+import org.dromara.common.message.kafka.constant.KafkaTopicConstants;
+import org.dromara.common.message.kafka.domain.KafkaMessage;
+import org.dromara.server.mq.event.kafka.IEventStrategy;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
+import org.springframework.kafka.annotation.KafkaListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * name: KafkaCloudConsumer
+ * package: org.dromara.server.mq.consumer
+ * description: 云平台对kafka消息的处理
+ * date: 2024-10-26 11:12:56 11:12
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+@RequiredArgsConstructor
+@Slf4j
+@Component
+@ConditionalOnExpression("'cloud'.equals('${locationFlag}')")
+public class KafkaCloudConsumer {
+    /**
+     * eventBus主题监听 第三方对接相关
+     *
+     * @param record 消息记录
+     */
+    @KafkaListener(topics = KafkaTopicConstants.OLD_SYNC_TOPIC, groupId = "old-to-cloud-group")
+    public void kafkaEventBusHandler(ConsumerRecord<String, String> record) {
+        KafkaMessage<?> receiveMsg = JSONUtil.toBean(record.value(), KafkaMessage.class);
+        String eventType = receiveMsg.getHeader().getEventType();
+        String sender = receiveMsg.getHeader().getSender();
+        JSONObject eventMsg = JSONUtil.parseObj(receiveMsg.getBody());
+        //在eventBus主题中,sender=005是由本系统发出,无需业务处理
+        if (ObjUtil.notEqual(sender, "005")) {
+            doMessageHandle(eventType, eventMsg, receiveMsg);
+        }
+    }
+
+    /**
+     * sync_to_cloud 主题监听 云平台和本地部署相关
+     *
+     * @param record 消息记录
+     */
+    @KafkaListener(topics = KafkaTopicConstants.TO_CLOUD_TOPIC, groupId = "local-to-cloud-group")
+    public void kafkaToCloudHandler(ConsumerRecord<String, String> record) {
+        KafkaMessage<?> receiveMsg = JSONUtil.toBean(record.value(), KafkaMessage.class);
+        String eventType = receiveMsg.getHeader().getEventType();
+        JSONObject eventMsg = JSONUtil.parseObj(receiveMsg.getBody());
+        doMessageHandle(eventType, eventMsg, receiveMsg);
+    }
+    private void doMessageHandle(String eventType, JSONObject eventMsg, KafkaMessage<?> receiveMsg) {
+        try {
+            IEventStrategy eventStrategy = SpringUtils.getBean(eventType, IEventStrategy.class);
+            eventStrategy.doMsgHandle(eventMsg);
+        } catch (Exception e) {
+            log.error("[kafka消息处理失败]-[消息:{}-[错误:{}]", receiveMsg, e.toString());
+        }
+    }
+}

+ 0 - 39
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaConsumer.java

@@ -1,39 +0,0 @@
-package org.dromara.server.mq.consumer;
-
-import cn.hutool.core.util.ObjUtil;
-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.apache.kafka.clients.consumer.ConsumerRecord;
-import org.dromara.backstage.api.RemotePtParameterService;
-import org.dromara.common.message.kafka.domain.KafkaMessage;
-import org.dromara.server.mq.event.kafka.EventStrategyContext;
-import org.slf4j.Logger;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
-import org.springframework.kafka.annotation.KafkaListener;
-import org.springframework.stereotype.Component;
-
-/**
- * name: KafkaNormalConsumer
- * package: org.dromara.server.mq.consumer
- * description: kafka消息消费
- * date: 2024-10-26 11:12:56 11:12
- *
- * @author luoyibo
- * @version 0.1
- * @since JDK 1.8
- */
-@RequiredArgsConstructor
-@Slf4j
-@Component
-@ConditionalOnExpression("'cloud'.equals('${locationFlag}')")
-public class KafkaConsumer {
-    private final EventStrategyContext eventStrategyContext;
-
-    @KafkaListener(topics = "TO_CLOUD_EVENT", groupId = "cloud-group-id")
-    public void kafkaReceiveHandler(ConsumerRecord<String, String> record) {
-        KafkaUtils.doMessageHandle(record, eventStrategyContext, log);
-    }
-}

+ 4 - 4
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/KafkaConsumerYkt.java

@@ -68,10 +68,10 @@ public class KafkaConsumerYkt {
      * 1.部门信息、人员信息、一卡通账户信息、卡片信息
      * @param record 消息内容
      */
-    @KafkaListener(topics = KafkaTopicConstants.NORMAL_TOPIC, groupId = "local-group-id")
-    public void kafkaReceiveHandler(ConsumerRecord<String, String> record) {
-        KafkaUtils.doMessageHandle(record, eventStrategyContext, log);
-    }
+    //@KafkaListener(topics = KafkaTopicConstants.NORMAL_TOPIC, groupId = "local-group-id")
+    //public void kafkaReceiveHandler(ConsumerRecord<String, String> record) {
+    //    KafkaUtils.doMessageHandle(record, eventStrategyContext, log);
+    //}
     /**
      * 初始化消息记录Bo
      * @param consumeStatus 消费状态

+ 12 - 7
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/consumer/SyncKafkaConsumer.java

@@ -1,13 +1,16 @@
 package org.dromara.server.mq.consumer;
 
+import cn.hutool.core.util.ObjUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
+import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.message.kafka.constant.EventSenderConstants;
 import org.dromara.common.message.kafka.domain.KafkaMessage;
 import org.dromara.server.mq.event.kafka.EventStrategyContext;
+import org.dromara.server.mq.event.kafka.IEventStrategy;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.stereotype.Component;
@@ -37,13 +40,15 @@ public class SyncKafkaConsumer {
         String tenantId = receiveMsg.getHeader().getTenantId();
         JSONObject eventMsg = JSONUtil.parseObj(receiveMsg.getBody());
         eventMsg.set("tenantId", tenantId);
-        switch (sender) {
-            case EventSenderConstants.TRAIN, EventSenderConstants.HR:
-                try {
-                    eventStrategyContext.doMsgHandle(eventType, eventMsg);
-                } catch (Exception e) {
-                    log.error("[业中kafka消息处理失败]-[消息:{}-[错误:{}]", receiveMsg, e);
-                }
+;
+        //在eventBus主题中,sender=005是由本系统发出,无需业务处理
+        if (ObjUtil.notEqual(sender, "005")) {
+            try {
+                IEventStrategy eventStrategy = SpringUtils.getBean(eventType, IEventStrategy.class);
+                eventStrategy.doMsgHandle(eventMsg);
+            } catch (Exception e) {
+                log.error("[kafka消息处理失败]-[消息:{}-[错误:{}]", receiveMsg, e.toString());
+            }
         }
     }
 }

+ 3 - 2
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/card/CloudConsumeEventStrategyImpl.java

@@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.common.core.constant.CloudMqEventConstants;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.consume.api.RemoteConsumeService;
 import org.dromara.consume.api.domain.bo.RemoteConsumeBo;
 import org.dromara.server.common.domain.consume.bo.ConsumptionBo;
@@ -23,7 +24,7 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(CloudMqEventConstants.CONSUME)
+@Service(EventTypeConstants.CONSUME)
 public class CloudConsumeEventStrategyImpl implements IEventStrategy {
     @DubboReference
     private final RemoteConsumeService remoteConsumeService;
@@ -32,7 +33,7 @@ public class CloudConsumeEventStrategyImpl implements IEventStrategy {
     public void doMsgHandle(JSONObject data) {
         ConsumptionBo consumptionBo = JSONUtil.toBean(data, ConsumptionBo.class);
         RemoteConsumeBo recordBo = BeanUtil.copyProperties(consumptionBo, RemoteConsumeBo.class);
-        log.info("[处理云端消费请求]-[消费信息:{}]", JSONUtil.toJsonStr(recordBo));
+        log.info("[处理本地->云端消费请求]-[消费信息:{}]", JSONUtil.toJsonStr(recordBo));
         remoteConsumeService.dealKafkaConsumeData(recordBo);
     }
 }

+ 0 - 52
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/card/ConsumeEventStrategyImpl.java

@@ -1,52 +0,0 @@
-package org.dromara.server.mq.event.kafka.impl.card;
-
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.json.JSONObject;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.dubbo.config.annotation.DubboReference;
-import org.dromara.common.core.constant.DefaultConstants;
-import org.dromara.common.core.enums.CreditTypeEnum;
-import org.dromara.common.core.enums.SystemUseTypeEnum;
-import org.dromara.consume.api.RemoteConsumeService;
-import org.dromara.consume.api.domain.bo.RemoteConsumeBo;
-import org.dromara.server.mq.constant.kafka.YktEventContraints;
-import org.dromara.server.mq.event.kafka.IEventStrategy;
-import org.springframework.stereotype.Service;
-
-import java.math.BigDecimal;
-
-/**
- * @ClassName ConsumeEventStrategyImpl
- * @Description TODO
- * @Author luoyibo
- * @Date 2024-11-12 11:52
- * @Version 1.0
- * @since jdk17
- */
-@Slf4j
-@RequiredArgsConstructor
-@Service(YktEventContraints.CONSUME_DETAIL)
-public class ConsumeEventStrategyImpl implements IEventStrategy {
-    @DubboReference
-    private final RemoteConsumeService remoteConsumeService;
-    @Override
-    public void doMsgHandle(JSONObject data) {
-        RemoteConsumeBo recordBo = new RemoteConsumeBo();
-        String time = data.get("consumeDate").toString();
-        recordBo.setConsumeMoney(new BigDecimal(data.get("consumeValue").toString()));
-        recordBo.setConsumeDate(DateUtil.parse(time));
-        recordBo.setCardNo(Long.valueOf(data.get("cardNo").toString()));
-        recordBo.setFactoryId(Long.valueOf(data.get("factoryFixId").toString()));
-        recordBo.setTermNo(Long.valueOf( data.get("termNo").toString()));
-        recordBo.setTermRecordId(Long.valueOf(data.get("termRecordID").toString()));
-        recordBo.setRealName(data.get("xm").toString());
-        recordBo.setUserNumb(data.get("userNumb").toString());
-        recordBo.setRecordStatus(Long.valueOf(data.get("posRecordState").toString()));
-        recordBo.setCreditType(CreditTypeEnum.TERM_CONSUME);
-        recordBo.setTenantId(DefaultConstants.TENANT_ID);
-        recordBo.setUseType(SystemUseTypeEnum.CONSUME);
-
-        remoteConsumeService.dealKafkaConsumeData(recordBo);
-    }
-}

+ 3 - 2
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/cloud/PushCardEventStrategyImpl.java

@@ -13,6 +13,7 @@ import org.dromara.backstage.api.domain.bo.RemoteUserAccountBo;
 import org.dromara.backstage.api.domain.vo.RemoteCardVo;
 import org.dromara.backstage.api.domain.vo.RemoteUserAccountVo;
 import org.dromara.common.core.constant.CloudMqEventConstants;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.mq.event.kafka.IEventStrategy;
 import org.springframework.stereotype.Service;
 
@@ -26,7 +27,7 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(CloudMqEventConstants.CARD)
+@Service(EventTypeConstants.CARD)
 public class PushCardEventStrategyImpl implements IEventStrategy {
     @DubboReference
     private final RemoteCardService remoteCardService;
@@ -34,7 +35,7 @@ public class PushCardEventStrategyImpl implements IEventStrategy {
     @Override
     public void doMsgHandle(JSONObject data) {
         RemoteCardBo remoteBo = JSONUtil.toBean(data, RemoteCardBo.class);
-        log.info("[处理云端卡片同步请求]-[卡片信息:{}]", JSONUtil.toJsonStr(remoteBo));
+        log.info("[处理云端->本地卡片同步请求]-[卡片信息:{}]", JSONUtil.toJsonStr(remoteBo));
         remoteCardService.saveOrUpdate(remoteBo);
     }
 }

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

@@ -10,6 +10,7 @@ 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.EventTypeConstants;
 import org.dromara.hotel.api.domain.bo.RemoteTeamBo;
 import org.dromara.hotel.api.domain.vo.RemoteTeamVo;
 import org.dromara.hotel.api.service.RemoteTeamService;
@@ -29,7 +30,7 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(CloudMqEventConstants.DEPT)
+@Service(EventTypeConstants.DEPT)
 public class PushDeptEventStrategyImpl implements IEventStrategy {
     @DubboReference
     private final RemoteDeptService remoteDeptService;
@@ -40,7 +41,7 @@ public class PushDeptEventStrategyImpl implements IEventStrategy {
     @Override
     public void doMsgHandle(JSONObject data) {
         RemoteDeptBo remoteDeptBo = JSONUtil.toBean(data, RemoteDeptBo.class);
-        log.info("[处理云端部门同步请求]-[部门信息:{}]", JSONUtil.toJsonStr(remoteDeptBo));
+        log.info("[处理云端->本地部门同步请求]-[部门信息:{}]", JSONUtil.toJsonStr(remoteDeptBo));
         RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(remoteDeptBo.getDeptId());
         if (ObjectUtil.isEmpty(remoteDeptVo)) {
             remoteDeptService.insertDept(remoteDeptBo);
@@ -59,7 +60,7 @@ public class PushDeptEventStrategyImpl implements IEventStrategy {
             remoteTeamBo.setOtherId(remoteDeptBo.getOtherId());
             remoteTeamBo.setTenantId(remoteDeptBo.getTenantId());
             remoteTeamBo.setOperatorId(ObjectUtil.isEmpty(remoteDeptBo.getCreateBy()) ? remoteDeptBo.getUpdateBy() : remoteDeptBo.getCreateBy());
-            log.info("[处理云端部门至团客]-[团客信息:{}]", JSONUtil.toJsonStr(remoteTeamBo));
+            log.info("[处理云端->本地部门至团客]-[团客信息:{}]", JSONUtil.toJsonStr(remoteTeamBo));
             R<RemoteTeamVo> remoteTeamVo = remoteTeamService.selectTeamByBo(remoteTeamBo);
             if(R.isSuccess(remoteTeamVo)){
                 remoteTeamService.updateTeamByBo(remoteTeamBo);

+ 3 - 2
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/cloud/PushUserAccountEventStrategyImpl.java

@@ -10,6 +10,7 @@ import org.dromara.backstage.api.RemoteUserAccountService;
 import org.dromara.backstage.api.domain.bo.RemoteUserAccountBo;
 import org.dromara.backstage.api.domain.vo.RemoteUserAccountVo;
 import org.dromara.common.core.constant.CloudMqEventConstants;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.mq.event.kafka.IEventStrategy;
 import org.dromara.system.api.RemoteUserService;
 import org.dromara.system.api.domain.bo.RemoteUserBo;
@@ -26,7 +27,7 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(CloudMqEventConstants.ACCOUNT)
+@Service(EventTypeConstants.ACCOUNT)
 public class PushUserAccountEventStrategyImpl implements IEventStrategy {
     @DubboReference
     private final RemoteUserAccountService remoteAccountService;
@@ -34,7 +35,7 @@ public class PushUserAccountEventStrategyImpl implements IEventStrategy {
     @Override
     public void doMsgHandle(JSONObject data) {
         RemoteUserAccountBo remoteBo = JSONUtil.toBean(data, RemoteUserAccountBo.class);
-        log.info("[处理云端一卡通账户同步请求]-[账户信息:{}]", JSONUtil.toJsonStr(remoteBo));
+        log.info("[处理云端->本地一卡通账户同步请求]-[账户信息:{}]", JSONUtil.toJsonStr(remoteBo));
         RemoteUserAccountVo remoteVo = remoteAccountService.getUserAccountVoById(remoteBo.getUserId());
         if(ObjectUtil.isEmpty(remoteVo)){
             remoteAccountService.insertByBo(remoteBo);

+ 3 - 2
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/cloud/PushUserEventStrategyImpl.java

@@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.common.core.constant.CloudMqEventConstants;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.mq.event.kafka.IEventStrategy;
 import org.dromara.system.api.RemoteDeptService;
 import org.dromara.system.api.RemoteUserService;
@@ -26,7 +27,7 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(CloudMqEventConstants.USER)
+@Service(EventTypeConstants.USER)
 public class PushUserEventStrategyImpl implements IEventStrategy {
     @DubboReference
     private final RemoteUserService remoteUserService;
@@ -34,7 +35,7 @@ public class PushUserEventStrategyImpl implements IEventStrategy {
     @Override
     public void doMsgHandle(JSONObject data) {
         RemoteUserBo remoteBo = JSONUtil.toBean(data, RemoteUserBo.class);
-        log.info("[处理云端用户同步请求]-[用户信息:{}]", JSONUtil.toJsonStr(remoteBo));
+        log.info("[处理云端->本地用户同步请求]-[用户信息:{}]", JSONUtil.toJsonStr(remoteBo));
         RemoteUserVo remoteVo = remoteUserService.selectUserById(remoteBo.getUserId());
         if(ObjectUtil.isEmpty(remoteVo)){
             remoteUserService.insertUser(remoteBo);

+ 4 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/DeptAddEventStrategyImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.server.mq.event.kafka.impl.teacher;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.base.service.dept.strategy.SyncDeptStrategyContent;
 import org.dromara.server.common.constant.SyncResourceConstants;
 import org.dromara.server.common.domain.bo.ResourceDept;
@@ -24,12 +26,13 @@ import java.util.List;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TeacherEventConstraints.DEPT_ADD)
+@Service(EventTypeConstants.DEPT_ADD)
 public class DeptAddEventStrategyImpl implements IEventStrategy {
     private final SyncDeptStrategyContent syncDeptStrategyContent;
     @Override
     public void doMsgHandle(JSONObject data) {
         List<ResourceDept> resourceDeptlist = TeacherUtils.getSyncDept(data);
+        log.info("[处理外部->云端部门增加请求]-[部门信息:{}]", JSONUtil.toJsonStr(resourceDeptlist));
         syncDeptStrategyContent.syncDept(resourceDeptlist, SyncResourceConstants.HR_DEPT);
     }
 }

+ 4 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/DeptDelEventStrategyImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.server.mq.event.kafka.impl.teacher;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.base.service.dept.SyncRemoteDeptService;
 import org.dromara.server.base.service.dept.strategy.SyncDeptStrategyContent;
 import org.dromara.server.common.constant.SyncResourceConstants;
@@ -25,12 +27,13 @@ import java.util.List;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TeacherEventConstraints.DEPT_DEL)
+@Service(EventTypeConstants.DEPT_DEL)
 public class DeptDelEventStrategyImpl implements IEventStrategy {
     private final SyncDeptStrategyContent syncDeptStrategyContent;
     @Override
     public void doMsgHandle(JSONObject data) {
         List<ResourceDept> resourceDeptlist = TeacherUtils.getSyncDept(data);
+        log.info("[处理本地->云端部门删除请求]-[部门信息:{}]", JSONUtil.toJsonStr(resourceDeptlist));
         syncDeptStrategyContent.syncDelDept(resourceDeptlist, SyncResourceConstants.HR_DEPT);
     }
 }

+ 4 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/DeptUpdateEventStrategyImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.server.mq.event.kafka.impl.teacher;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.base.service.dept.strategy.SyncDeptStrategyContent;
 import org.dromara.server.common.constant.SyncResourceConstants;
 import org.dromara.server.common.domain.bo.ResourceDept;
@@ -24,13 +26,14 @@ import java.util.List;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TeacherEventConstraints.DEPT_UPDATE)
+@Service(EventTypeConstants.DEPT_EDIT)
 public class DeptUpdateEventStrategyImpl implements IEventStrategy {
     private final SyncDeptStrategyContent syncDeptStrategyContent;
 
     @Override
     public void doMsgHandle(JSONObject data) {
         List<ResourceDept> resourceDeptlist = TeacherUtils.getSyncDept(data);
+        log.info("[处理本地->云端部门修改请求]-[部门信息:{}]", JSONUtil.toJsonStr(resourceDeptlist));
         syncDeptStrategyContent.syncDept(resourceDeptlist, SyncResourceConstants.HR_DEPT);
     }
 }

+ 4 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/TeacherAddEventStrategyImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.server.mq.event.kafka.impl.teacher;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.base.service.user.strategy.SyncUserStrategyContent;
 import org.dromara.server.common.constant.SyncResourceConstants;
 import org.dromara.server.common.domain.bo.ResourcePerson;
@@ -24,13 +26,14 @@ import java.util.List;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TeacherEventConstraints.TEACHER_ADD)
+@Service(EventTypeConstants.TEACHER_ADD)
 public class TeacherAddEventStrategyImpl implements IEventStrategy {
     private final SyncUserStrategyContent syncUserStrategyContent;
 
     @Override
     public void doMsgHandle(JSONObject data) {
         List<ResourcePerson> resourcePersonList = TeacherUtils.getSyncTeacher(data);
+        log.info("[处理本地->云端人员增加请求]-[人员增加信息:{}]", JSONUtil.toJsonStr(resourcePersonList));
         syncUserStrategyContent.syncUser(resourcePersonList, SyncResourceConstants.TEACHER);
     }
 }

+ 2 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/TeacherDelEventStrategyImpl.java

@@ -3,6 +3,7 @@ package org.dromara.server.mq.event.kafka.impl.teacher;
 import cn.hutool.json.JSONObject;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.mq.constant.kafka.TeacherEventConstraints;
 import org.dromara.server.mq.event.kafka.IEventStrategy;
 import org.springframework.stereotype.Service;
@@ -19,7 +20,7 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TeacherEventConstraints.TEACHER_DEL)
+@Service(EventTypeConstants.TEACHER_DEL)
 public class TeacherDelEventStrategyImpl implements IEventStrategy {
     @Override
     public void doMsgHandle(JSONObject msg) {

+ 4 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/teacher/TeacherUpdateEventStrategyImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.server.mq.event.kafka.impl.teacher;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.base.service.user.strategy.SyncUserStrategyContent;
 import org.dromara.server.common.constant.SyncResourceConstants;
 import org.dromara.server.common.domain.bo.ResourcePerson;
@@ -24,12 +26,13 @@ import java.util.List;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TeacherEventConstraints.TEACHER_UPDATE)
+@Service(EventTypeConstants.TEACHER_EDIT)
 public class TeacherUpdateEventStrategyImpl implements IEventStrategy {
     private final SyncUserStrategyContent syncUserStrategyContent;
     @Override
     public void doMsgHandle(JSONObject data) {
         List<ResourcePerson> resourcePersonList = TeacherUtils.getSyncTeacher(data);
+        log.info("[处理本地->云端人员修改请求]-[人员修改信息:{}]", JSONUtil.toJsonStr(resourcePersonList));
         syncUserStrategyContent.syncUser(resourcePersonList, SyncResourceConstants.TEACHER);
     }
 }

+ 4 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/ClassAddEventStrategyImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.server.mq.event.kafka.impl.train;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.base.service.dept.strategy.SyncDeptStrategyContent;
 import org.dromara.server.common.constant.SyncResourceConstants;
 import org.dromara.server.common.domain.bo.ResourceDept;
@@ -24,13 +26,14 @@ import java.util.List;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TrainEventConstraints.TRAIN_CLASS_ADD)
+@Service(EventTypeConstants.TRAIN_CLASS_ADD)
 public class ClassAddEventStrategyImpl implements IEventStrategy {
     private final SyncDeptStrategyContent syncDeptStrategyContent;
 
     @Override
     public void doMsgHandle(JSONObject msg) {
         List<ResourceDept> resourceDeptList = TrainUtils.getSycClass(msg);
+        log.info("[处理本地->云端培训班增加请求]-[培训班增加信息:{}]", JSONUtil.toJsonStr(resourceDeptList));
         syncDeptStrategyContent.syncDept(resourceDeptList, SyncResourceConstants.TRAIN_CLASS);
     }
 }

+ 4 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/ClassDelEventStrategyImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.server.mq.event.kafka.impl.train;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.base.service.dept.strategy.SyncDeptStrategyContent;
 import org.dromara.server.common.constant.SyncResourceConstants;
 import org.dromara.server.common.domain.bo.ResourceDept;
@@ -25,12 +27,13 @@ import java.util.List;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TrainEventConstraints.TRAIN_CLASS_DEL)
+@Service(EventTypeConstants.TRAIN_CLASS_DEL)
 public class ClassDelEventStrategyImpl implements IEventStrategy {
     private final SyncDeptStrategyContent syncDeptStrategyContent;
     @Override
     public void doMsgHandle(JSONObject msg) {
         List<ResourceDept> resourceDeptList = TrainUtils.getSycClass(msg);
+        log.info("[处理本地->云端培训班删除请求]-[培训班删除信息:{}]", JSONUtil.toJsonStr(resourceDeptList));
         syncDeptStrategyContent.syncDelDept(resourceDeptList, SyncResourceConstants.TRAIN_CLASS);
     }
 }

+ 4 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/ClassUpdateEventStrategyImpl.java

@@ -1,8 +1,10 @@
 package org.dromara.server.mq.event.kafka.impl.train;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.base.service.dept.strategy.SyncDeptStrategyContent;
 import org.dromara.server.common.constant.SyncResourceConstants;
 import org.dromara.server.common.domain.bo.ResourceDept;
@@ -24,13 +26,14 @@ import java.util.List;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TrainEventConstraints.TRAIN_CLASS_UPDATE)
+@Service(EventTypeConstants.TRAIN_CLASS_EDIT)
 public class ClassUpdateEventStrategyImpl implements IEventStrategy {
     private final SyncDeptStrategyContent syncDeptStrategyContent;
 
     @Override
     public void doMsgHandle(JSONObject msg) {
         List<ResourceDept> resourceDeptList = TrainUtils.getSycClass(msg);
+        log.info("[处理本地->云端培训班修改请求]-[培训班修改信息:{}]", JSONUtil.toJsonStr(resourceDeptList));
         syncDeptStrategyContent.syncDept(resourceDeptList, SyncResourceConstants.TRAIN_CLASS);
     }
 }

+ 12 - 2
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/TrainUpdateEventStrategyImpl.java

@@ -1,13 +1,20 @@
 package org.dromara.server.mq.event.kafka.impl.train;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
+import org.dromara.server.base.service.user.strategy.SyncUserStrategyContent;
+import org.dromara.server.common.constant.SyncResourceConstants;
+import org.dromara.server.common.domain.bo.ResourcePerson;
 import org.dromara.server.mq.constant.kafka.TeacherEventConstraints;
 import org.dromara.server.mq.constant.kafka.TrainEventConstraints;
 import org.dromara.server.mq.event.kafka.IEventStrategy;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * name: TrainUpdateEventStrategyImpl
  * package: org.dromara.server.mq.event.kafka.teacher.impl
@@ -20,10 +27,13 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TrainEventConstraints.TRAINEE_UPDATE)
+@Service(EventTypeConstants.TRAINEE_EDIT)
 public class TrainUpdateEventStrategyImpl implements IEventStrategy {
+    private final SyncUserStrategyContent syncUserStrategyContent;
     @Override
     public void doMsgHandle(JSONObject msg) {
-
+        List<ResourcePerson> resourcePersonList = TrainUtils.getSyncTrainee(msg);
+        log.info("[处理本地->云端培训学员修改请求]-[培训学员修改信息:{}]", JSONUtil.toJsonStr(resourcePersonList));
+        syncUserStrategyContent.syncUser(resourcePersonList, SyncResourceConstants.TRAINEE);
     }
 }

+ 4 - 1
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/TraineeAddEventStrategyImpl.java

@@ -1,9 +1,11 @@
 package org.dromara.server.mq.event.kafka.impl.train;
 
 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.message.kafka.constant.EventTypeConstants;
 import org.dromara.server.base.service.user.strategy.SyncUserStrategyContent;
 import org.dromara.server.common.constant.SyncResourceConstants;
 import org.dromara.server.common.domain.bo.ResourcePerson;
@@ -28,12 +30,13 @@ import java.util.List;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TrainEventConstraints.TRAINEE_ADD)
+@Service(EventTypeConstants.TRAINEE_ADD)
 public class TraineeAddEventStrategyImpl implements IEventStrategy {
     private final SyncUserStrategyContent syncUserStrategyContent;
     @Override
     public void doMsgHandle(JSONObject msg) {
         List<ResourcePerson> resourcePersonList = TrainUtils.getSyncTrainee(msg);
+        log.info("[处理本地->云端培训学员增加请求]-[培训学员增加信息:{}]", JSONUtil.toJsonStr(resourcePersonList));
         syncUserStrategyContent.syncUser(resourcePersonList, SyncResourceConstants.TRAINEE);
     }
 }

+ 12 - 2
ruoyi-server/ruoyi-server-mqdata/src/main/java/org/dromara/server/mq/event/kafka/impl/train/TraineeDelEventStrategyImpl.java

@@ -1,13 +1,20 @@
 package org.dromara.server.mq.event.kafka.impl.train;
 
 import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.message.kafka.constant.EventTypeConstants;
+import org.dromara.server.base.service.user.strategy.SyncUserStrategyContent;
+import org.dromara.server.common.constant.SyncResourceConstants;
+import org.dromara.server.common.domain.bo.ResourcePerson;
 import org.dromara.server.mq.constant.kafka.TeacherEventConstraints;
 import org.dromara.server.mq.constant.kafka.TrainEventConstraints;
 import org.dromara.server.mq.event.kafka.IEventStrategy;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * name: TraineeDelEventStrategyImpl
  * package: org.dromara.server.mq.event.kafka.teacher.impl
@@ -20,10 +27,13 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @RequiredArgsConstructor
-@Service(TrainEventConstraints.TRAINEE_DEL)
+@Service(EventTypeConstants.TRAINEE_DEL)
 public class TraineeDelEventStrategyImpl implements IEventStrategy {
+    private final SyncUserStrategyContent syncUserStrategyContent;
     @Override
     public void doMsgHandle(JSONObject msg) {
-
+        List<ResourcePerson> resourcePersonList = TrainUtils.getSyncTrainee(msg);
+        log.info("[处理本地->云端培训学员删除请求]-[培训学员删除信息:{}]", JSONUtil.toJsonStr(resourcePersonList));
+        syncUserStrategyContent.syncUser(resourcePersonList, SyncResourceConstants.TRAINEE);
     }
 }