Jelajahi Sumber

Merge remote-tracking branch 'origin/main' into main

zhangwei 2 minggu lalu
induk
melakukan
be9c1c9484

+ 9 - 0
edu-travel-common/edu-travel-common-core/pom.xml

@@ -34,6 +34,15 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils</artifactId>
+        </dependency>
+        <dependency>
             <groupId>edu.travel</groupId>
             <artifactId>edu-travel-common-resp</artifactId>
             <version>1.0-SNAPSHOT</version>

+ 15 - 0
edu-travel-common/edu-travel-common-core/src/main/java/edu/travel/utils/tree/CustomDeepCopy.java

@@ -0,0 +1,15 @@
+package edu.travel.utils.tree;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.toolkit.SerializationUtils;
+import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.beanutils.ConvertUtils;
+import org.apache.commons.beanutils.converters.DateConverter;
+import java.util.Date;
+ 
+public class CustomDeepCopy {
+    public static <T> T toClass(T source, Class<T> targetClass) {
+        String jsonString = JSON.toJSONString(source);
+        return JSON.parseObject(jsonString, targetClass);
+    }
+}

+ 17 - 16
edu-travel-common/edu-travel-common-datasource/src/main/java/edu/travel/web/BaseController.java

@@ -5,6 +5,8 @@ import edu.travel.interfaces.InsertGroups;
 import edu.travel.interfaces.UpdateGroups;
 import edu.travel.resp.BaseResponse;
 import edu.travel.resp.PageResponse;
