Pārlūkot izejas kodu

数据同步消息发送:系统参数和餐类

bing 1 gadu atpakaļ
vecāks
revīzija
150b739a28

+ 7 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/aop/aspect/SyncDataToLocalAspect.java

@@ -15,6 +15,7 @@ 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.satoken.utils.LoginHelper;
+import org.dromara.common.tenant.core.TenantEntity;
 import org.dromara.system.api.model.LoginUser;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.stereotype.Component;
@@ -76,7 +77,12 @@ public class SyncDataToLocalAspect {
             Object[] args = joinPoint.getArgs();
             int length = args.length;
             if(length == 1){
-                data.setBody(args[0]);
+                if(args[0] instanceof TenantEntity r){
+                    r.setTenantId(header.getTenantId());
+                    data.setBody(r);
+                }else{
+                    data.setBody(args[0]);
+                }
             }else if(length >1){
                 CodeSignature signature = (CodeSignature) joinPoint.getSignature();
                 String[] paramNames = signature.getParameterNames();

+ 5 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/controller/PtMealtypeController.java

@@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.backstage.aop.annotation.SyncDataToLocal;
+import org.dromara.common.message.kafka.constant.MessageEventTypeConstants;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -81,6 +83,7 @@ public class PtMealtypeController extends BaseController {
     @SaCheckPermission("basicParameter:ptMealtype:add")
     @Log(title = "营业时段", businessType = BusinessType.INSERT)
     @RepeatSubmit()
+    @SyncDataToLocal(eventType = MessageEventTypeConstants.ptMealtype_ADD)
     @PostMapping()
     public R<Void> add(@Validated(AddGroup.class) @RequestBody PtMealTypeBo bo) {
         return toAjax(ptMealtypeService.insertByBo(bo));
@@ -92,6 +95,7 @@ public class PtMealtypeController extends BaseController {
     @SaCheckPermission("basicParameter:ptMealtype:edit")
     @Log(title = "营业时段", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
+    @SyncDataToLocal(eventType = MessageEventTypeConstants.ptMealtype_EDIT)
     @PutMapping()
     public R<Void> edit(@Validated(EditGroup.class) @RequestBody PtMealTypeBo bo) {
         return toAjax(ptMealtypeService.updateByBo(bo));
@@ -105,6 +109,7 @@ public class PtMealtypeController extends BaseController {
     @SaCheckPermission("basicParameter:ptMealtype:remove")
     @Log(title = "营业时段", businessType = BusinessType.DELETE)
     @DeleteMapping("/{mealIds}")
+    @SyncDataToLocal(eventType = MessageEventTypeConstants.ptMealtype_REMOVE)
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
                           @PathVariable Long[] mealIds) {
         return toAjax(ptMealtypeService.deleteWithValidByIds(List.of(mealIds), true));

+ 2 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/controller/PtParameterController.java

@@ -91,7 +91,7 @@ public class PtParameterController extends BaseController {
     @SaCheckPermission("basicParameter:ptParameter:remove")
     @Log(title = "系统参数", businessType = BusinessType.DELETE)
     @DeleteMapping("/{paramIds}")
-    @SyncDataToLocal(eventType = MessageEventTypeConstants.ptParameter_EDIT)
+    @SyncDataToLocal(eventType = MessageEventTypeConstants.ptParameter_REMOVE)
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
                           @PathVariable Long[] paramIds) {
         return toAjax(ptParameterService.deleteWithValidByIds(List.of(paramIds), true));
@@ -103,7 +103,7 @@ public class PtParameterController extends BaseController {
     @SaCheckPermission("basicParameter:ptParameter:edit")
     @Log(title = "系统参数", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
-    @SyncDataToLocal(eventType = MessageEventTypeConstants.ptParameter_REMOVE)
+    @SyncDataToLocal(eventType = MessageEventTypeConstants.ptParameter_EDIT)
     @PutMapping()
     public R<Void> edit(@Validated(EditGroup.class) @RequestBody PtParameterBo bo) {
         return toAjax(ptParameterService.updateByBo(bo));

+ 2 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/domain/bo/PtMealTypeBo.java

@@ -8,6 +8,7 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
+import org.dromara.common.tenant.core.TenantEntity;
 
 /**
  * 营业时段业务对象 t_pt_mealType
@@ -18,7 +19,7 @@ import jakarta.validation.constraints.*;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @AutoMapper(target = PtMealType.class, reverseConvertGenerate = false)
-public class PtMealTypeBo extends BaseEntity {
+public class PtMealTypeBo extends TenantEntity {
 
     /**
      * 营业时段id

+ 17 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/mq/KafkaProducer.java

@@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.producer.ProducerRecord;
 import org.dromara.backstage.basics.domain.bo.SendMessageRecordBo;
 import org.dromara.backstage.basics.service.ISendMessageRecordService;
+import org.dromara.common.json.utils.JsonUtils;
 import org.dromara.common.message.kafka.constant.KafkaTopicConstants;
 import org.dromara.common.message.kafka.domain.KafkaHeader;
 import org.dromara.common.message.kafka.domain.KafkaMessage;
@@ -18,6 +19,7 @@ import org.springframework.kafka.support.SendResult;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
+import java.util.List;
 import java.util.concurrent.CompletableFuture;
 
 @RequiredArgsConstructor
@@ -46,6 +48,21 @@ public class KafkaProducer {
     public void sendKafkaMessage(String topic,Long createBy, KafkaMessage<?> data){
         try{
             String jsonMessage = JSON.toJSONString(data);
+            /*KafkaMessage kafkaMessage = JsonUtils.parseObject(jsonMessage, KafkaMessage.class);
+            Object body = kafkaMessage.getBody();
+            if(body instanceof String){
+                System.err.println("body is String");
+            }else if(body instanceof Long[] r){
+                System.err.println("body is Long[]");
+                for (Long aLong : r) {
+                    System.out.println(aLong);
+                }
+            }else if(body instanceof String[]){
+                System.err.println("body is String[]");
+            }else if(body instanceof List<?> r){
+                System.err.println("body is other");
+
+            }*/
             ProducerRecord<String, String> record = new ProducerRecord<>(topic, "YKT-SYNC-Message", jsonMessage);
             log.info("发送同步数据到kafka消息系统, data: " + jsonMessage);
             CompletableFuture<SendResult<String, String>> send = kafkaTemplate.send(record);