From f34d4acc1f9ad47cb72981ed2c2a9f1114a7979f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E5=B9=B4=E6=A2=A6=E4=B8=8E=E7=A0=96?= <2847127106@qq.com> Date: Thu, 10 Oct 2024 20:31:33 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=BD=A6=E8=BE=86=E5=AE=9E=E6=97=B6=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../saas/interceptor/WebMvcSaaSConfig.java | 2 +- .../muyu/openbusiness/domain/SysCarData.java | 28 ++++++++ .../openbusiness/domain/SysCarMessage.java | 3 + .../controller/SysCarRealTimeController.java | 32 +++++++++ .../service/SysCarRealTimeService.java | 21 ++++++ .../impl/SysCarRealTimeServiceImpl.java | 70 +++++++++++++++++++ 6 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarData.java create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarRealTimeController.java create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysCarRealTimeService.java create mode 100644 cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarRealTimeServiceImpl.java diff --git a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/WebMvcSaaSConfig.java b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/WebMvcSaaSConfig.java index f1dac5a..b807e38 100644 --- a/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/WebMvcSaaSConfig.java +++ b/cloud-common/cloud-common-saas/src/main/java/com/muyu/cloud/common/saas/interceptor/WebMvcSaaSConfig.java @@ -12,7 +12,7 @@ public class WebMvcSaaSConfig implements WebMvcConfigurer { /** * 不需要拦截的地址 */ - public static final String[] EXCLUDE_URLS = {"/user/info", "/login", "/logout", "/refresh"}; + public static final String[] EXCLUDE_URLS = {"/user/info", "/login", "/logout", "/refresh", "/realTime/getCarRealTime"}; @Override public void addInterceptors (InterceptorRegistry registry) { diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarData.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarData.java new file mode 100644 index 0000000..e45b3f0 --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarData.java @@ -0,0 +1,28 @@ +package com.muyu.openbusiness.domain; + +import lombok.*; +import lombok.experimental.SuperBuilder; + +/** + * 车辆详细数据 + * + * @Author: 胡杨 + * @Name: SysCarData + * @Description: 车辆详细数据 + * @CreatedDate: 2024/10/10 下午7:35 + * @FilePath: com.muyu.openbusiness.domain + */ + +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class SysCarData { + + private String key; + private String label; + private T value; + private String type; +} diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarMessage.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarMessage.java index 7728066..1fdfa49 100644 --- a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarMessage.java +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-common/src/main/java/com/muyu/openbusiness/domain/SysCarMessage.java @@ -53,6 +53,9 @@ public class SysCarMessage implements Serializable { @Excel(name = "报文分类") private String messageType; + /* 报文数据类型*/ + private String messageClass; + @Override public String toString() { diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarRealTimeController.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarRealTimeController.java new file mode 100644 index 0000000..f78a813 --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/controller/SysCarRealTimeController.java @@ -0,0 +1,32 @@ +package com.muyu.openbusiness.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.openbusiness.domain.SysCarData; +import com.muyu.openbusiness.service.SysCarRealTimeService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; + +/** + * 车辆实时信息控制层 + * + * @Author: 胡杨 + * @Name: SysCarRealTimeController + * @Description: 车辆实时信息控制层 + * @CreatedDate: 2024/10/10 下午7:16 + * @FilePath: com.muyu.openbusiness.controller + */ + +@RestController +@RequestMapping("/realTime") +public class SysCarRealTimeController { + @Resource + private SysCarRealTimeService service; + + @GetMapping("/getCarRealTime") + public Result> getCarRealTime(@RequestParam("vin") String vin) { + return Result.success(service.getCarRealTime(vin)); + } +} diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysCarRealTimeService.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysCarRealTimeService.java new file mode 100644 index 0000000..f534719 --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/SysCarRealTimeService.java @@ -0,0 +1,21 @@ +package com.muyu.openbusiness.service; + + +import com.muyu.openbusiness.domain.SysCarData; + +import java.util.HashMap; +import java.util.List; + +/** + * 车辆实时信息业务层 + * + * @Author: 胡杨 + * @Name: SysCarRealTime + * @Description: 车辆实时信息业务层 + * @CreatedDate: 2024/10/10 下午7:37 + * @FilePath: com.muyu.openbusiness.service + */ + +public interface SysCarRealTimeService{ + HashMap getCarRealTime(String vin); +} diff --git a/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarRealTimeServiceImpl.java b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarRealTimeServiceImpl.java new file mode 100644 index 0000000..d2f956e --- /dev/null +++ b/cloud-modules/cloud-modules-openbusiness/cloud-modules-openbusiness-server/src/main/java/com/muyu/openbusiness/service/impl/SysCarRealTimeServiceImpl.java @@ -0,0 +1,70 @@ +package com.muyu.openbusiness.service.impl; + + +import javax.annotation.Resource; + +import com.muyu.common.redis.service.RedisService; +import com.muyu.openbusiness.domain.SysCarData; +import com.muyu.openbusiness.service.SysCarRealTimeService; +import org.springframework.stereotype.Service; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * 车辆实时信息实现层 + * + * @Author: 胡杨 + * @Name: SysCarRealTime + * @Description: 车辆实时信息实现层 + * @CreatedDate: 2024/10/10 下午7:37 + * @FilePath: com.muyu.openbusiness.service.impl + */ + +@Slf4j +@Service +public class SysCarRealTimeServiceImpl implements SysCarRealTimeService { + @Resource + private RedisService redisService; + + private static final HashMap > typeMap = new HashMap<>(); + static { + typeMap.put("int", Integer.class); + typeMap.put("double", Double.class); + typeMap.put("long", Long.class); + typeMap.put("string", String.class); + } + + @Override + public HashMap getCarRealTime(String vin) { + HashMap map = new HashMap<>(); + for (String key : redisService.keys(vin+":*")) { + map.put(key.replace(vin + ":",""), classConversion(redisService.getCacheObject(key))); + } + return map; + } + + /** + * 去除无用字符 + * @param str + * @return + */ + private String classConversion(String str) { + try { + double d = Double.parseDouble(str); + str = Double.toString(d); + String[] split = str.split("."); + if (split.length>1 && split[1].equals("0")) { + str = String.valueOf(Integer.parseInt(str)); + } + return str; + } catch (NumberFormatException e) { + return str; + } + + + + } +}