From f5d6b5c00d700fa569b6350bc396048babd87013 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=86=B7=E8=B0=83?= <3084898776@qq.com>
Date: Sun, 6 Oct 2024 16:26:36 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=97=E5=88=B0vin=20=E7=94=A8?=
=?UTF-8?q?=E6=88=B7=E5=90=8D=20=E6=97=B6=E9=97=B4=E6=88=B3=20=E9=9A=8F?=
=?UTF-8?q?=E6=9C=BA=E6=95=B0=20=E6=8B=BC=E6=8E=A5=E5=AD=98=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
cloud-auth/src/main/resources/bootstrap.yml | 2 +-
.../src/main/resources/bootstrap.yml | 2 +-
.../src/main/resources/bootstrap.yml | 2 +-
.../cloud-modules-car-gateway/pom.xml | 32 ++---
.../cargatewaytest/DeleteSample.java | 89 ------------
.../cargateway/config/RabbitmqConfig.java | 101 +++++++++++++
.../muyu/cargateway/config/RedisConfig.java | 33 +++++
.../cargateway/config/RestTemplateConfig.java | 48 +++++++
.../CarOneClickOperationController.java | 20 ++-
.../cargateway/controller/TestController.java | 64 ---------
.../{Instance.java => AliInstance.java} | 11 +-
.../muyu/cargateway/domain/ConnectWeight.java | 27 ++++
.../muyu/cargateway/domain/HttpStatus.java | 93 ++++++++++++
.../cargateway/domain/VehicleConnection.java | 35 +++++
.../com/muyu/cargateway/domain/VinIp.java | 27 ++++
.../domain/model/MqttServerModel.java | 29 ++++
.../domain/req/VehicleConnectionReq.java | 38 +++++
.../com/muyu/cargateway/instance/Sample.java | 82 +++++------
.../mapper/CarOneClickOperationMapper.java | 2 +
.../service/CarOneClickOperationService.java | 9 +-
.../Impl/CarOneClickOperationServiceImpl.java | 29 ++++
.../com/muyu/cargateway/utils/ECSTool.java | 135 ++++++++++++++++++
.../src/main/resources/bootstrap.yml | 4 +-
.../mapper/CarOneClickOperationMapper.xml | 14 ++
.../src/main/resources/bootstrap.yml | 2 +-
.../src/main/resources/bootstrap.yml | 2 +-
.../src/main/resources/bootstrap.yml | 2 +-
27 files changed, 703 insertions(+), 231 deletions(-)
delete mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/DeleteSample.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RedisConfig.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RestTemplateConfig.java
delete mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/controller/TestController.java
rename cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/{Instance.java => AliInstance.java} (75%)
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/ConnectWeight.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/HttpStatus.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VehicleConnection.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/VinIp.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/model/MqttServerModel.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/domain/req/VehicleConnectionReq.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/utils/ECSTool.java
create mode 100644 cloud-modules/cloud-modules-car-gateway/src/main/resources/mapper/CarOneClickOperationMapper.xml
diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml
index 910ec21..930ce5a 100644
--- a/cloud-auth/src/main/resources/bootstrap.yml
+++ b/cloud-auth/src/main/resources/bootstrap.yml
@@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
- addr: 106.54.193.225:8848
+ addr: 47.116.173.119:8848
user-name: nacos
password: nacos
namespace: one-saas
diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml
index cb4e64c..3782dab 100644
--- a/cloud-gateway/src/main/resources/bootstrap.yml
+++ b/cloud-gateway/src/main/resources/bootstrap.yml
@@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
- addr: 106.54.193.225:8848
+ addr: 47.116.173.119:8848
user-name: nacos
password: nacos
namespace: one-saas
diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml
index d466843..cc68191 100644
--- a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml
+++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml
@@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
- addr: 106.54.193.225:8848
+ addr: 47.116.173.119:8848
user-name: nacos
password: nacos
namespace: one
diff --git a/cloud-modules/cloud-modules-car-gateway/pom.xml b/cloud-modules/cloud-modules-car-gateway/pom.xml
index 2445efc..74ddfa6 100644
--- a/cloud-modules/cloud-modules-car-gateway/pom.xml
+++ b/cloud-modules/cloud-modules-car-gateway/pom.xml
@@ -67,28 +67,28 @@
cloud-common-datascope
-
-
-
-
-
-
com.muyu
cloud-common-api-doc
-
-
-
-
-
-
-
-
-
-
+
+
+ org.apache.httpcomponents
+ httpcore
+ 4.4.12
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.13
+
+
+
+ org.springframework.boot
+ spring-boot-starter-amqp
+
com.aliyun
ecs20140526
diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/DeleteSample.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/DeleteSample.java
deleted file mode 100644
index 545d937..0000000
--- a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/cargatewaytest/DeleteSample.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.muyu.cargateway.cargatewaytest;
-
-import com.aliyun.ecs20140526.Client;
-import com.aliyun.ecs20140526.models.*;
-import com.aliyun.tea.TeaException;
-import com.aliyun.teaopenapi.models.Config;
-import com.aliyun.teautil.models.RuntimeOptions;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.beans.factory.DisposableBean;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-
-/**
- * @ Tool:IntelliJ IDEA
- * @ Author:CHX
- * @ Date:2024-09-28-21:20
- * @ Version:1.0
- * @ Description:删除实例
- * @author Lenovo
- */
-@Log4j2
-@Component
-public class DeleteSample implements DisposableBean {
-
- public static Client createClient() throws Exception {
- // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
- Config config = new Config()
- // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
- .setAccessKeyId("LTAI5tDH3FyRx4PRr6anx2TL")
- // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
- .setAccessKeySecret("xdQnX2tDattY50raNkUWmHzE2tondP");
- // Endpoint 请参考 https://api.aliyun.com/product/Ecs
- config.endpoint = "ecs-cn-hangzhou.aliyuncs.com";
- return new Client(config);
- }
- public static void deleteSample() throws Exception {
- Client client = DeleteSample.createClient();
- DescribeInstancesRequest attributeRequest = new DescribeInstancesRequest();
- attributeRequest.setRegionId("cn-shanghai");
-
- RuntimeOptions runtimeOptions = new RuntimeOptions();
-
- DescribeInstancesResponse instancesWithOptions = client.describeInstancesWithOptions(attributeRequest, runtimeOptions);
- ArrayList list = new ArrayList<>();
- DescribeInstancesResponseBody body = instancesWithOptions.getBody();
- for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance instance : body.instances.instance) {
- list.add(instance.getInstanceId());
- }
- log.info("list:"+list);
- DeleteInstancesRequest deleteInstancesRequest = new DeleteInstancesRequest();
- deleteInstancesRequest.setRegionId("cn-shanghai")
- .setDryRun(false)
- .setForce(true)
- .setTerminateSubscription(true)
- .setInstanceId(list);
-
- RuntimeOptions runtime = new RuntimeOptions();
- try{
- client.deleteInstancesWithOptions(deleteInstancesRequest, runtime);
- }catch (TeaException error) {
- // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
- // 错误 message
- System.out.println(error.getMessage());
- // 诊断地址
- System.out.println(error.getData().get("Recommend"));
- com.aliyun.teautil.Common.assertAsString(error.message);
- } catch (Exception _error) {
- TeaException error = new TeaException(_error.getMessage(), _error);
- // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
- // 错误 message
- System.out.println(error.getMessage());
- // 诊断地址
- System.out.println(error.getData().get("Recommend"));
- com.aliyun.teautil.Common.assertAsString(error.message);
- }
- }
- @Override
- public void destroy(){
- try {
- log.info("删除实例方法");
- deleteSample();
- } catch (Exception e) {
- log.info("删除实例失败");
- throw new RuntimeException(e);
- }
- log.info("删除实例成功");
- }
-}
diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java
new file mode 100644
index 0000000..d215a28
--- /dev/null
+++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RabbitmqConfig.java
@@ -0,0 +1,101 @@
+package com.muyu.cargateway.config;
+
+import org.springframework.amqp.core.Binding;
+import org.springframework.amqp.core.BindingBuilder;
+import org.springframework.amqp.core.Exchange;
+import org.springframework.amqp.core.ExchangeBuilder;
+import org.springframework.amqp.core.Queue;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @ Tool:IntelliJ IDEA
+ * @ Author:CHX
+ * @ Date:2024-10-04-15:13
+ * @ Version:1.0
+ * @ Description:rabbitmq配置类
+ * @author Lenovo
+ */
+@Configuration
+public class RabbitmqConfig {
+ // 日志
+ private static final Logger logger = LoggerFactory.getLogger(RabbitmqConfig.class);
+
+ /**
+ * 队列
+ */
+ public static final String QUEUE_INFORM_EMAIL = "queue_inform_email";
+ /**
+ * 队列
+ */
+ public static final String QUEUE_INFORM_SMS = "queue_inform_sms";
+ /**
+ * 交换机
+ */
+ public static final String EXCHANGE_TOPICS_INFORM = "exchange_topics_inform";
+ /**
+ * 路由key
+ */
+ public static final String ROUTINGKEY_EMAIL = "inform.#.email.#";
+ /**
+ * 路由key
+ */
+ public static final String ROUTINGKEY_SMS = "inform.#.sms.#";
+
+ /**
+ * 声明交换机,做持久化
+ */
+ @Bean(EXCHANGE_TOPICS_INFORM)
+ public Exchange exchangeTopicsInform() {
+ try {
+ Exchange exchange = ExchangeBuilder.topicExchange(EXCHANGE_TOPICS_INFORM).durable(true).build();
+ logger.info("创建的交换机为: {}", EXCHANGE_TOPICS_INFORM);
+ return exchange;
+ } catch (Exception e) {
+ logger.error("创建该: {} 交换机失败", EXCHANGE_TOPICS_INFORM, e);
+ throw e;
+ }
+ }
+
+ // 声明QUEUE_INFORM_EMAIL队列
+ @Bean(QUEUE_INFORM_EMAIL)
+ public Queue queueInformEmail() {
+ try {
+ Queue queue = new Queue(QUEUE_INFORM_EMAIL);
+ logger.info("创建的对列为: {}", QUEUE_INFORM_EMAIL);
+ return queue;
+ } catch (Exception e) {
+ logger.error("创建该: {} 队列失败", QUEUE_INFORM_EMAIL, e);
+ throw e;
+ }
+ }
+
+ // 声明QUEUE_INFORM_SMS队列
+ @Bean(QUEUE_INFORM_SMS)
+ public Queue queueInformSms() {
+ try {
+ Queue queue = new Queue(QUEUE_INFORM_SMS);
+ logger.info("创建的对列为: {}", QUEUE_INFORM_SMS);
+ return queue;
+ } catch (Exception e) {
+ logger.error("创建该: {} 队列失败", QUEUE_INFORM_SMS, e);
+ throw e;
+ }
+ }
+
+ //ROUTINGKEY_EMAIL队列绑定交换机,指定routingKey
+ @Bean
+ public Binding bindingQueueInformEmail(@Qualifier(QUEUE_INFORM_EMAIL) Queue queue,
+ @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange){
+ return BindingBuilder.bind(queue).to(exchange).with(ROUTINGKEY_EMAIL).noargs();
+ }
+ //ROUTINGKEY_SMS队列绑定交换机,指定routingKey
+ @Bean
+ public Binding bindingRoutingKeySms(@Qualifier(QUEUE_INFORM_SMS) Queue queue,
+ @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange){
+ return BindingBuilder.bind(queue).to(exchange).with(ROUTINGKEY_SMS).noargs();
+ }
+}
diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RedisConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RedisConfig.java
new file mode 100644
index 0000000..8687020
--- /dev/null
+++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cargateway/config/RedisConfig.java
@@ -0,0 +1,33 @@
+package com.muyu.cargateway.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+/**
+ * @ Tool:IntelliJ IDEA
+ * @ Author:CHX
+ * @ Date:2024-10-04-15:12
+ * @ Version:1.0
+ * @ Description:Redis配置类
+ * @author Lenovo
+ */
+@Configuration
+public class RedisConfig {
+ @Bean
+ public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
+ RedisTemplate redisTemplate = new RedisTemplate<>();
+ redisTemplate.setConnectionFactory(redisConnectionFactory);
+
+ redisTemplate.setKeySerializer(new StringRedisSerializer());
+ redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer