diff --git a/cloud-gateway/src/main/java/com/muyu/gateway/demo/Student.java b/cloud-gateway/src/main/java/com/muyu/gateway/demo/Student.java new file mode 100644 index 0000000..8c21a76 --- /dev/null +++ b/cloud-gateway/src/main/java/com/muyu/gateway/demo/Student.java @@ -0,0 +1,58 @@ +package com.muyu.gateway.demo; + +/** + * @ClassName Student + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/25 22:08 + */ +public class Student { + private Integer id; + + private String studentName; + + private String studentSex; + + public Integer getId(){ + return id; + } + + public void setId(Integer id){ + this.id = id; + } + + public String getStudentName(){ + return studentName; + } + + public void setStudentName(String studentName){ + this.studentName= studentName; + } + + public String getStudentSex(){ + return studentSex; + } + + public void setStudentSex(String studentSex){ + this.studentSex = studentSex; + } + + public Student() { + } + + public Student(Integer id, String studentName, String studentSex) { + this.id = id; + this.studentName = studentName; + this.studentSex = studentSex; + } + + @Override + public String toString() { + return "Student{" + + "id=" + id + + ", studentName='" + studentName + '\'' + + ", studentSex='" + studentSex + '\'' + + '}'; + } +} + diff --git a/cloud-gateway/src/main/java/com/muyu/gateway/demo/Text.java b/cloud-gateway/src/main/java/com/muyu/gateway/demo/Text.java new file mode 100644 index 0000000..fa07045 --- /dev/null +++ b/cloud-gateway/src/main/java/com/muyu/gateway/demo/Text.java @@ -0,0 +1,61 @@ +package com.muyu.gateway.demo; + +import java.util.*; + +/** + * @ClassName Text + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/25 22:17 + */ +public class Text { + + public static void main(String[] args) { + + Student student = new Student(1,"小红","男"); + Student student1 = new Student(2,"小绿","女"); + Student student2 = new Student(3,"小蓝","男"); + Student student3 = new Student(4, "小黄", "女"); + Student student4 = new Student(5,"小紫","男"); + Student student5 = new Student(6, "小黑", "男"); + + List studentList = new ArrayList<>(); + Map map = new HashMap<>(); + LinkedList students = new LinkedList<>(); + students.add(student); + students.add(student1); + students.add(student2); + students.add(student3); + students.add(student4); + students.add(student5); + System.out.println("linkedList:"+students); + + studentList.add(student); + studentList.add(student1); + studentList.add(student2); + studentList.add(student3); + studentList.add(student4); + studentList.add(student5); + map.put("嘻嘻",student); + map.put("哈哈",student1); + map.put("不嘻嘻",student2); + map.put("不哈哈",student3); + map.put("拉拉",student4); + map.put("月亮",student5); + map.put("不拉拉",studentList); + + System.out.println(map); + + System.out.println(student); + System.out.println(student1); + System.out.println(student2); + System.out.println(student3); + System.out.println(student4); + System.out.println(student5); + + System.out.println(studentList); + + + } + +} diff --git a/cloud-modules/cloud-modules-car-gateway/pom.xml b/cloud-modules/cloud-modules-car-gateway/pom.xml new file mode 100644 index 0000000..c88a7a7 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/pom.xml @@ -0,0 +1,131 @@ + + + 4.0.0 + + com.muyu + cloud-server + 3.6.3 + ../../pom.xml + + + cloud-modules-car-gateway + + + 17 + 17 + UTF-8 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + + com.muyu + cloud-common-log + + + + + com.muyu + cloud-common-api-doc + + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.5 + + + com.aliyun + ecs20140526 + 5.1.8 + + + com.aliyun + tea-openapi + 0.3.2 + + + com.aliyun + tea-console + 0.0.1 + + + com.aliyun + tea-util + 0.2.21 + + + + + org.eclipse.paho + org.eclipse.paho.client.mqttv3 + 1.2.5 + + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/SpringBoot.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/SpringBoot.java new file mode 100644 index 0000000..8696b16 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/SpringBoot.java @@ -0,0 +1,14 @@ +package com.muyu; + + +/** + * @ClassName SpringBoot + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 19:57 + */ +public class SpringBoot { + public static void main(String[] args) { + + } +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cache/ExpiryTime.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cache/ExpiryTime.java new file mode 100644 index 0000000..c5bf2bf --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/cache/ExpiryTime.java @@ -0,0 +1,33 @@ +package com.muyu.cache; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ClassName ExpiryTime + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 23:47 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class ExpiryTime { + + /** + * 过期时间单位(秒) 默认30分钟 + */ + @Builder.Default + private long expiryTime = 30*60; + + /** + * 刷新时间单位(秒) 默认15分钟 + */ + @Builder.Default + private long refreshTime = 15*60; + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/handle/SystemHandler.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/handle/SystemHandler.java new file mode 100644 index 0000000..f710dc8 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/handle/SystemHandler.java @@ -0,0 +1,71 @@ +package com.muyu.handle; + +import com.muyu.properties.ServerConfigProperties; +import com.muyu.system.context.SystemUserContext; +import com.muyu.system.domain.LoginUserInfo; + +/** + * @ClassName SystemHandler + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 23:44 + */ +public class SystemHandler { + + /** + *获取登录用户信息 + * @return + */ + public static LoginUserInfo getUserInfo(){ + return SystemUserContext.get(); + } + + /** + *获取用户key + */ + private static String getUserKey(){ + return getUserInfo().getUserKey(); + } + + /** + * 登陆用户ID + * @return 登录用户ID + */ + public static Long getUserId(){ + return getUserInfo().getId(); + } + + /** + * 获取服务器配置 + * @return 当前用户服务器配置 + */ + public static ServerConfigProperties getServerConfig(){ + return SystemUserContext.get().getServerConfig(); + } + + + /** + * 存储当前服务器配置 + */ + public static void setServerConfig(ServerConfigProperties serverConfig){ + SystemUserContext.get().setServerConfig(serverConfig); + } + + /** + * 获取负载地址 + * @return 负载地址 + */ + public static String getLoadReqUrl(){ + return getServerConfig().getLoadReqUrl(); + } + + /** + * 获取租户ID + * @return 租户ID + */ + public static String getTenantId () { + return getUserInfo().getTenantId(); + } + + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/properties/ServerConfigProperties.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/properties/ServerConfigProperties.java new file mode 100644 index 0000000..ac52901 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/properties/ServerConfigProperties.java @@ -0,0 +1,100 @@ +package com.muyu.properties; + +import com.muyu.web.domain.ServerConfig; +import com.muyu.web.domain.model.ServerConfigModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName ServerConfigProperties + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 23:51 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ServerConfigProperties { + /** + * 主机地址 + */ + private String host; + /** + * 端口号 + */ + private String port; + /** + * 负载地址 + */ + private String uri; + /** + * 负载请求格式化地址 + */ + private String loadReqUrl; + /** + * 默认MQTT地址 + */ + private String mqttAddr; + + /** + * 默认MQTT主题 + */ + private String mqttTopic; + + /** + * 默认MQTT交付级别 + */ + private Integer mqttQos; + + /** + * 模型构建配置 + * @param serverConfigModel 配置模型对象 + * @return 配置对象 + */ + public static ServerConfigProperties modelToProperties(ServerConfigModel serverConfigModel){ + return ServerConfigProperties.builder() + .host(serverConfigModel.getHost()) + .port(serverConfigModel.getPort()) + .uri(serverConfigModel.getUri()) + .mqttAddr(serverConfigModel.getDefaultMattAddr()) + .mqttTopic(serverConfigModel.getDefaultMqttTopic()) + .mqttQos(serverConfigModel.getDefaultMqttQos()) + .loadReqUrl( + String.format( + "http://%s:%s%s", + serverConfigModel.getHost(), + serverConfigModel.getPort(), + serverConfigModel.getUri().startsWith("/") ? serverConfigModel.getUri() : "/" + serverConfigModel.getUri() + ) + ) + .build(); + } + /** + * 模型构建配置 + * @param serverConfig 配置对象 + * @return 配置对象 + */ + public static ServerConfigProperties configToProperties(ServerConfig serverConfig ) { + + return ServerConfigProperties.builder() + .host(serverConfig.getHost()) + .port(serverConfig.getPort()) + .uri(serverConfig.getUri()) + .mqttAddr(serverConfig.getDefaultMqttAddr()) + .mqttTopic(serverConfig.getDefaultMaTopic()) + .mqttQos(serverConfig.getDefaultMqttQos()) + .loadReqUrl( + String.format( + "http://%s:%s%s", + serverConfig.getHost(), + serverConfig.getPort(), + serverConfig.getUri().startsWith("/") ? serverConfig.getUri() : "/" + serverConfig.getUri() + ) + ) + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/system/context/SystemUserContext.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/system/context/SystemUserContext.java new file mode 100644 index 0000000..24c2b96 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/system/context/SystemUserContext.java @@ -0,0 +1,26 @@ +package com.muyu.system.context; + +import com.muyu.system.domain.LoginUserInfo; + +/** + * @ClassName SystemUserContext + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 23:59 + */ +public class SystemUserContext { + + private static final ThreadLocal basicContextLocal = new ThreadLocal<>(); + + public static LoginUserInfo get(){ + return basicContextLocal.get(); + } + + public static void set(LoginUserInfo loginUserInfo){ + basicContextLocal.set(loginUserInfo); + } + public static void remove(){ + basicContextLocal.remove(); + } + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/system/domain/LoginUserInfo.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/system/domain/LoginUserInfo.java new file mode 100644 index 0000000..8e0ff98 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/system/domain/LoginUserInfo.java @@ -0,0 +1,45 @@ +package com.muyu.system.domain; + +import com.muyu.cache.ExpiryTime; +import com.muyu.properties.ServerConfigProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName LoginUserInfo + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 23:46 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class LoginUserInfo extends ExpiryTime { + /** + * 用户ID + */ + private Long id; + + /** + * 用户token + */ + private String userKey; + + /** + * 用户名称 + */ + private String userName; + + /** + * 租户ID + */ + private String tenantId; + /** + * 服务配置 + */ + private ServerConfigProperties serverConfig; + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/utils/IdUtils.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/utils/IdUtils.java new file mode 100644 index 0000000..f90fa6d --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/utils/IdUtils.java @@ -0,0 +1,47 @@ +package com.muyu.utils; + +import com.muyu.common.core.utils.uuid.UUID; + +/** + * @ClassName IdUtils + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 20:23 + */ +public class IdUtils { + + /** + * 获取随机UUID + * @return + */ + private static String randomUUID(){ + return UUID.randomUUID().toString(); + } + + /** + * 简化的UUID,去掉了横线 + * @return + */ + private static String simpleUUID(){ + return UUID.randomUUID().toString(true); + } + + + /** + * 获取随机UUID,使用性能更好的ThreadLocalRandom生成UUID + * @return + */ + private static String fastUUID(){ + return UUID.fastUUID().toString(); + } + + /** + * 简化的UUID,去掉了横线,使用性能更好的ThreadLocalRandom生成UUID + * @return + */ + public static String fastSimpleUUID(){ + return UUID.fastUUID().toString(true); + } + + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/vehicle/api/ClientAdmin.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/vehicle/api/ClientAdmin.java new file mode 100644 index 0000000..4e2a06d --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/vehicle/api/ClientAdmin.java @@ -0,0 +1,13 @@ +package com.muyu.vehicle.api; + +/** + * @ClassName ClientAdmin + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 22:08 + */ + +public interface ClientAdmin { + + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/vehicle/api/SimpleInterceptor.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/vehicle/api/SimpleInterceptor.java new file mode 100644 index 0000000..04880a7 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/vehicle/api/SimpleInterceptor.java @@ -0,0 +1,29 @@ +package com.muyu.vehicle.api; + +import jakarta.servlet.http.HttpServletRequest; +import lombok.extern.log4j.Log4j2; +import okhttp3.Interceptor; +import okhttp3.Response; +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +/** + * @ClassName SimpleInterceptor + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 22:11 +// */ +//@Log4j2 +//@Component +//public class SimpleInterceptor implements Interceptor { +// +// @Autowired +// private HttpServletRequest request; +// +// @Override +// public boolean beforeExecute( r) +// +//} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/vehicle/api/req/VehicleConnectionReq.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/vehicle/api/req/VehicleConnectionReq.java new file mode 100644 index 0000000..94dbc70 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/vehicle/api/req/VehicleConnectionReq.java @@ -0,0 +1,44 @@ +package com.muyu.vehicle.api.req; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName VehicleConnectionReq + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 20:34 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VehicleConnectionReq { + + /** + * vin + */ + @JSONField(name = "vehicleVin") + private String vin; + + + /** + * 时间戳 + */ + private String timestamp; + + /** + * 用户名 + */ + @JSONField(name = "userName") + private String userName; + + /** + * 随机字符串 + */ + private String code; + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/controller/ServerConfigController.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/controller/ServerConfigController.java new file mode 100644 index 0000000..a8cc7cc --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/controller/ServerConfigController.java @@ -0,0 +1,35 @@ +package com.muyu.web.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.web.domain.model.ServerConfigModel; +import com.muyu.web.domain.resp.ServerConfigResp; +import com.muyu.web.service.ServerConfigService; +import lombok.extern.java.Log; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ClassName ServerConfigController + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 22:24 + */ +@RestController +@RequestMapping("/vehicle/server/config") +@Log4j2 +public class ServerConfigController { + + @Autowired + private ServerConfigService serverConfigService; + + @GetMapping + public Result get(){ + ServerConfigModel serverConfigModel = serverConfigService.get(); + return Result.success(ServerConfigResp.modelBuild(serverConfigModel)); + } + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/ServerConfig.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/ServerConfig.java new file mode 100644 index 0000000..55c7802 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/ServerConfig.java @@ -0,0 +1,68 @@ +package com.muyu.web.domain; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName ServcerConfig + * @Description 服务器配置 + * @Author YiBo.Liu + * @Date 2024/9/26 20:11 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ServerConfig { + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + + /** + * 租户ID + */ + @TableField(value = "tenant_id",fill = FieldFill.INSERT) + private String tenantId; + + /** + * 主机地址 + */ + private String host; + + /** + * 端口号 + */ + private String port; + + /** + * 负载地址 + */ + private String uri; + + /** + * 默认MQTT地址 + */ + private String defaultMqttAddr; + + /** + * 默认MQTT主题 + */ + private String defaultMqTopic; + + /** + * 默认MQTT交付级别 + */ + private Integer defaultMqttQos; + + + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/model/ServerConfigModel.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/model/ServerConfigModel.java new file mode 100644 index 0000000..4c26e1f --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/model/ServerConfigModel.java @@ -0,0 +1,86 @@ +package com.muyu.web.domain.model; + +import com.muyu.properties.ServerConfigProperties; +import com.muyu.web.domain.ServerConfig; +import com.muyu.web.domain.req.ServerConfigEditReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName ServerConfigModel + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 22:35 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ServerConfigModel { + + /** + * 主机地址 + */ + private String host; + + /** + * 端口号 + */ + private String port; + + /** + * 负载地址 + */ + private String uri; + + /** + * 默认MQTT地址 + */ + private String defaultMqttAddr; + + /** + * 默认MQTT主题 + */ + private String defaultMqttTopic; + + /** + * 默认MQTT交付级别 + */ + private Integer defaultMqttQos; + + public static ServerConfigModel serverConfigBuild (ServerConfig serverConfig) { + return builder() + .host(serverConfig.getHost().trim()) + .port(serverConfig.getPort()) + .uri(serverConfig.getUri().trim()) + .defaultMqttAddr(serverConfig.getDefaultMqttAddr().trim()) + .defaultMqttTopic(serverConfig.getDefaultMqTopic().trim()) + .defaultMqttQos(serverConfig.getDefaultMqttQos()) + .build(); + } + + public static ServerConfigModel editReqBuild (ServerConfigEditReq serverConfigReq) { + return builder() + .host(serverConfigReq.getHost().trim()) + .port(serverConfigReq.getPort()) + .uri(serverConfigReq.getUri().trim()) + .defaultMqttAddr(serverConfigReq.getDefaultMqttAddr().trim()) + .defaultMqttTopic(serverConfigReq.getDefaultMqttTopic().trim()) + .defaultMqttQos(serverConfigReq.getDefaultMqttQos()) + .build(); + } + + public static ServerConfigModel serverConfigPropertiesBuild (ServerConfigProperties serverConfigProperties) { + return builder() + .host(serverConfigProperties.getHost().trim()) + .port(serverConfigProperties.getPort()) + .uri(serverConfigProperties.getUri().trim()) + .defaultMqttAddr(serverConfigProperties.getMqttAddr().trim()) + .defaultMqttTopic(serverConfigProperties.getMqttTopic().trim()) + .defaultMqttQos(serverConfigProperties.getMqttQos()) + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/req/ServerConfigEditReq.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/req/ServerConfigEditReq.java new file mode 100644 index 0000000..89406db --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/req/ServerConfigEditReq.java @@ -0,0 +1,43 @@ +package com.muyu.web.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName ServerConfigEditReq + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/27 0:07 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ServerConfigEditReq { + /** + * 主机地址 + */ + private String host; + /** + * 端口号 + */ + private String port; + /** + * 负载地址 + */ + private String uri; + /** + * 默认MQTT地址 + */ + private String defaultMqttAddr; + /** + * 默认MQTT主题 + */ + private String defaultMqttTopic; + /** + * 默认MQTT交付级别 + */ + private Integer defaultMqttQos; +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/resp/ServerConfigResp.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/resp/ServerConfigResp.java new file mode 100644 index 0000000..ec027c4 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/domain/resp/ServerConfigResp.java @@ -0,0 +1,62 @@ +package com.muyu.web.domain.resp; + +import com.muyu.web.domain.model.ServerConfigModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName ServerConfigResp + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 22:45 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ServerConfigResp { + + /** + * 主机地址 + */ + private String host; + + /** + * 端口号 + */ + private String port; + + /** + * 负载地址 + */ + private String uri; + + /** + * 默认MQTT地址 + */ + private String defaultMqttAddr; + + /** + * 默认MQTT主题 + */ + private String defaultMqttTopic; + + /** + * 默认MQTT交付级别 + */ + private Integer defaultMqttQos; + + + public static ServerConfigResp modelBuild(ServerConfigModel serverConfigModel) { + return builder() + .host(serverConfigModel.getHost()) + .port(serverConfigModel.getPort()) + .uri(serverConfigModel.getUri()) + .defaultMqttAddr(serverConfigModel.getDefaultMqttTopic()) + .defaultMqttTopic(serverConfigModel.getDefaultMqttTopic()) + .defaultMqttQos(serverConfigModel.getDefaultMqttQos()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/mapper/ServerConfigMapper.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/mapper/ServerConfigMapper.java new file mode 100644 index 0000000..373d251 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/mapper/ServerConfigMapper.java @@ -0,0 +1,9 @@ +package com.muyu.web.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.web.domain.ServerConfig; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ServerConfigMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/service/ServerConfigService.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/service/ServerConfigService.java new file mode 100644 index 0000000..9a7b7d9 --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/service/ServerConfigService.java @@ -0,0 +1,10 @@ +package com.muyu.web.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.web.domain.ServerConfig; +import com.muyu.web.domain.model.ServerConfigModel; + +public interface ServerConfigService extends IService { + ServerConfigModel get(); + +} diff --git a/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/service/impl/ServerConfigServiceImpl.java b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/service/impl/ServerConfigServiceImpl.java new file mode 100644 index 0000000..061757c --- /dev/null +++ b/cloud-modules/cloud-modules-car-gateway/src/main/java/com/muyu/web/service/impl/ServerConfigServiceImpl.java @@ -0,0 +1,34 @@ +package com.muyu.web.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.handle.SystemHandler; +import com.muyu.web.domain.ServerConfig; +import com.muyu.web.domain.model.ServerConfigModel; +import com.muyu.web.mapper.ServerConfigMapper; +import com.muyu.web.service.ServerConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @ClassName ServerConfigServiceImpl + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/9/26 22:27 + */ +@Service +public class ServerConfigServiceImpl + extends ServiceImpl + implements ServerConfigService { + + @Autowired + private ServerConfigMapper serverConfigMapper; + + /** + * 获取配置模型 + * @return + */ + @Override + public ServerConfigModel get() { + return ServerConfigModel.serverConfigPropertiesBuild(SystemHandler.getServerConfig()); + } +} diff --git a/cloud-warn/pom.xml b/cloud-warn/pom.xml index 1a0197c..4b6edda 100644 --- a/cloud-warn/pom.xml +++ b/cloud-warn/pom.xml @@ -73,12 +73,6 @@ cloud-common-api-doc - - org.springframework.boot - spring-boot-starter-web - 3.3.2 - - diff --git a/cloud-warn/src/main/java/com/muyu/warn/controller/CarController.java b/cloud-warn/src/main/java/com/muyu/warn/controller/CarController.java index 38ccfec..d8b1ed0 100644 --- a/cloud-warn/src/main/java/com/muyu/warn/controller/CarController.java +++ b/cloud-warn/src/main/java/com/muyu/warn/controller/CarController.java @@ -4,10 +4,9 @@ import com.muyu.common.core.domain.Result; import com.muyu.warn.domain.Car; import com.muyu.warn.service.CarService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * @ClassName CarController @@ -34,5 +33,11 @@ public class CarController { } + @PostMapping("/selectCar") + private Result> selectCar(@RequestBody Car car) { + List cars = carService.selectCar(car); + return Result.success(cars); + } + } diff --git a/cloud-warn/src/main/java/com/muyu/warn/controller/WarnStrategyController.java b/cloud-warn/src/main/java/com/muyu/warn/controller/WarnStrategyController.java index 5bdfe27..ff6ccfd 100644 --- a/cloud-warn/src/main/java/com/muyu/warn/controller/WarnStrategyController.java +++ b/cloud-warn/src/main/java/com/muyu/warn/controller/WarnStrategyController.java @@ -7,14 +7,8 @@ import com.muyu.warn.domain.Resp.StrategyRespList; import com.muyu.warn.domain.Resp.WarnStrategyList; import jakarta.servlet.http.HttpServletResponse; import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; + +import org.springframework.web.bind.annotation.*; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.warn.domain.WarnStrategy; import com.muyu.warn.service.IWarnStrategyService; @@ -132,4 +126,20 @@ public class WarnStrategyController extends BaseController List list = warnStrategyService.strategyRespList(warnStrategy); return Result.success(list); } + + + /** + * 通过报文id查询策略 + * @param templateId + * @return + */ + @GetMapping("/byTemplateId") + public Result> byTemplateId(@RequestParam("templateId") Long templateId){ + return Result.success(warnStrategyService.byTemplateId(templateId)); + } + + @GetMapping("/findbyId") + public Result findById(@RequestParam("id") Long id){ + return Result.success(warnStrategyService.findById(id)); + } } diff --git a/cloud-warn/src/main/java/com/muyu/warn/mapper/CarMapper.java b/cloud-warn/src/main/java/com/muyu/warn/mapper/CarMapper.java index f523483..b31ed84 100644 --- a/cloud-warn/src/main/java/com/muyu/warn/mapper/CarMapper.java +++ b/cloud-warn/src/main/java/com/muyu/warn/mapper/CarMapper.java @@ -5,7 +5,12 @@ import com.muyu.warn.domain.Car; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + @Mapper public interface CarMapper extends BaseMapper { Car findByVin(@Param("vin") String vin); + + List selectCar(Car car); + } diff --git a/cloud-warn/src/main/java/com/muyu/warn/mapper/WarnStrategyMapper.java b/cloud-warn/src/main/java/com/muyu/warn/mapper/WarnStrategyMapper.java index 677c017..14acb9d 100644 --- a/cloud-warn/src/main/java/com/muyu/warn/mapper/WarnStrategyMapper.java +++ b/cloud-warn/src/main/java/com/muyu/warn/mapper/WarnStrategyMapper.java @@ -5,6 +5,7 @@ import com.muyu.warn.domain.Resp.WarnStrategyList; import com.muyu.warn.domain.WarnStrategy; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -20,4 +21,8 @@ public interface WarnStrategyMapper extends BaseMapper{ List strategyList(WarnStrategy warnStrategy); List strategyRespList(WarnStrategy warnStrategy); + + List byTemplateId(@Param("templateId") Long templateId); + + WarnStrategy findById(@Param("id") Long id); } diff --git a/cloud-warn/src/main/java/com/muyu/warn/service/CarService.java b/cloud-warn/src/main/java/com/muyu/warn/service/CarService.java index 916767e..f9fc5a2 100644 --- a/cloud-warn/src/main/java/com/muyu/warn/service/CarService.java +++ b/cloud-warn/src/main/java/com/muyu/warn/service/CarService.java @@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.warn.domain.Car; import org.springframework.stereotype.Service; +import java.util.List; + @Service public interface CarService extends IService { Car findByVin(String vin); + List selectCar(Car car); } diff --git a/cloud-warn/src/main/java/com/muyu/warn/service/IWarnStrategyService.java b/cloud-warn/src/main/java/com/muyu/warn/service/IWarnStrategyService.java index ecd2659..e3c01cd 100644 --- a/cloud-warn/src/main/java/com/muyu/warn/service/IWarnStrategyService.java +++ b/cloud-warn/src/main/java/com/muyu/warn/service/IWarnStrategyService.java @@ -51,4 +51,15 @@ public interface IWarnStrategyService extends IService { * @return */ List strategyRespList(WarnStrategy warnStrategy); + + /** + * 根据报文id查询列表 + * @param templateId + * @return + */ + List byTemplateId(Long templateId); + + WarnStrategy findById(Long id); + + } diff --git a/cloud-warn/src/main/java/com/muyu/warn/service/impl/CarServiceImpl.java b/cloud-warn/src/main/java/com/muyu/warn/service/impl/CarServiceImpl.java index 47e3e2f..f64f5f7 100644 --- a/cloud-warn/src/main/java/com/muyu/warn/service/impl/CarServiceImpl.java +++ b/cloud-warn/src/main/java/com/muyu/warn/service/impl/CarServiceImpl.java @@ -7,6 +7,8 @@ import com.muyu.warn.service.CarService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @ClassName CarServiceImpl * @Description 描述 @@ -30,4 +32,10 @@ public class CarServiceImpl public Car findByVin(String vin) { return carMapper.findByVin(vin); } + + @Override + public List selectCar(Car car) { + List list = carMapper.selectCar(car); + return list; + } } diff --git a/cloud-warn/src/main/java/com/muyu/warn/service/impl/WarnStrategyServiceImpl.java b/cloud-warn/src/main/java/com/muyu/warn/service/impl/WarnStrategyServiceImpl.java index c35fd40..f7286c5 100644 --- a/cloud-warn/src/main/java/com/muyu/warn/service/impl/WarnStrategyServiceImpl.java +++ b/cloud-warn/src/main/java/com/muyu/warn/service/impl/WarnStrategyServiceImpl.java @@ -91,4 +91,16 @@ public class WarnStrategyServiceImpl return warnStrategyMapper.strategyRespList(warnStrategy); } + @Override + public List byTemplateId(Long templateId) { + List list = warnStrategyMapper.byTemplateId(templateId); + return list; + } + + @Override + public WarnStrategy findById(Long id) { + WarnStrategy warnStrategy = warnStrategyMapper.findById(id); + return warnStrategy; + } + } diff --git a/cloud-warn/src/main/resources/mapper/CarMapper.xml b/cloud-warn/src/main/resources/mapper/CarMapper.xml index cced449..e2e1da3 100644 --- a/cloud-warn/src/main/resources/mapper/CarMapper.xml +++ b/cloud-warn/src/main/resources/mapper/CarMapper.xml @@ -6,4 +6,27 @@ + diff --git a/cloud-warn/src/main/resources/mapper/WarnStrategyMapper.xml b/cloud-warn/src/main/resources/mapper/WarnStrategyMapper.xml index d95c1fb..562b4a8 100644 --- a/cloud-warn/src/main/resources/mapper/WarnStrategyMapper.xml +++ b/cloud-warn/src/main/resources/mapper/WarnStrategyMapper.xml @@ -31,4 +31,11 @@ LEFT JOIN t_car_type c ON c.car_type_id = s.car_type_id LEFT JOIN t_template t ON t.template_id = s.template_id + + + diff --git a/pom.xml b/pom.xml index 1dcf2df..452c261 100644 --- a/pom.xml +++ b/pom.xml @@ -284,6 +284,7 @@ cloud-common cloud-weixin-mp cloud-warn + cloud-modules/cloud-modules-car-gateway pom