From c1c93dcaba35e2a3fca33922d588b6129f255957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=B8=9C=E4=BD=B3?= <14614659+dongjia-li@user.noreply.gitee.com> Date: Fri, 4 Oct 2024 16:42:12 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cache/MessageValueCacheService.java | 32 +++++++++++ .../java/com/muyu/domain/VehicleType.java | 2 +- .../controller/VehicleController.java | 22 ++------ .../controller/VehicleTypeController.java | 16 +++--- .../muyu/enterprise/mapper/VehicleMapper.java | 8 --- .../enterprise/service/VehicleService.java | 8 --- .../service/impl/VehicleServiceImpl.java | 11 ---- .../cloud-modules-protocol-parsing/pom.xml | 6 +++ .../parsing/feign/RemoteServiceClient.java | 9 ---- .../factory/RemoteServiceClientFactory.java | 5 -- .../protocol/parsing/test/ParsingTest.java | 53 ++++++++++++++----- 11 files changed, 94 insertions(+), 78 deletions(-) create mode 100644 cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/MessageValueCacheService.java diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/MessageValueCacheService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/MessageValueCacheService.java new file mode 100644 index 0000000..6d49b4e --- /dev/null +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-cache/src/main/java/com/muyu/enterprise/cache/MessageValueCacheService.java @@ -0,0 +1,32 @@ +package com.muyu.enterprise.cache; + +import com.muyu.common.cache.CacheAbsBacis; +import com.muyu.domain.resp.MessageValueListResp; + +import java.util.List; + +/** + * 报文模版数据缓存 + * @Author: LiDongJia + * @Package: com.muyu.enterprise.cache + * @Project: cloud-server + * @name: MessageValueCacheService + * @Date: 2024/10/4 10:10 + * @Description: 报文模版数据缓存 + */ +public class MessageValueCacheService extends CacheAbsBacis> { + @Override + public void clear() { + + } + + @Override + public String keyPre() { + return "messageValue:info:"; + } + + @Override + public String decode(String key) { + return key.replace("messageValue:info:", ""); + } +} diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/VehicleType.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/VehicleType.java index 629720b..21bfdf6 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/VehicleType.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-common/src/main/java/com/muyu/domain/VehicleType.java @@ -41,7 +41,7 @@ public class VehicleType extends BaseEntity { * 报文模版外键 */ @Schema(type = "Integer",description = "报文模版外键") - private Integer messageTemplateId; + private Long messageTemplateId; /** * 添加车辆类型 diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleController.java index 7639027..bdf04d9 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleController.java @@ -70,12 +70,12 @@ public class VehicleController extends BaseController { @Operation(summary = "新增车辆", description = "录入车辆信息") public Result save(@RequestBody VehicleAddReq vehicleAddReq) { boolean save = vehicleService.save(Vehicle.addBuild(vehicleAddReq)); - //获取用户信息 - LoginUser loginUser = SecurityUtils.getLoginUser(); - //获取租户唯一标识 - String databaseName = loginUser.getSysUser().getDatabaseName(); +// //获取用户信息 +// LoginUser loginUser = SecurityUtils.getLoginUser(); +// //获取租户唯一标识 +// String databaseName = loginUser.getSysUser().getDatabaseName(); //存到redis - vehicleCacheService.put(databaseName+vehicleAddReq.getVehicleVin(), Vehicle.addBuild(vehicleAddReq)); + vehicleCacheService.put(vehicleAddReq.getVehicleVin(), Vehicle.addBuild(vehicleAddReq)); return Result.success(save? "新增成功" : "新增失败"); } @@ -150,16 +150,4 @@ public class VehicleController extends BaseController { vehicleService.boundFenceGroup(boundFenceGroupReq); return Result.success("绑定成功"); } - - /** - * 通过车辆vin码查询模板id - * @param vehicleVin - * @return - */ - @GetMapping("/findByVehicleVin/{vehicleVin}") - @Operation(description = "通过车辆vin码查询模板id") - public Result findByVehicleVin(@PathVariable("vehicleVin") String vehicleVin) { - Long templateId = vehicleService.findByVehicleVin(vehicleVin); - return Result.success(templateId); - } } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleTypeController.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleTypeController.java index c0a6cd4..2475d69 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleTypeController.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/controller/VehicleTypeController.java @@ -45,7 +45,11 @@ public class VehicleTypeController { @RequestMapping(path = "/", method = RequestMethod.POST) @Operation(summary = "车辆类型列表",description = "车辆类型列表") public Result> findAll(){ - return Result.success(vehicleTypeService.list()); + List list = vehicleTypeService.list(); + list.forEach(vehicleType -> { + vehicleTypeCacheService.put(String.valueOf(vehicleType.getVehicleTypeId()),vehicleType); + }); + return Result.success(list); } /** @@ -57,12 +61,12 @@ public class VehicleTypeController { @Operation(summary = "添加报文数据", description = "新增报文数据") public Result save(@RequestBody VehicleType vehicleType) { boolean save = vehicleTypeService.save(vehicleType); - //获取用户信息 - LoginUser loginUser = SecurityUtils.getLoginUser(); - //获取租户唯一标识 - String databaseName = loginUser.getSysUser().getDatabaseName(); +// //获取用户信息 +// LoginUser loginUser = SecurityUtils.getLoginUser(); +// //获取租户唯一标识 +// String databaseName = loginUser.getSysUser().getDatabaseName(); //存到redis - vehicleTypeCacheService.put(databaseName+vehicleType.getVehicleTypeId(),vehicleType); + vehicleTypeCacheService.put(String.valueOf(vehicleType.getVehicleTypeId()),vehicleType); return Result.success(save? "添加成功" : "添加失败"); } } diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/VehicleMapper.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/VehicleMapper.java index 9b0765e..adb77c4 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/VehicleMapper.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/mapper/VehicleMapper.java @@ -30,14 +30,6 @@ public interface VehicleMapper extends MPJBaseMapper { */ List findAll(VehicleManageReq vehicleManageReq); - /** - * 根据车辆vin查询模版id - * @param vehicleVin - * @return - */ - @Select("SELECT t.message_template_id FROM vehicle v LEFT JOIN vehicle_type t ON v.vehicle_type_id = t.vehicle_type_id WHERE v.vehicle_vin = #{vehicleVin}") - Long findByVehicleVin(String vehicleVin); - /** * 车辆绑定围栏组 * @param boundFenceGroupReq diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/VehicleService.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/VehicleService.java index 07c4f05..e357b0c 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/VehicleService.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/VehicleService.java @@ -26,14 +26,6 @@ public interface VehicleService extends IService { */ List getVehicleList(VehicleManageReq vehicleManageReq); - - /** - * 根据车辆vin查询模板id - * @param vehicleVin - * @return - */ - Long findByVehicleVin(String vehicleVin); - /** * 绑定围栏组 */ diff --git a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/VehicleServiceImpl.java b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/VehicleServiceImpl.java index 37bd6f2..995aaff 100644 --- a/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/VehicleServiceImpl.java +++ b/cloud-modules/cloud-modules-enterprise/cloud-modules-enterprise-server/src/main/java/com/muyu/enterprise/service/impl/VehicleServiceImpl.java @@ -59,17 +59,6 @@ public class VehicleServiceImpl return list; } - /** - * 根据车辆vin查询模板id - * @param vehicleVin - * @return - */ - @Override - public Long findByVehicleVin(String vehicleVin) { - Long templateId = vehicleMapper.findByVehicleVin(vehicleVin); - return templateId; - } - @Override public void boundFenceGroup(BoundFenceGroupReq boundFenceGroupReq) { diff --git a/cloud-modules/cloud-modules-protocol-parsing/pom.xml b/cloud-modules/cloud-modules-protocol-parsing/pom.xml index fa6b4ec..6d31bae 100644 --- a/cloud-modules/cloud-modules-protocol-parsing/pom.xml +++ b/cloud-modules/cloud-modules-protocol-parsing/pom.xml @@ -116,6 +116,12 @@ cloud-common-kafka + + com.muyu + cloud-modules-enterprise-cache + 3.6.3 + + diff --git a/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/feign/RemoteServiceClient.java b/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/feign/RemoteServiceClient.java index 1f12ca7..6c4a4b0 100644 --- a/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/feign/RemoteServiceClient.java +++ b/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/feign/RemoteServiceClient.java @@ -20,15 +20,6 @@ import java.util.List; @FeignClient(name = "cloud-car") public interface RemoteServiceClient { - /** - * 通过车辆vin码查询模板id - * @param vehicleVin - * @return - */ - @GetMapping("/vehicleManage/findByVehicleVin/{vehicleVin}") - @Operation(description = "通过车辆vin码查询模板id") - public Result findByVehicleVin(@PathVariable("vehicleVin") String vehicleVin); - /** * 根据报文模版id查询报文数据 * @param templateId diff --git a/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/feign/factory/RemoteServiceClientFactory.java b/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/feign/factory/RemoteServiceClientFactory.java index 3d2af79..53e432b 100644 --- a/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/feign/factory/RemoteServiceClientFactory.java +++ b/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/feign/factory/RemoteServiceClientFactory.java @@ -26,11 +26,6 @@ public class RemoteServiceClientFactory implements FallbackFactory findByVehicleVin(String vehicleVin) { - return Result.success(Long.valueOf(vehicleVin)); - } - @Override public Result> findByTemplateId(Long templateId) { return null; diff --git a/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/test/ParsingTest.java b/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/test/ParsingTest.java index 9d9e31b..4503a6a 100644 --- a/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/test/ParsingTest.java +++ b/cloud-modules/cloud-modules-protocol-parsing/src/main/java/com/muyu/cloud/protocol/parsing/test/ParsingTest.java @@ -4,7 +4,16 @@ import cn.hutool.json.JSONObject; import com.alibaba.fastjson.JSON; import com.muyu.cloud.protocol.parsing.feign.RemoteServiceClient; import com.muyu.common.core.domain.Result; +import com.muyu.common.redis.service.RedisService; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.system.domain.LoginUser; +import com.muyu.domain.Vehicle; +import com.muyu.domain.VehicleType; import com.muyu.domain.resp.MessageValueListResp; +import com.muyu.enterprise.cache.MessageTemplateCacheService; +import com.muyu.enterprise.cache.MessageValueCacheService; +import com.muyu.enterprise.cache.VehicleCacheService; +import com.muyu.enterprise.cache.VehicleTypeCacheService; import lombok.extern.log4j.Log4j2; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; @@ -30,7 +39,7 @@ import java.util.List; public class ParsingTest { @Resource - private RedisTemplate redisTemplate; + private RedisService redisService; @Autowired private RemoteServiceClient remoteServiceClient; @@ -38,6 +47,15 @@ public class ParsingTest { @Resource private KafkaProducer kafkaProducer; + @Autowired + private VehicleTypeCacheService vehicleTypeCacheService; + + @Autowired + private VehicleCacheService vehicleCacheService; + + @Autowired + private MessageValueCacheService messageValueCacheService; + /** * 协议解析 */ @@ -76,8 +94,8 @@ public class ParsingTest { /** * 协议解析 - * @param messageStr - * @return + * @param messageStr 报文数据 + * @return 解析后的数据 */ public JSONObject protocolParsing(String messageStr) { //根据空格切割数据 @@ -91,15 +109,23 @@ public class ParsingTest { //取出车辆VIN码 String vehicleVin = result.substring(1, 18); log.info("车辆VIN码: " + vehicleVin); + //获取用户信息 + LoginUser loginUser = SecurityUtils.getLoginUser(); + //获取租户唯一标识 + String databaseName = loginUser.getSysUser().getDatabaseName(); + //根据车辆VIN码查询车辆信息 + Vehicle cacheVehicle = vehicleCacheService.get(databaseName + vehicleVin); + Long vehicleTypeId = cacheVehicle.getVehicleTypeId(); + VehicleType cacheVehicleType = vehicleTypeCacheService.get(databaseName + vehicleTypeId); //根据车辆VIN码查询报文模板ID - Result byVehicleVin = remoteServiceClient.findByVehicleVin(vehicleVin); - Long templateId = byVehicleVin.getData(); + Long templateId = cacheVehicleType.getMessageTemplateId(); List templateList; //从redis缓存中获取报文模板数据 try { String redisKey = "messageTemplate" + templateId; - if (redisTemplate.hasKey(redisKey)) { - List list = redisTemplate.opsForList().range(redisKey, 0, -1); + if (redisService.hasKey(redisKey)) { +// List list = redisTemplate.opsForList().range(redisKey, 0, -1); + List list = messageValueCacheService.get(redisKey); templateList = list.stream() .map(obj -> JSON.parseObject(obj.toString(), MessageValueListResp.class)) .toList(); @@ -107,12 +133,13 @@ public class ParsingTest { } else { Result> byTemplateId = remoteServiceClient.findByTemplateId(templateId); templateList = byTemplateId.getData(); - templateList.forEach( - listResp -> - redisTemplate.opsForList().rightPush( - redisKey, JSON.toJSONString(listResp) - ) - ); + messageValueCacheService.put(redisKey , templateList); +// templateList.forEach( +// listResp -> +// redisTemplate.opsForList().rightPush( +// redisKey, JSON.toJSONString(listResp) +// ) +// ); log.info("数据库查询成功"); } } catch (Exception e) {