diff --git a/pom.xml b/pom.xml index 48a3001..b8ba827 100644 --- a/pom.xml +++ b/pom.xml @@ -212,6 +212,13 @@ ${ruoyi.version} + + + com.ruoyi + tuoheng-api-device + ${ruoyi.version} + + diff --git a/ruoyi-api/pom.xml b/ruoyi-api/pom.xml index b3bc234..23bceb8 100644 --- a/ruoyi-api/pom.xml +++ b/ruoyi-api/pom.xml @@ -10,6 +10,7 @@ ruoyi-api-system + tuoheng-api-device ruoyi-api diff --git a/ruoyi-api/tuoheng-api-device/pom.xml b/ruoyi-api/tuoheng-api-device/pom.xml new file mode 100644 index 0000000..38d736f --- /dev/null +++ b/ruoyi-api/tuoheng-api-device/pom.xml @@ -0,0 +1,28 @@ + + + + com.ruoyi + ruoyi-api + 3.6.7 + + 4.0.0 + + tuoheng-api-device + + + tuoheng-api-device设备接口模块 + + + + + + + com.ruoyi + ruoyi-common-core + + + + + \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/RemoteDeviceService.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/RemoteDeviceService.java new file mode 100644 index 0000000..8b59b30 --- /dev/null +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/RemoteDeviceService.java @@ -0,0 +1,33 @@ +package com.ruoyi.device.api; + +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.device.api.domain.DeviceTemp; +import com.ruoyi.device.api.factory.RemoteDeviceFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestHeader; + +import java.util.List; + +/** + * 设备服务 + * + * @author ruoyi + * @date 2026-01-15 + */ +@FeignClient(contextId = "remoteDeviceService", value = ServiceNameConstants.DEVICE_SERVICE, fallbackFactory = RemoteDeviceFallbackFactory.class) +public interface RemoteDeviceService +{ + /** + * 根据ID查询设备信息 + * + * @param id 设备ID + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/device/temp/{id}") + R getDeviceById(@PathVariable("id") String id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DeviceTemp.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DeviceTemp.java new file mode 100644 index 0000000..675e9ea --- /dev/null +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/domain/DeviceTemp.java @@ -0,0 +1,35 @@ +package com.ruoyi.device.api.domain; + +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 设备临时表对象 tuoheng_device_temp + * + * @author ruoyi + * @date 2026-01-15 + */ +public class DeviceTemp extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private String id; + + public String getId() + { + return id; + } + + public void setId(String id) + { + this.id = id; + } + + @Override + public String toString() + { + return "DeviceTemp{" + + "id='" + id + '\'' + + '}'; + } +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/factory/RemoteDeviceFallbackFactory.java b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/factory/RemoteDeviceFallbackFactory.java new file mode 100644 index 0000000..360ff38 --- /dev/null +++ b/ruoyi-api/tuoheng-api-device/src/main/java/com/ruoyi/device/api/factory/RemoteDeviceFallbackFactory.java @@ -0,0 +1,35 @@ +package com.ruoyi.device.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.device.api.RemoteDeviceService; +import com.ruoyi.device.api.domain.DeviceTemp; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 设备服务降级处理 + * + * @author ruoyi + * @date 2026-01-15 + */ +@Component +public class RemoteDeviceFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteDeviceFallbackFactory.class); + + @Override + public RemoteDeviceService create(Throwable throwable) + { + log.error("设备服务调用失败:", throwable.getMessage()); + return new RemoteDeviceService() + { + @Override + public R getDeviceById(String id, String source) + { + return R.fail("获取设备信息失败:" + throwable.getMessage()); + } + }; + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java index 421a322..450b855 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java @@ -21,4 +21,9 @@ public class ServiceNameConstants * 文件服务的serviceid */ public static final String FILE_SERVICE = "ruoyi-file"; + + /** + * 设备服务的serviceid + */ + public static final String DEVICE_SERVICE = "tuoheng-device"; }