From 517bee4006db263bbbfc1c353bf35b19698e78df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Sat, 17 Jan 2026 10:43:09 +0800 Subject: [PATCH] xx --- .../airline/api/RemoteAirlineService.java | 31 ++++++++++++++++ .../factory/RemoteAirlineFallbackFactory.java | 35 +++++++++++++++++++ .../approval/api/RemoteApprovalService.java | 31 ++++++++++++++++ .../RemoteApprovalFallbackFactory.java | 35 +++++++++++++++++++ .../com/ruoyi/fms/api/RemoteFmsService.java | 31 ++++++++++++++++ .../api/factory/RemoteFmsFallbackFactory.java | 35 +++++++++++++++++++ .../ruoyi/media/api/RemoteMediaService.java | 31 ++++++++++++++++ .../factory/RemoteMediaFallbackFactory.java | 35 +++++++++++++++++++ .../com/ruoyi/task/api/RemoteTaskService.java | 31 ++++++++++++++++ .../factory/RemoteTaskFallbackFactory.java | 35 +++++++++++++++++++ .../core/constant/ServiceNameConstants.java | 25 +++++++++++++ 11 files changed, 355 insertions(+) create mode 100644 ruoyi-api/tuoheng-api-airline/src/main/java/com/ruoyi/airline/api/RemoteAirlineService.java create mode 100644 ruoyi-api/tuoheng-api-airline/src/main/java/com/ruoyi/airline/api/factory/RemoteAirlineFallbackFactory.java create mode 100644 ruoyi-api/tuoheng-api-approval/src/main/java/com/ruoyi/approval/api/RemoteApprovalService.java create mode 100644 ruoyi-api/tuoheng-api-approval/src/main/java/com/ruoyi/approval/api/factory/RemoteApprovalFallbackFactory.java create mode 100644 ruoyi-api/tuoheng-api-fms/src/main/java/com/ruoyi/fms/api/RemoteFmsService.java create mode 100644 ruoyi-api/tuoheng-api-fms/src/main/java/com/ruoyi/fms/api/factory/RemoteFmsFallbackFactory.java create mode 100644 ruoyi-api/tuoheng-api-media/src/main/java/com/ruoyi/media/api/RemoteMediaService.java create mode 100644 ruoyi-api/tuoheng-api-media/src/main/java/com/ruoyi/media/api/factory/RemoteMediaFallbackFactory.java create mode 100644 ruoyi-api/tuoheng-api-task/src/main/java/com/ruoyi/task/api/RemoteTaskService.java create mode 100644 ruoyi-api/tuoheng-api-task/src/main/java/com/ruoyi/task/api/factory/RemoteTaskFallbackFactory.java diff --git a/ruoyi-api/tuoheng-api-airline/src/main/java/com/ruoyi/airline/api/RemoteAirlineService.java b/ruoyi-api/tuoheng-api-airline/src/main/java/com/ruoyi/airline/api/RemoteAirlineService.java new file mode 100644 index 0000000..df283ec --- /dev/null +++ b/ruoyi-api/tuoheng-api-airline/src/main/java/com/ruoyi/airline/api/RemoteAirlineService.java @@ -0,0 +1,31 @@ +package com.ruoyi.airline.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.airline.api.domain.AirlineTempVO; +import com.ruoyi.airline.api.factory.RemoteAirlineFallbackFactory; +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; + +/** + * 航线服务 + * + * @author ruoyi + * @date 2026-01-17 + */ +@FeignClient(contextId = "remoteAirlineService", value = ServiceNameConstants.AIRLINE_SERVICE, fallbackFactory = RemoteAirlineFallbackFactory.class) +public interface RemoteAirlineService +{ + /** + * 根据ID查询航线信息 + * + * @param id 航线ID + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/airline/temp/{id}") + R getAirlineById(@PathVariable("id") String id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-airline/src/main/java/com/ruoyi/airline/api/factory/RemoteAirlineFallbackFactory.java b/ruoyi-api/tuoheng-api-airline/src/main/java/com/ruoyi/airline/api/factory/RemoteAirlineFallbackFactory.java new file mode 100644 index 0000000..685e581 --- /dev/null +++ b/ruoyi-api/tuoheng-api-airline/src/main/java/com/ruoyi/airline/api/factory/RemoteAirlineFallbackFactory.java @@ -0,0 +1,35 @@ +package com.ruoyi.airline.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.airline.api.RemoteAirlineService; +import com.ruoyi.airline.api.domain.AirlineTempVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 航线服务降级处理 + * + * @author ruoyi + * @date 2026-01-17 + */ +@Component +public class RemoteAirlineFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteAirlineFallbackFactory.class); + + @Override + public RemoteAirlineService create(Throwable throwable) + { + log.error("航线服务调用失败:{}", throwable.getMessage()); + return new RemoteAirlineService() + { + @Override + public R getAirlineById(String id, String source) + { + return R.fail("获取航线信息失败:" + throwable.getMessage()); + } + }; + } +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-approval/src/main/java/com/ruoyi/approval/api/RemoteApprovalService.java b/ruoyi-api/tuoheng-api-approval/src/main/java/com/ruoyi/approval/api/RemoteApprovalService.java new file mode 100644 index 0000000..9c21c9d --- /dev/null +++ b/ruoyi-api/tuoheng-api-approval/src/main/java/com/ruoyi/approval/api/RemoteApprovalService.java @@ -0,0 +1,31 @@ +package com.ruoyi.approval.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.approval.api.domain.ApprovalTempVO; +import com.ruoyi.approval.api.factory.RemoteApprovalFallbackFactory; +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; + +/** + * 审批服务 + * + * @author ruoyi + * @date 2026-01-17 + */ +@FeignClient(contextId = "remoteApprovalService", value = ServiceNameConstants.APPROVAL_SERVICE, fallbackFactory = RemoteApprovalFallbackFactory.class) +public interface RemoteApprovalService +{ + /** + * 根据ID查询审批信息 + * + * @param id 审批ID + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/approval/temp/{id}") + R getApprovalById(@PathVariable("id") String id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-approval/src/main/java/com/ruoyi/approval/api/factory/RemoteApprovalFallbackFactory.java b/ruoyi-api/tuoheng-api-approval/src/main/java/com/ruoyi/approval/api/factory/RemoteApprovalFallbackFactory.java new file mode 100644 index 0000000..0d088e8 --- /dev/null +++ b/ruoyi-api/tuoheng-api-approval/src/main/java/com/ruoyi/approval/api/factory/RemoteApprovalFallbackFactory.java @@ -0,0 +1,35 @@ +package com.ruoyi.approval.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.approval.api.RemoteApprovalService; +import com.ruoyi.approval.api.domain.ApprovalTempVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 审批服务降级处理 + * + * @author ruoyi + * @date 2026-01-17 + */ +@Component +public class RemoteApprovalFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteApprovalFallbackFactory.class); + + @Override + public RemoteApprovalService create(Throwable throwable) + { + log.error("审批服务调用失败:{}", throwable.getMessage()); + return new RemoteApprovalService() + { + @Override + public R getApprovalById(String id, String source) + { + return R.fail("获取审批信息失败:" + throwable.getMessage()); + } + }; + } +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-fms/src/main/java/com/ruoyi/fms/api/RemoteFmsService.java b/ruoyi-api/tuoheng-api-fms/src/main/java/com/ruoyi/fms/api/RemoteFmsService.java new file mode 100644 index 0000000..b4f4505 --- /dev/null +++ b/ruoyi-api/tuoheng-api-fms/src/main/java/com/ruoyi/fms/api/RemoteFmsService.java @@ -0,0 +1,31 @@ +package com.ruoyi.fms.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.fms.api.domain.FmsTempVO; +import com.ruoyi.fms.api.factory.RemoteFmsFallbackFactory; +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; + +/** + * FMS服务 + * + * @author ruoyi + * @date 2026-01-17 + */ +@FeignClient(contextId = "remoteFmsService", value = ServiceNameConstants.FMS_SERVICE, fallbackFactory = RemoteFmsFallbackFactory.class) +public interface RemoteFmsService +{ + /** + * 根据ID查询FMS信息 + * + * @param id FMS ID + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/fms/temp/{id}") + R getFmsById(@PathVariable("id") String id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-fms/src/main/java/com/ruoyi/fms/api/factory/RemoteFmsFallbackFactory.java b/ruoyi-api/tuoheng-api-fms/src/main/java/com/ruoyi/fms/api/factory/RemoteFmsFallbackFactory.java new file mode 100644 index 0000000..7593535 --- /dev/null +++ b/ruoyi-api/tuoheng-api-fms/src/main/java/com/ruoyi/fms/api/factory/RemoteFmsFallbackFactory.java @@ -0,0 +1,35 @@ +package com.ruoyi.fms.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.fms.api.RemoteFmsService; +import com.ruoyi.fms.api.domain.FmsTempVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * FMS服务降级处理 + * + * @author ruoyi + * @date 2026-01-17 + */ +@Component +public class RemoteFmsFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteFmsFallbackFactory.class); + + @Override + public RemoteFmsService create(Throwable throwable) + { + log.error("FMS服务调用失败:{}", throwable.getMessage()); + return new RemoteFmsService() + { + @Override + public R getFmsById(String id, String source) + { + return R.fail("获取FMS信息失败:" + throwable.getMessage()); + } + }; + } +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-media/src/main/java/com/ruoyi/media/api/RemoteMediaService.java b/ruoyi-api/tuoheng-api-media/src/main/java/com/ruoyi/media/api/RemoteMediaService.java new file mode 100644 index 0000000..e9f246c --- /dev/null +++ b/ruoyi-api/tuoheng-api-media/src/main/java/com/ruoyi/media/api/RemoteMediaService.java @@ -0,0 +1,31 @@ +package com.ruoyi.media.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.media.api.domain.MediaTempVO; +import com.ruoyi.media.api.factory.RemoteMediaFallbackFactory; +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; + +/** + * 媒体服务 + * + * @author ruoyi + * @date 2026-01-17 + */ +@FeignClient(contextId = "remoteMediaService", value = ServiceNameConstants.MEDIA_SERVICE, fallbackFactory = RemoteMediaFallbackFactory.class) +public interface RemoteMediaService +{ + /** + * 根据ID查询媒体信息 + * + * @param id 媒体ID + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/media/temp/{id}") + R getMediaById(@PathVariable("id") String id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-media/src/main/java/com/ruoyi/media/api/factory/RemoteMediaFallbackFactory.java b/ruoyi-api/tuoheng-api-media/src/main/java/com/ruoyi/media/api/factory/RemoteMediaFallbackFactory.java new file mode 100644 index 0000000..3829d86 --- /dev/null +++ b/ruoyi-api/tuoheng-api-media/src/main/java/com/ruoyi/media/api/factory/RemoteMediaFallbackFactory.java @@ -0,0 +1,35 @@ +package com.ruoyi.media.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.media.api.RemoteMediaService; +import com.ruoyi.media.api.domain.MediaTempVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 媒体服务降级处理 + * + * @author ruoyi + * @date 2026-01-17 + */ +@Component +public class RemoteMediaFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteMediaFallbackFactory.class); + + @Override + public RemoteMediaService create(Throwable throwable) + { + log.error("媒体服务调用失败:{}", throwable.getMessage()); + return new RemoteMediaService() + { + @Override + public R getMediaById(String id, String source) + { + return R.fail("获取媒体信息失败:" + throwable.getMessage()); + } + }; + } +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-task/src/main/java/com/ruoyi/task/api/RemoteTaskService.java b/ruoyi-api/tuoheng-api-task/src/main/java/com/ruoyi/task/api/RemoteTaskService.java new file mode 100644 index 0000000..3f994ba --- /dev/null +++ b/ruoyi-api/tuoheng-api-task/src/main/java/com/ruoyi/task/api/RemoteTaskService.java @@ -0,0 +1,31 @@ +package com.ruoyi.task.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.task.api.domain.TaskTempVO; +import com.ruoyi.task.api.factory.RemoteTaskFallbackFactory; +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; + +/** + * 任务服务 + * + * @author ruoyi + * @date 2026-01-17 + */ +@FeignClient(contextId = "remoteTaskService", value = ServiceNameConstants.TASK_SERVICE, fallbackFactory = RemoteTaskFallbackFactory.class) +public interface RemoteTaskService +{ + /** + * 根据ID查询任务信息 + * + * @param id 任务ID + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/task/temp/{id}") + R getTaskById(@PathVariable("id") String id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); +} \ No newline at end of file diff --git a/ruoyi-api/tuoheng-api-task/src/main/java/com/ruoyi/task/api/factory/RemoteTaskFallbackFactory.java b/ruoyi-api/tuoheng-api-task/src/main/java/com/ruoyi/task/api/factory/RemoteTaskFallbackFactory.java new file mode 100644 index 0000000..ffa49b3 --- /dev/null +++ b/ruoyi-api/tuoheng-api-task/src/main/java/com/ruoyi/task/api/factory/RemoteTaskFallbackFactory.java @@ -0,0 +1,35 @@ +package com.ruoyi.task.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.task.api.RemoteTaskService; +import com.ruoyi.task.api.domain.TaskTempVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 任务服务降级处理 + * + * @author ruoyi + * @date 2026-01-17 + */ +@Component +public class RemoteTaskFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteTaskFallbackFactory.class); + + @Override + public RemoteTaskService create(Throwable throwable) + { + log.error("任务服务调用失败:{}", throwable.getMessage()); + return new RemoteTaskService() + { + @Override + public R getTaskById(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 450b855..e73ad37 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 @@ -26,4 +26,29 @@ public class ServiceNameConstants * 设备服务的serviceid */ public static final String DEVICE_SERVICE = "tuoheng-device"; + + /** + * 航线服务的serviceid + */ + public static final String AIRLINE_SERVICE = "tuoheng-airline"; + + /** + * 审批服务的serviceid + */ + public static final String APPROVAL_SERVICE = "tuoheng-approval"; + + /** + * FMS服务的serviceid + */ + public static final String FMS_SERVICE = "tuoheng-fms"; + + /** + * 媒体服务的serviceid + */ + public static final String MEDIA_SERVICE = "tuoheng-media"; + + /** + * 任务服务的serviceid + */ + public static final String TASK_SERVICE = "tuoheng-task"; }