+import edu.travel.rpc.RPCBaseResponse;
+import edu.travel.rpc.RPCPageResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.http.HttpStatus;
@@ -21,50 +23,49 @@ import java.util.List;
 
 public class BaseController<T> {
     @Autowired
-    @Lazy
     private IService<T> service;
     @GetMapping("/getById")
-    public BaseResponse getById(String id) {
+    public RPCBaseResponse getById(String id) {
         T byId = service.getById(id);
-        return PageResponse.out(HttpStatus.OK.value(), HttpStatus.OK.getReasonPhrase(), byId);
+        return new RPCBaseResponse(HttpStatus.OK.value(), HttpStatus.OK.getReasonPhrase(), byId);
     }
     @PostMapping("/updateById")
     @Transactional
-    public BaseResponse<T> updateTargetById(@RequestBody T entity) {
+    public RPCBaseResponse<T> updateTargetById(@RequestBody T entity) {
         boolean update = service.updateById(entity);
         if (update) {
-            return PageResponse.out(200,"success",entity);
+            return new RPCBaseResponse<>(200,"success",entity);
         }
-        return PageResponse.out(500,"error",entity);
+        return new RPCBaseResponse(500,"error",entity);
     }
     @PostMapping("/save")
     @Transactional
-    public BaseResponse<T> saveTarget(@RequestBody T entity) {
+    public RPCBaseResponse<T> saveTarget(@RequestBody T entity) {
         boolean save = service.save(entity);
         if (save) {
-            return PageResponse.out(200,"success",entity);
+            return new RPCBaseResponse<>(200,"success",entity);
         }
-        return PageResponse.out(500,"error",entity);
+        return new RPCBaseResponse<>(500,"error",entity);
     }
     @PostMapping("/deleteById")
     @Transactional
-    public BaseResponse<T> deleteTargetById(@RequestBody List<String> ids) {
+    public RPCBaseResponse<T> deleteTargetById(@RequestBody List<String> ids) {
         if (ids == null || ids.isEmpty()) {
-            return PageResponse.out(404,"error,not found delete data",null);
+            return new RPCBaseResponse<>(404,"error,not found delete data",null);
         }
         boolean byIds = service.removeByIds(ids);
         if (byIds) {
-            return PageResponse.out(200,"success",null);
+            return new RPCBaseResponse<>(200,"success",null);
         }
-        return PageResponse.out(500,"error, delete data error",null);
+        return new RPCBaseResponse<>(500,"error, delete data error",null);
     }
     @GetMapping("/list")
-    public BaseResponse<List<T>> listAll() {
+    public RPCBaseResponse<List<T>> listAll() {
         List<T> list = service.list();
         if (list.isEmpty()) {
-            return PageResponse.out(404,"error,not found delete data",null);
+            return new RPCBaseResponse<>(404,"error,not found delete data",null);
         }
-        return PageResponse.out(200,"success",list);
+        return new RPCBaseResponse<>(200,"success",list);
     }
 
 

+ 26 - 0
edu-travel-common/edu-travel-kafka/pom.xml

@@ -0,0 +1,26 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>edu.travel</groupId>
+        <artifactId>edu-travel-common</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>edu-travel-kafka</artifactId>
+    <packaging>jar</packaging>
+
+    <name>edu-travel-kafka</name>
+    <url>http://maven.apache.org</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.kafka</groupId>
+            <artifactId>spring-kafka</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 17 - 0
edu-travel-common/edu-travel-kafka/src/main/java/edu/travel/kafka/KafkaConfig.java

@@ -0,0 +1,17 @@
+package edu.travel.kafka;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.kafka.listener.ConsumerAwareListenerErrorHandler;
+
+@Configuration
+public class KafkaConfig {
+
+    @Bean
+    public ConsumerAwareListenerErrorHandler listenerErrorHandler() {
+        return (message, exception, consumer) -> {
+            System.err.println("消费失败: " + message.getPayload());
+            return null;
+        };
+    }
+}

+ 17 - 0
edu-travel-common/edu-travel-kafka/src/main/java/edu/travel/kafka/KafkaProducer.java

@@ -0,0 +1,17 @@
+package edu.travel.kafka;
+
+import org.springframework.kafka.core.KafkaTemplate;
+import org.springframework.stereotype.Service;
+
+@Service
+public class KafkaProducer {
+    private final KafkaTemplate<String, String> kafkaTemplate;
+
+    public KafkaProducer(KafkaTemplate<String, String> kafkaTemplate) {
+        this.kafkaTemplate = kafkaTemplate;
+    }
+
+    public void sendMessage(String topic, String message) {
+        kafkaTemplate.send(topic, message);
+    }
+}

+ 26 - 0
edu-travel-common/edu-travel-kafka/src/main/java/edu/travel/kafka/KafkaTopicConfig.java

@@ -0,0 +1,26 @@
+package edu.travel.kafka;
+
+import org.apache.kafka.clients.admin.AdminClientConfig;
+import org.apache.kafka.clients.admin.NewTopic;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.kafka.core.KafkaAdmin;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Configuration
+public class KafkaTopicConfig {
+
+    @Bean
+    public KafkaAdmin kafkaAdmin() {
+        Map<String, Object> configs = new HashMap<>();
+        configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
+        return new KafkaAdmin(configs);
+    }
+
+    @Bean
+    public NewTopic myTopic() {
+        return new NewTopic("my-topic", 1, (short) 1);
+    }
+}

+ 25 - 0
edu-travel-common/edu-travel-kafka/src/main/java/edu/travel/kafka/KafkaTopicService.java

@@ -0,0 +1,25 @@
+package edu.travel.kafka;
+
+import org.apache.kafka.clients.admin.AdminClient;
+import org.apache.kafka.clients.admin.NewTopic;
+import org.springframework.kafka.core.KafkaAdmin;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+
+@Service
+public class KafkaTopicService {
+
+    private final KafkaAdmin kafkaAdmin;
+
+    public KafkaTopicService(KafkaAdmin kafkaAdmin) {
+        this.kafkaAdmin = kafkaAdmin;
+    }
+
+    public void createTopic(String topicName, int partitions, short replicationFactor) {
+        try (AdminClient adminClient = AdminClient.create(kafkaAdmin.getConfigurationProperties())) {
+            NewTopic newTopic = new NewTopic(topicName, partitions, replicationFactor);
+            adminClient.createTopics(Collections.singleton(newTopic));
+        }
+    }
+}

+ 1 - 0
edu-travel-common/pom.xml

@@ -26,6 +26,7 @@
         <module>edu-travel-common-elastic</module>
         <module>edu-travel-common-debezium</module>
         <module>edu-travel-common-adapter</module>
+        <module>edu-travel-kafka</module>
     </modules>
 
     <properties>

+ 5 - 0
edu-travel-remote/edu-travel-remote-commodity/pom.xml

@@ -51,5 +51,10 @@
             <artifactId>edu-travel-common-core</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-extension</artifactId>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 </project>

+ 3 - 4
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/BaseCountryServeController.java

@@ -8,6 +8,7 @@ import edu.travel.commodity.vo.BaseCountryServeVo;
 import edu.travel.interfaces.UpdateGroups;
 import edu.travel.resp.BaseResponse;
 import edu.travel.rpc.RPCBaseResponse;
+import edu.travel.utils.tree.CustomDeepCopy;
 import edu.travel.web.BaseController;
 import org.springframework.beans.BeanUtils;
 import org.springframework.validation.Errors;
@@ -35,9 +36,7 @@ public class BaseCountryServeController  extends BaseController<BaseCountryServe
     @Override
     @GetMapping("/getByControlId")
     public RPCBaseResponse getByControlId(String id) {
-        BaseResponse baseResponse = super.getById(id);
-        RPCBaseResponse<Object> objectRPCBaseResponse = new RPCBaseResponse<>();
-        BeanUtils.copyProperties(baseResponse, objectRPCBaseResponse);
-        return objectRPCBaseResponse;
+        RPCBaseResponse baseResponse = super.getById(id);
+        return baseResponse;
     }
 }

+ 6 - 0
pom.xml

@@ -43,11 +43,17 @@
     <minio.version>7.0.2</minio.version>
     <elasticsearch.version>7.10.0</elasticsearch.version>
     <debezium.version>1.9.4.final</debezium.version>
+    <beanutils.version>1.9.4</beanutils.version>
   </properties>
   <dependencyManagement>
 
     <dependencies>
       <dependency>
+        <groupId>commons-beanutils</groupId>
+        <artifactId>commons-beanutils</artifactId>
+        <version>${beanutils.version}</version>
+      </dependency>
+      <dependency>
         <groupId>io.debezium</groupId>
         <artifactId>debezium-api</artifactId>
         <version>${debezium.version}</version>