From 98fa19923db305d8d58b3d0067a0e4a5d9be3578 Mon Sep 17 00:00:00 2001 From: liuyibo <14460729+liuyibo12345@user.noreply.gitee.com> Date: Sun, 6 Oct 2024 10:57:27 +0800 Subject: [PATCH 1/5] =?UTF-8?q?build():=E6=B7=BB=E5=8A=A0=E8=BD=A6?= =?UTF-8?q?=E8=BE=86=E8=BF=9E=E6=8E=A5=E8=8E=B7=E5=8F=96=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=AD=98=E5=85=A5=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E5=8F=91=E9=80=81rabbitmq=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E9=98=9F=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud-modules-vehicle-gateway/pom.xml | 6 ++ .../controller/ConnectController.java | 51 +++++++++++++++++ .../vehiclegateway/domain/ConnectMemory.java | 37 ++++++++++++ .../muyu/vehiclegateway/domain/Instance.java | 37 ++++++++++++ .../domain/MqttServerModel.java | 32 +++++++++++ .../domain/req/VehicleConnectionReq.java | 44 ++++++++++++++ .../instance/GenerateInstance.java | 21 +++---- .../vehiclegateway/mapper/ConnectMapper.java | 10 ++++ .../service/ConnectService.java | 21 +++++++ .../service/impl/ConnectServiceImpl.java | 57 +++++++++++++++++++ .../src/main/resources/bootstrap.yml | 2 + .../main/resources/mapper/ConnectMapper.xml | 10 ++++ 12 files changed, 318 insertions(+), 10 deletions(-) create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/controller/ConnectController.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/ConnectMemory.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/Instance.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/MqttServerModel.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/req/VehicleConnectionReq.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/mapper/ConnectMapper.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/service/ConnectService.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/service/impl/ConnectServiceImpl.java create mode 100644 cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/mapper/ConnectMapper.xml diff --git a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml index 12b2946..2d95b3e 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/pom.xml +++ b/cloud-modules/cloud-modules-vehicle-gateway/pom.xml @@ -107,6 +107,12 @@ com.aliyun cloudapi20160714 + + + + com.muyu + cloud-common-rabbit + diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/controller/ConnectController.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/controller/ConnectController.java new file mode 100644 index 0000000..7046819 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/controller/ConnectController.java @@ -0,0 +1,51 @@ +package com.muyu.vehiclegateway.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.vehiclegateway.domain.req.VehicleConnectionReq; +import com.muyu.vehiclegateway.service.ConnectService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +/** + * @ClassName ConnectController + * @Description 连接车辆 + * @Author YiBo.Liu + * @Date 2024/10/2 16:25 + */ +@RequestMapping("/vehicleGateway") +@RestController +@Log4j2 +@Tag(name = "连接车辆控制层") +public class ConnectController { + + @Autowired + private ConnectService connectService; + + /** + * 获取车辆信息 + * @param vehicleConnectionReq + * @return + */ + @PostMapping("/receiveMsg/connect") + private Result receiveMsg(@RequestBody VehicleConnectionReq vehicleConnectionReq){ + log.info("=======>" + vehicleConnectionReq); + connectService.receiveMsg(vehicleConnectionReq); + return Result.success(); + } + + /** + * 创建ECS实例 + * @throws Exception + */ + @GetMapping("/createConnect") + private void createConnect() throws Exception { + connectService.createConnect(); + log.info("创建实例成功"); + } + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/ConnectMemory.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/ConnectMemory.java new file mode 100644 index 0000000..92dc9e3 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/ConnectMemory.java @@ -0,0 +1,37 @@ +package com.muyu.vehiclegateway.domain; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName ConnectMemory + * @Description 内存使用情况 + * @Author YiBo.Liu + * @Date 2024/10/4 11:02 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "服务器内存使用情况") +public class ConnectMemory { + + /** + * 节点ID + */ + private String clusterId; + + /** + * 所属IP + */ + private String ipAddress; + + /** + * 剩余连接数 + */ + private String remainingNum; + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/Instance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/Instance.java new file mode 100644 index 0000000..205d23e --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/Instance.java @@ -0,0 +1,37 @@ +package com.muyu.vehiclegateway.domain; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName Instance + * @Description 服务器数据 + * @Author YiBo.Liu + * @Date 2024/9/30 20:42 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Tag(name = "服务器数据") +public class Instance { + + /** + * 服务器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/vehiclegateway/domain/MqttServerModel.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/MqttServerModel.java new file mode 100644 index 0000000..d254664 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/MqttServerModel.java @@ -0,0 +1,32 @@ +package com.muyu.vehiclegateway.domain; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName MqttServerModel + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/10/4 14:49 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "mqtt服务器模型") +public class MqttServerModel { + + /** + * MQTT服务节点 + */ + private String broker; + + /** + * MQTT订阅主题 + */ + private String topic; + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/req/VehicleConnectionReq.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/req/VehicleConnectionReq.java new file mode 100644 index 0000000..ce28378 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/domain/req/VehicleConnectionReq.java @@ -0,0 +1,44 @@ +package com.muyu.vehiclegateway.domain.req; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName VehicleConnectionReq + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/10/2 16:10 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class VehicleConnectionReq { + + /** + * id + */ + + private Integer id; + + /** + * 车辆vin码 + */ + @JSONField(name = "vehicleVin") + private String vehicleVin; + + /** + *时间戳 + */ + private String timestamp; + + /** + * 随机字符串 + */ + private String nonce; + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java index 4d5bd74..304b23d 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/instance/GenerateInstance.java @@ -9,13 +9,12 @@ import com.aliyun.tea.TeaException; import com.aliyun.teautil.Common; import com.aliyun.teautil.models.RuntimeOptions; import com.muyu.common.redis.service.RedisService; +import com.muyu.vehiclegateway.domain.Instance; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -23,7 +22,7 @@ import java.util.List; /** * @ClassName GenerateInstance - * @Description 描述 + * @Description 程序启动创建ECS服务器实例 * @Author YiBo.Liu * @Date 2024/9/28 19:39 */ @@ -40,7 +39,7 @@ public class GenerateInstance implements ApplicationRunner { * 启动自动创建实例 * @throws Exception */ - public List generateInstance() throws Exception { + public List generateInstance() throws Exception { // 创建ECS客户端对象,用于后续调用ECS相关API Client client = CreateClient.createClient(); @@ -52,7 +51,7 @@ public class GenerateInstance implements ApplicationRunner { // 设置地域ID .setRegionId("cn-shanghai") // 设置镜像ID - .setImageId("m-uf63thq7h50ng72jpoq2") + .setImageId("m-uf6f7atj16s3cjn9q5l8") // 设置实例类型 .setInstanceType("ecs.t6-c1m1.large") // 设置安全组ID @@ -105,27 +104,29 @@ public class GenerateInstance implements ApplicationRunner { DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtimeOptions); //提取实例ID集合 - ArrayList list = new ArrayList<>(); + List list = new ArrayList<>(); DescribeInstancesResponseBody body = describeInstancesResponse.getBody(); for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance instance : body.getInstances().getInstance()) { - list.add(instance.getInstanceId()); - list.add(instance.getPublicIpAddress().ipAddress.get(0)); - list.add(instance.getStatus()); log.info("实例id为:"+instance.getInstanceId()); log.info("实例ip为:"+instance.getPublicIpAddress().ipAddress.get(0)); log.info("实例状态为:"+instance.getStatus()); + Instance instance1 = new Instance(instance.getInstanceId(), instance.getPublicIpAddress().ipAddress.get(0), instance.getStatus()); + + list.add(instance1); } - redisService.setCacheList("shili",list); +// Thread.sleep(20000); +// redisService.setCacheList("aaa",list); return list; } + @Override public void run(ApplicationArguments args) throws Exception { generateInstance(); diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/mapper/ConnectMapper.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/mapper/ConnectMapper.java new file mode 100644 index 0000000..dbf5b18 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/mapper/ConnectMapper.java @@ -0,0 +1,10 @@ +package com.muyu.vehiclegateway.mapper; + +import com.muyu.vehiclegateway.domain.req.VehicleConnectionReq; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ConnectMapper { + void addVehicle(VehicleConnectionReq vehicleConnectionReq); + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/service/ConnectService.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/service/ConnectService.java new file mode 100644 index 0000000..03cbc4b --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/service/ConnectService.java @@ -0,0 +1,21 @@ +package com.muyu.vehiclegateway.service; + +import com.muyu.vehiclegateway.domain.req.VehicleConnectionReq; + +public interface ConnectService { + + /** + * 创建实例 + * @throws Exception + */ + void createConnect() throws Exception; + + /** + * 获取车辆信息 + * @param vehicleConnectionReq + * @return + */ + void receiveMsg(VehicleConnectionReq vehicleConnectionReq); + + +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/service/impl/ConnectServiceImpl.java b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/service/impl/ConnectServiceImpl.java new file mode 100644 index 0000000..f4ab059 --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/java/com/muyu/vehiclegateway/service/impl/ConnectServiceImpl.java @@ -0,0 +1,57 @@ +package com.muyu.vehiclegateway.service.impl; + +import cn.hutool.json.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.muyu.common.core.constant.GenConstants; +import com.muyu.common.core.utils.uuid.UUID; +import com.muyu.vehiclegateway.domain.req.VehicleConnectionReq; +import com.muyu.vehiclegateway.instance.GenerateInstance; +import com.muyu.vehiclegateway.mapper.ConnectMapper; +import com.muyu.vehiclegateway.service.ConnectService; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import static io.lettuce.core.pubsub.PubSubOutput.Type.message; + +/** + * @ClassName ConnectServiceImpl + * @Description 描述 + * @Author YiBo.Liu + * @Date 2024/10/2 16:25 + */ +@Service +public class ConnectServiceImpl implements ConnectService { + + @Autowired + private RabbitTemplate rabbitTemplate; + + + @Autowired + private ConnectMapper connectMapper; + + /** + * 创建实例 + * @throws Exception + */ + @Override + public void createConnect() throws Exception { + GenerateInstance generateInstance = new GenerateInstance(); + generateInstance.generateInstance(); + } + + /** + * 获取车辆信息 + * @param vehicleConnectionReq + * @return + */ + @Override + public void receiveMsg(VehicleConnectionReq vehicleConnectionReq) { + rabbitTemplate.convertAndSend("GO_OFFLINE", vehicleConnectionReq.getVehicleVin(),message1 -> { + message1.getMessageProperties().setMessageId(UUID.fastUUID().toString()); + return message1; + }); + connectMapper.addVehicle(vehicleConnectionReq); + } +} diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml index 26e2e1b..0eb5252 100644 --- a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/bootstrap.yml @@ -40,6 +40,8 @@ spring: file-extension: yml # 共享配置 shared-configs: + # rabbitmq配置 + - application-rabbit-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统共享配置 - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 系统环境Config共享配置 diff --git a/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/mapper/ConnectMapper.xml b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/mapper/ConnectMapper.xml new file mode 100644 index 0000000..0d96adf --- /dev/null +++ b/cloud-modules/cloud-modules-vehicle-gateway/src/main/resources/mapper/ConnectMapper.xml @@ -0,0 +1,10 @@ + + + + + + + insert into connect(id,vehicle_vin,timestamp,nonce) + values (#{id},#{vehicleVin},#{timestamp},#{nonce}) + + From 19f67a389c69f4e988cb75b7762e9e5bafa3620c Mon Sep 17 00:00:00 2001 From: xinzirun Date: Mon, 7 Oct 2024 09:45:59 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix():=20=E8=A7=A3=E5=86=B3=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=86=B2=E7=AA=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ot.autoconfigure.AutoConfiguration.imports | 4 +--- .../src/main/resources/banner.txt | 20 +++++++++++++++++++ .../src/main/resources/bootstrap.yml | 1 + 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index d0243d7..de363ba 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -4,6 +4,4 @@ com.muyu.enterprise.cache.CarManageCacheService com.muyu.enterprise.cache.CarMessageCacheService com.muyu.enterprise.cache.CarTemplateCacheService com.muyu.enterprise.cache.CarWarnCacheService -com.muyu.enterprise.cache.ElectronicFenceCacheService - - +com.muyu.enterprise.cache.ElectronicFenceCacheService \ No newline at end of file diff --git a/cloud-modules/cloud-modules-event-process/src/main/resources/banner.txt b/cloud-modules/cloud-modules-event-process/src/main/resources/banner.txt index 0dd5eee..14310da 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/resources/banner.txt +++ b/cloud-modules/cloud-modules-event-process/src/main/resources/banner.txt @@ -1,2 +1,22 @@ Spring Boot Version: ${spring-boot.version} Spring Application Name: ${spring.application.name} + _ooOoo_ + o8888888o + 88" . "88 + (| -_- |) + O\ = /O + ____/`---'\____ + .' \\| |// `. + / \\||| : |||// \ + / _||||| -:- |||||- \ + | | \\\ - /// | | + | \_| ''\---/'' | | + \ .-\__ `-` ___/-. / + ___`. .' /--.--\ `. . __ + ."" '< `.___\_<|>_/___.' >'"". + | | : `- \`.;`\ _ /`;.`/ - ` : | | + \ \ `-. \_ __\ /__ _/ .-` / / + ======`-.____`-.___\_____/___.-`____.-'====== + `=---=' + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // 佛祖保佑 永不宕机 永无BUG // diff --git a/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml index f8e19b4..6a9e09e 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-event-process/src/main/resources/bootstrap.yml @@ -2,6 +2,7 @@ server: port: 11000 +# nacos线上地址 nacos: addr: 106.15.136.7:8848 user-name: nacos From eef7d19aeba92192d1c582cbeae632082f49d5df Mon Sep 17 00:00:00 2001 From: xinzirun Date: Mon, 7 Oct 2024 13:55:46 +0800 Subject: [PATCH 3/5] =?UTF-8?q?fix():=20=E4=BC=98=E5=8C=96=E4=B8=8A?= =?UTF-8?q?=E4=B8=8B=E7=BA=BF=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/event/process/consumer/GoOfflineConsumer.java | 3 ++- .../com/muyu/event/process/consumer/GoOnlineConsumer.java | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOfflineConsumer.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOfflineConsumer.java index 773b91e..99810c2 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOfflineConsumer.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOfflineConsumer.java @@ -3,6 +3,7 @@ package com.muyu.event.process.consumer; import com.muyu.event.process.util.CacheUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.QueueBinding; @@ -32,7 +33,7 @@ public class GoOfflineConsumer { @RabbitListener( bindings = @QueueBinding( value = @Queue(value = "GO_OFFLINE", durable = "true"), - exchange = @Exchange(value = "OFFLINE_EXCHANGE", type = "fanout") + exchange = @Exchange(value = "OFFLINE_EXCHANGE", type = ExchangeTypes.FANOUT) ) ) public void offline(String vin) { diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOnlineConsumer.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOnlineConsumer.java index f5fc581..ff0e571 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOnlineConsumer.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/consumer/GoOnlineConsumer.java @@ -8,6 +8,7 @@ import com.muyu.event.process.constant.CacheHandlerConstants; import com.muyu.event.process.util.CacheUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.QueueBinding; @@ -19,7 +20,7 @@ import java.util.HashMap; /** * @Author: zi run * @Date 2024/10/6 10:01 - * @Description 商量上线消费者 + * @Description 车辆上线消费者 */ @Slf4j @Component @@ -53,12 +54,13 @@ public class GoOnlineConsumer { /** * 处理车辆上线事件 + * * @param vin 车辆的识别码,根据识别码从缓存中存入对应的数据 */ @RabbitListener( bindings = @QueueBinding( value = @Queue(value = "GO_ONLINE", durable = "true"), - exchange = @Exchange(value = "ONLINE_EXCHANGE", type = "fanout") + exchange = @Exchange(value = "ONLINE_EXCHANGE", type = ExchangeTypes.FANOUT) ) ) public void online(String vin) { From 222b2ad30f52333eac352cad6fffb9c0827cc327 Mon Sep 17 00:00:00 2001 From: crj <1518542096@qq.com> Date: Mon, 7 Oct 2024 18:53:10 +0800 Subject: [PATCH 4/5] =?UTF-8?q?fix():=E6=95=85=E9=9A=9C=E8=A7=84=E5=88=99?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../muyu/enterprise/domain/CarTemplate.java | 10 ++--- .../com/muyu/enterprise/domain/FaultRule.java | 2 +- ...ntroller.java => FaultRuleController.java} | 26 ++++++------ ...trRuleMapper.java => FaultRuleMapper.java} | 4 +- .../enterprise/service/FaultRuleService.java | 17 ++++++++ .../service/impl/FaultRuleServiceImpl.java | 41 +++++++++++++++++++ 7 files changed, 80 insertions(+), 21 deletions(-) rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/{FaultrRuleController.java => FaultRuleController.java} (70%) rename cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/{FaultrRuleMapper.java => FaultRuleMapper.java} (69%) create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultRuleService.java create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultRuleServiceImpl.java diff --git a/.gitignore b/.gitignore index 9405b2d..f3f124a 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ logs *.iws *.iml *.ipr +*.yml ### JRebel ### rebel.xml diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java index bb1d9f5..672626c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/CarTemplate.java @@ -8,12 +8,12 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; + /** - * 报文模版表--实体类 - * @ClassName CarTemplate - * @Description 报文模版表 - * @author MingWei.Zong - * @Date 2024/9/28 16:52 + * 故障规则 + * @Author: chenruijia + * @Date 2024/9/28 12.23 + * @Description FaultRule:故障规则 */ @Data @NoArgsConstructor diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultRule.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultRule.java index d7387d7..6b12fdd 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultRule.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/enterprise/domain/FaultRule.java @@ -12,7 +12,7 @@ import lombok.experimental.SuperBuilder; * 故障规则 * @Author: chenruijia * @Date 2024/9/28 12.23 - * @Description FaultrRule:故障规则 + * @Description FaultRule:故障规则 */ @Data @SuperBuilder diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultRuleController.java similarity index 70% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultRuleController.java index 6cf595c..0052f50 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultrRuleController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/FaultRuleController.java @@ -14,42 +14,42 @@ import java.util.List; * 故障的规则控制层 * @author chenruijia * @Date 2024/9/28 11:58 - * @Description FaultrRuleController:故障的规则控制层 + * @Description FaultRuleController:故障的规则控制层 */ @RestController @RequestMapping("/rule") @Tag(name = "故障的规则",description = "对故障数据规则的判断") -public class FaultrRuleController { +public class FaultRuleController { @Autowired - private FaultrRuleService faultrRuleService; + private FaultRuleService FaultRuleService; /** * 查询车辆故障列表 */ @RequestMapping(value = "/faultRuleList", method = RequestMethod.GET) - public Result> faultRuleList(FaultRule faultrRule) + public Result> faultRuleList(FaultRule faultRule) { - List list = faultrRuleService.faultRuleList(faultrRule); + List list = FaultRuleService.faultRuleList(faultRule); return Result.success(list); } /** * 添加车辆规则 - * @param faultrRule + * @param faultRule * @return */ @RequestMapping(value = "/insertRule",method = RequestMethod.POST) - public Result insertRule(@RequestBody FaultRule faultrRule){ - return Result.success(faultrRuleService.save(faultrRule)); + public Result insertRule(@RequestBody FaultRule faultRule){ + return Result.success(FaultRuleService.save(faultRule)); } /** * 修改车辆规则 - * @param faultrRule + * @param faultRule * @return */ @RequestMapping(value = "/updateRule",method = RequestMethod.POST) - public Result updateRule(@RequestBody FaultRule faultrRule){ - return Result.success(faultrRuleService.updateById(faultrRule)); + public Result updateRule(@RequestBody FaultRule faultRule){ + return Result.success(FaultRuleService.updateById(faultRule)); } /** @@ -59,7 +59,7 @@ public class FaultrRuleController { */ @RequestMapping(value = "/byidRuleId/{faultRuleId}",method = RequestMethod.GET) public Result byidRuleId(@PathVariable Long faultRuleId){ - FaultRule byid = faultrRuleService.byidRuleId(faultRuleId); + FaultRule byid = FaultRuleService.byidRuleId(faultRuleId); return Result.success(byid); } @@ -69,7 +69,7 @@ public class FaultrRuleController { @RequestMapping(value = "/remove/{ids}",method = RequestMethod.DELETE) public Result remove(@PathVariable("ids") Long[] ids) { - faultrRuleService.removeBatchByIds(Arrays.asList(ids)); + FaultRuleService.removeBatchByIds(Arrays.asList(ids)); return Result.success(); } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultRuleMapper.java similarity index 69% rename from cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java rename to cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultRuleMapper.java index a13b8c7..f1ab5b5 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultrRuleMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/FaultRuleMapper.java @@ -8,8 +8,8 @@ import org.apache.ibatis.annotations.Mapper; * 故障规则持久层 * @Author: chenruijia * @Date 2024/9/28 12.17 - * @Description FaultrRuleMapper:故障规则持久层 + * @Description FaultRuleMapper:故障规则持久层 */ @Mapper -public interface FaultrRuleMapper extends BaseMapper { +public interface FaultRuleMapper extends BaseMapper { } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultRuleService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultRuleService.java new file mode 100644 index 0000000..b4e243f --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/FaultRuleService.java @@ -0,0 +1,17 @@ +package com.muyu.enterprise.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.enterprise.domain.FaultRule; + +import java.util.List; +/** + * 故障规则业务层 + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultRuleService:故障规则业务层 + */ +public interface FaultRuleService extends IService { + List faultRuleList(FaultRule faultRule); + + FaultRule byidRuleId(Long faultRuleId); +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultRuleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultRuleServiceImpl.java new file mode 100644 index 0000000..77e17bd --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/FaultRuleServiceImpl.java @@ -0,0 +1,41 @@ +package com.muyu.enterprise.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.enterprise.domain.FaultRule; +import com.muyu.enterprise.mapper.FaultRuleMapper; +import com.muyu.enterprise.service.FaultRuleService; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; +/** + * 故障规则业务实现层 + * @Author: chenruijia + * @Date 2024/9/28 12.19 + * @Description FaultRuleServiceImpl:故障规则业务实现层 + */ +@Service +public class FaultRuleServiceImpl extends ServiceImpl implements FaultRuleService { + + @Override + public List faultRuleList(FaultRule faultRule) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(faultRule.getFaultRuleName())) { + queryWrapper.eq(FaultRule::getFaultRuleName,faultRule.getFaultRuleName()); + } + if (StringUtils.isNotEmpty(faultRule.getFaultRuleParameter())) { + queryWrapper.eq(FaultRule::getFaultRuleParameter,faultRule.getFaultRuleParameter()); + } + return this.list(queryWrapper); + } + + @Override + public FaultRule byidRuleId(Long faultRuleId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(faultRuleId, "规则ID不可为空"); + queryWrapper.eq(FaultRule::getFaultRuleId, faultRuleId); + return this.getOne(queryWrapper); + } +} From 20977536e3510ea670f249489cb5f9d8a6eb3d08 Mon Sep 17 00:00:00 2001 From: xinzirun Date: Mon, 7 Oct 2024 19:29:12 +0800 Subject: [PATCH 5/5] =?UTF-8?q?fix():=20=E5=A4=84=E7=90=86=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E7=9B=91=E5=90=AC=E5=99=A8=E6=89=A7=E8=A1=8C=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/event/process/basic/BasicEventHandler.java | 10 +++++++++- .../listener/IdentifyingFailuresEventListener.java | 10 +++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventHandler.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventHandler.java index a7d91f4..8847620 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventHandler.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/basic/BasicEventHandler.java @@ -1,5 +1,6 @@ package com.muyu.event.process.basic; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; @@ -10,6 +11,7 @@ import java.util.List; * @Date 2024/9/30 15:37 * @Description 基础事件处理器 */ +@Slf4j @Component public class BasicEventHandler implements ApplicationListener> { @@ -34,6 +36,12 @@ public class BasicEventHandler implements ApplicationListener> */ @Override public void onApplicationEvent(BasicEvent event) { - listeners.forEach(l -> l.onEvent(event)); + listeners.forEach(l -> { + try { + l.onEvent(event); + } catch (Exception e) { + log.error("{}监听器处理事件时发生异常:{}", l, e.getMessage()); + } + }); } } \ No newline at end of file diff --git a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/IdentifyingFailuresEventListener.java b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/IdentifyingFailuresEventListener.java index cadaa16..d7b13bd 100644 --- a/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/IdentifyingFailuresEventListener.java +++ b/cloud-modules/cloud-modules-event-process/src/main/java/com/muyu/event/process/listener/IdentifyingFailuresEventListener.java @@ -1,6 +1,7 @@ package com.muyu.event.process.listener; import com.alibaba.fastjson2.JSONObject; +import com.muyu.common.core.exception.ServiceException; import com.muyu.enterprise.domain.FaultRule; import com.muyu.event.process.basic.BasicEvent; import com.muyu.event.process.basic.BasicEventListener; @@ -11,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.Map; +import java.util.Optional; /** * @Author: zi run @@ -31,8 +33,10 @@ public class IdentifyingFailuresEventListener implements BasicEventListener event) { log.info("触发识别故障时间监听器……"); JSONObject data = JSONObject.parseObject(event.getData()); - Map dataMap = (Map) cacheUtil.get((String) data.get("vin")); - FaultRule faultRule = (FaultRule) dataMap.get(CacheHandlerConstants.FAULT_RULE_KEY); - + Optional> optionalDataMap = + Optional.ofNullable((Map) cacheUtil.get((String) data.get("vin"))); + optionalDataMap + .map(dataMap -> (FaultRule) dataMap.get(CacheHandlerConstants.FAULT_RULE_KEY)) + .orElseThrow(() -> new ServiceException("故障规则未找到")); } }