From 30560b90cf2aed9b499f14cc00f7f3166e644e5e Mon Sep 17 00:00:00 2001 From: ywt <3471515127@qq.com> Date: Sun, 6 Oct 2024 15:17:28 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E5=88=9B=E5=BB=BA=E5=AE=9E=E5=8A=9B?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E3=80=81=E8=BD=A6=E8=BE=86=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E3=80=81=E8=BF=94=E5=9B=9E=E5=88=9B=E5=BB=BA=E7=A0=81?= =?UTF-8?q?=E3=80=81=E8=BD=A6=E8=BE=86=E9=89=B4=E6=9D=83=E7=9A=84=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E3=80=81=E8=BD=A6=E8=BE=86VIN=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VehicleConnectionController.java | 33 +++++++ .../gateway/aliyun/domain/AliInstance.java | 23 +++++ .../aliyun/domain/AliServerConfig.java | 42 +++++++++ .../gateway/aliyun/domain/ConnectWeight.java | 23 +++++ .../gateway/aliyun/domain/HttpStatus.java | 93 +++++++++++++++++++ .../gateway/aliyun/domain/ServerConfig.java | 51 ++++++++++ .../aliyun/domain/VehicleConnection.java | 30 ++++++ .../vehicle/gateway/aliyun/domain/VinIp.java | 23 +++++ .../domain/req/VehicleConnectionReq.java | 37 ++++++++ .../vehicle/gateway/aliyun/ecs/Sample.java | 3 - 10 files changed, 355 insertions(+), 3 deletions(-) create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/controller/VehicleConnectionController.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliInstance.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliServerConfig.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ConnectWeight.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/HttpStatus.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ServerConfig.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VehicleConnection.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VinIp.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/req/VehicleConnectionReq.java diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/controller/VehicleConnectionController.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/controller/VehicleConnectionController.java new file mode 100644 index 0000000..da4f9e4 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/controller/VehicleConnectionController.java @@ -0,0 +1,33 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.controller; + + +import com.alibaba.nacos.api.model.v2.Result; +import com.muyu.cloud.vehicle.gateway.aliyun.domain.req.VehicleConnectionReq; +import lombok.extern.log4j.Log4j2; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * + * 车辆连接控制器 + */ +@Log4j2 +@RestController +@RequestMapping +public class VehicleConnectionController { + + + /** + * 获取http连接的参数 + * @param vehicleConnectionReq + * @return + */ + @PostMapping("/receiveMsg/connect") + public Result receiveMsg(@RequestBody VehicleConnectionReq vehicleConnectionReq){ + log.info("=======>"+vehicleConnectionReq); + + return Result.success(); + } +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliInstance.java new file mode 100644 index 0000000..10ebe57 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliInstance.java @@ -0,0 +1,23 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AliInstance { + /** + * 实例ID + */ + private String instanceId; + /** + * 实例IP + */ + private String ipAddress; + /** + * 实例状态 + */ + private String status; +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliServerConfig.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliServerConfig.java new file mode 100644 index 0000000..e337c9a --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/AliServerConfig.java @@ -0,0 +1,42 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.domain; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 创建实例的数量 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class AliServerConfig { + + /** + * 主键 + */ + private Long id; + /** + * 地域ID + */ + private String regionId; + /** + * 镜像ID + */ + private String imageId; + /** + * 实例规格 + */ + private String instanceType; + /** + * 安全组ID + */ + private String securityGroupId; + /** + * 虚拟交换机ID + */ + private String vSwitchId; +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ConnectWeight.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ConnectWeight.java new file mode 100644 index 0000000..32710bd --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ConnectWeight.java @@ -0,0 +1,23 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.domain; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆服务器 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ConnectWeight { + /** + * 车辆服务器ID + */ + private String carServerId; + /** + * 权重值 + */ + private Integer weightValue; +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/HttpStatus.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/HttpStatus.java new file mode 100644 index 0000000..748ed18 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/HttpStatus.java @@ -0,0 +1,93 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.domain; + +/** + * 返回状态码 + */ +public class HttpStatus { + /** + * 操作成功 + */ + private static final int SUCCESS = 200; + + /** + * 对象创建成功 + */ + public static final int CREATED = 201; + + /** + * 请求已经被接受 + */ + public static final int ACCEPTED = 202; + + /** + * 操作已经执行成功 + */ + public static final int NO_CONTENT = 204; + + /** + * 资源已被修改 + */ + public static final int MOVED_PERM = 301; + + /** + * 重定向 + */ + public static final int SEE_OTHER = 303; + + /** + * 资源没有被修改 + */ + public static final int NOT_MODIFIED = 304; + + /** + * 参数列表错误(缺少,格式不匹配) + */ + public static final int BAD_REQUEST = 400; + + /** + * 未授权 + */ + public static final int UNAUTHORIZED = 401; + + /** + * 访问受限,授权过期 + */ + public static final int FORBIDDEN = 403; + + /** + * 资源,服务未找到 + */ + public static final int NOT_FOUND = 404; + + /** + * 不允许的http方法 + */ + public static final int BAD_METHOD = 405; + + /** + * 资源冲突,或者资源被锁 + */ + public static final int CONFLICT = 409; + + /** + * 不支持的数据,媒体类型 + */ + public static final int UNSUPPORTED_TYPE = 415; + + /** + * 系统内部错误 + */ + public static final int ERROR = 500; + + /** + * 接口未实现 + */ + public static final int NOT_IMPLEMENTED = 501; + + /** + * 系统警告消息 + */ + public static final int WARN = 601; + + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ServerConfig.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ServerConfig.java new file mode 100644 index 0000000..0235433 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/ServerConfig.java @@ -0,0 +1,51 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@TableName(value = "server_config") +public class ServerConfig { + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 租户id + */ + private String tenantId; + /** + * 主机地址 + */ + private String host; + /** + * 端口 + */ + private String port; + /** + * 负载的地址 + */ + private String url; + /** + * 默认MQTT地址 + */ + private String defaultMqttAddr; + /** + * 默认MQTT主题 + */ + private String defaultMqttTopic; + /** + * 默认MQTT QOS + */ + private Integer defaultMqttQos; +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VehicleConnection.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VehicleConnection.java new file mode 100644 index 0000000..0857767 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VehicleConnection.java @@ -0,0 +1,30 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆鉴权的参数 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VehicleConnection { + /** + * 车辆VIN + */ + private String vehicleVin; + /** + * 时间戳 + */ + private String timestamp; + /** + * 用户名 + */ + private String userName; + /** + * 随机数 + */ + private String nonce; +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VinIp.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VinIp.java new file mode 100644 index 0000000..2960f8e --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/VinIp.java @@ -0,0 +1,23 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.domain; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆VIN + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VinIp { + /** + * 车辆的vin + */ + String vin; + /** + * 车辆的ip + */ + String ip; +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/req/VehicleConnectionReq.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/req/VehicleConnectionReq.java new file mode 100644 index 0000000..e114d79 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/domain/req/VehicleConnectionReq.java @@ -0,0 +1,37 @@ +package com.muyu.cloud.vehicle.gateway.aliyun.domain.req; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆获取链接地址 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class VehicleConnectionReq { + + /** + * 车辆vin + */ + private String vehicleVin; + + /** + * 时间戳 + */ + private String timestamp; + + /** + * 用户名 + */ + private String userName; + + /** + * 随机数 + */ + private String nonce; +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/Sample.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/Sample.java index 750ddbb..cbcf7b0 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/Sample.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/cloud/vehicle/gateway/aliyun/ecs/Sample.java @@ -27,9 +27,6 @@ import java.util.List; @Component public class Sample implements ApplicationRunner { - @Autowired - private StringRedisTemplate redisTemplate; - /**