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; + } + + + + } +}