From c539a55f1ebdd541382a1be501aa33f81424cc6a Mon Sep 17 00:00:00 2001 From: Number7 <1845377266@qq.com> Date: Mon, 7 Oct 2024 14:07:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix():=E5=B0=86=E5=8D=8F=E8=AE=AE=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E4=B8=AD=E7=9A=84=E5=8F=96=E5=80=BC=E6=8D=A2=E6=88=90?= =?UTF-8?q?Redis=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-auth/pom.xml | 10 ++ cloud-modules/cloud-modules-template/pom.xml | 9 + .../template/CloudTemplateApplication.java | 4 - .../muyu/template/config/MqttConfigure.java | 87 ++++----- .../template/controller/KafkaController.java | 10 -- .../controller/TemplateController.java | 21 +++ .../src/main/java/com/muyu/template/test.java | 167 ++++++++++++++++-- .../main/java/com/muyu/template/test2.java | 85 +++++++++ .../com/muyu/common/domain/resp/SysCarVo.java | 6 +- 9 files changed, 325 insertions(+), 74 deletions(-) delete mode 100644 cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/controller/KafkaController.java create mode 100644 cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/controller/TemplateController.java create mode 100644 cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/test2.java diff --git a/cloud-auth/pom.xml b/cloud-auth/pom.xml index 4cd0756..c38fc2b 100644 --- a/cloud-auth/pom.xml +++ b/cloud-auth/pom.xml @@ -17,6 +17,11 @@ + + com.baomidou + mybatis-plus-boot-starter + 3.5.5 + @@ -36,6 +41,11 @@ spring-cloud-starter-alibaba-sentinel + + com.muyu + cloud-common-saas + + org.springframework.boot diff --git a/cloud-modules/cloud-modules-template/pom.xml b/cloud-modules/cloud-modules-template/pom.xml index fa19206..12015f9 100644 --- a/cloud-modules/cloud-modules-template/pom.xml +++ b/cloud-modules/cloud-modules-template/pom.xml @@ -89,6 +89,15 @@ com.muyu cloud-common-xxl + + + org.springframework.boot + spring-boot-starter-data-redis + + + redis.clients + jedis + diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/CloudTemplateApplication.java b/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/CloudTemplateApplication.java index 80804e6..359305f 100644 --- a/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/CloudTemplateApplication.java +++ b/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/CloudTemplateApplication.java @@ -13,11 +13,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableMyFeignClients @SpringBootApplication public class CloudTemplateApplication { - public static void main(String[] args) { - SpringApplication.run(CloudTemplateApplication.class, args); - } - } diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/config/MqttConfigure.java b/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/config/MqttConfigure.java index 065aa80..1e81a87 100644 --- a/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/config/MqttConfigure.java +++ b/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/config/MqttConfigure.java @@ -1,11 +1,19 @@ package com.muyu.template.config; import cn.hutool.json.JSONObject; import com.alibaba.fastjson2.JSON; +import com.muyu.cache.MessageTemplateCacheService; +import com.muyu.cache.MessageTemplateTypeCacheService; +import com.muyu.cache.SysCarCacheService; +import com.muyu.cache.TemplateCacheService; +import com.muyu.common.domain.MessageTemplate; import com.muyu.common.domain.MessageTemplateType; import com.muyu.common.domain.SysCar; +import com.muyu.common.domain.Template; +import com.muyu.common.domain.resp.SysCarVo; import com.muyu.common.redis.service.RedisService; import lombok.extern.log4j.Log4j2; +import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; import org.eclipse.paho.client.mqttv3.*; import org.springframework.beans.factory.annotation.Autowired; @@ -33,10 +41,17 @@ public class MqttConfigure { private RedisService redisService; @Autowired - private RedisTemplate redisTemplate; + private SysCarCacheService service; -// @Autowired -// private KafkaProducer kafkaProducer; + @Autowired + private MessageTemplateCacheService messageTemplateCacheService; + + @Autowired + private MessageTemplateTypeCacheService messageTemplateTypeCacheService; + + + @Autowired + private KafkaProducer kafkaProducer; @PostConstruct public void MQTTMonitoring(){ @@ -69,8 +84,8 @@ public class MqttConfigure { JSONObject jsonObject = new JSONObject(messageContent); // 从JSON对象中获取"msg"字段的值 String msgValue = jsonObject.getStr("msg"); + log.info("接收到的报文为:"+msgValue); messageParsing(msgValue); - log.info("接收到的值为:"+msgValue); } //交付完成 @Override @@ -103,49 +118,36 @@ public class MqttConfigure { result.append((char) decimal); } //取出VIN码 - String carVin = result.substring(0, 18 - 1); + String carVin = result.substring(1, 18 ); log.info("carVin码为:" + carVin); //根据VIN码获取车辆信息 SysCar carByVin = null; - List carList = redisService.getCacheList("carList"); - for (SysCar sysCar : carList) { - if(sysCar.getCarVin().equals(carVin)){ - carByVin=sysCar; + List carList = service.get("carList"); + if(carList==null){ + log.info("redis未取到数据"); + }else{ + for (SysCarVo sysCarVo : carList) { + if(sysCarVo.getCarVin().equals(carVin)){ + carByVin = sysCarVo; + } } } -// SysCar carByVin = service.findCarByVin(carVin); log.info("车辆信息为:" + carByVin); //对应车辆所对应的报文模版 Integer templateId = carByVin.getTemplateId(); - List templateTypeList; - //key - String redisKey = "messageTemplateType" + templateId; + List templateTypeList=null; + List messageTemplateTypes=null; + String redisKey = "messageTemplateTypeList"; //key存在 - if (redisTemplate.hasKey(redisKey)) { + Boolean b = redisService.hasKey(redisKey); + if (b) { + messageTemplateTypes = messageTemplateTypeCacheService.get(redisKey); - List list = redisTemplate.opsForList().range(redisKey, 0, -1); - - templateTypeList = list.stream().map(o -> JSON.parseObject(o.toString(), MessageTemplateType.class)) - .toList(); - } else { - List templateTypeList1=null; - List templateTypeList2 = redisService.getCacheList("templateTypeList"); - for (MessageTemplateType messageTemplateType : templateTypeList2) { - if(messageTemplateType.getTemplateId()==templateId){ - templateTypeList1.add(messageTemplateType); - } - } -// List templateTypeList1 = messageTemplateTypeService.findTemplateById(templateId); - templateTypeList = templateTypeList1; - templateTypeList.forEach( - templateType -> - redisTemplate.opsForList().rightPush( - redisKey, JSON.toJSONString(templateType) - ) - ); + }else{ + throw new RuntimeException("请先将配置存入Redis!!!"); } //将模版里面有的配置进行循环 - for (MessageTemplateType messageTemplateType : templateTypeList) { + for (MessageTemplateType messageTemplateType : messageTemplateTypes) { //开始位置 Integer startIndex = messageTemplateType.getStartIndex() - 1; //结束位置 @@ -154,17 +156,16 @@ public class MqttConfigure { jsonObject.put(messageTemplateType.getMessageField(), result.substring(startIndex, endIndex)); } log.info("解析后的报文是:" + jsonObject); -// sendKafka(jsonObject); + sendKafka(jsonObject); log.info("发送kafka成功"); return jsonObject; } - -// //kafka发送消息 -// public void sendKafka(JSONObject jsonObject){ -// ProducerRecord stringStringProducerRecord = new ProducerRecord<>("four_car", jsonObject.toString()); -// kafkaProducer.send(stringStringProducerRecord); -// log.info("kafka发送成功"); -// } + //kafka发送消息 + public void sendKafka(JSONObject jsonObject){ + ProducerRecord stringStringProducerRecord = new ProducerRecord<>("four_car", jsonObject.toString()); + kafkaProducer.send(stringStringProducerRecord); + log.info("kafka发送成功"); + } } diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/controller/KafkaController.java b/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/controller/KafkaController.java deleted file mode 100644 index 34e4ccd..0000000 --- a/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/controller/KafkaController.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.muyu.template.controller; - -/** - * @author liuxinyue - * @Package:com.muyu.template.controller - * @name:KafkaController - * @Date:2024/10/4 16:11 - */ -public class KafkaController { -} diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/controller/TemplateController.java b/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/controller/TemplateController.java new file mode 100644 index 0000000..1e55cda --- /dev/null +++ b/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/controller/TemplateController.java @@ -0,0 +1,21 @@ +package com.muyu.template.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author liuxinyue + * @Package:com.muyu.template.controller + * @name:TemplateController + * @Date:2024/10/7 10:28 + */ +@RestController +@RequestMapping("/template") +@AllArgsConstructor +@Tag(name = "协议解析管理",description = "协议解析管理") +@Log4j2 +public class TemplateController { +} diff --git a/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/test.java b/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/test.java index e602a8d..e7d8821 100644 --- a/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/test.java +++ b/cloud-modules/cloud-modules-template/src/main/java/com/muyu/template/test.java @@ -1,34 +1,44 @@ package com.muyu.template; - -import com.muyu.common.domain.SysCar; -import com.muyu.common.domain.Template; -import com.muyu.common.domain.WarnRule; -import com.muyu.common.domain.WarnStrategy; +import cn.hutool.json.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.muyu.common.domain.*; import com.muyu.common.redis.service.RedisService; -import org.springframework.beans.factory.annotation.Autowired; +import lombok.extern.log4j.Log4j2; +import org.springframework.data.redis.core.RedisTemplate; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; /** * @author liuxinyue * @Package:com.muyu.template * @name:test * @Date:2024/10/4 9:42 */ +@Log4j2 public class test { + private static int DURATION_SECONDS = 60; + private static List receivedStrings = new ArrayList<>(); + private static int elapsedSeconds = 0; + private static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + private static String file="elapsed"; + @Resource + private RedisTemplate redisTemplate; + @Resource private RedisService redisService; public void main(String[] args) { - + String message="7E 36 33 59 43 5a 44 59 36 33 33 36 43 38 48 34 43 41 31 37 32 37 36 36 38 35 39 37 37 38 39 31 32 31 2e 34 37 34 30 30 30 30 33 31 2e 32 33 30 30 30 31 30 31 38 2e 30 30 30 31 38 38 31 2e 37 39 30 30 30 30 35 36 31 30 30 30 33 31 30 30 30 36 38 39 39 30 30 30 30 30 50 31 30 39 30 39 2e 35 30 30 32 34 30 30 30 30 31 33 32 36 35 37 33 39 30 36 37 30 30 30 30 32 31 31 30 30 31 33 32 35 30 30 30 30 36 37 30 30 30 2e 32 32 30 30 30 30 37 35 30 30 30 30 31 33 31 30 30 30 30 35 37 30 30 30 30 33 30 30 30 34 30 30 30 37 39 30 30 30 30 32 30 30 30 30 30 31 37 30 30 30 30 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 55 7E"; //车类型 Long carTypeId=null; //查找车对应的类型 List carList = redisService.getCacheList("car"); for (SysCar sysCar : carList) { - if(sysCar.getCarVin().equals("")){ + if(sysCar.getCarVin().equals("1HGCM82633A123456")){ //获取到车的类型ID carTypeId = sysCar.getCarTypeId(); } @@ -47,16 +57,147 @@ public class test { } } - //根据ID取出对应的报文模版 - List