提交factory 和 remote 接口
This commit is contained in:
parent
828797ca37
commit
fb17f9fb41
|
|
@ -0,0 +1,29 @@
|
||||||
|
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.AircraftDetailVO;
|
||||||
|
import com.ruoyi.device.api.factory.RemoteAircraftFallbackFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 无人机服务
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2026-01-20
|
||||||
|
*/
|
||||||
|
@FeignClient(contextId = "remoteAircraftService", value = ServiceNameConstants.DEVICE_SERVICE, fallbackFactory = RemoteAircraftFallbackFactory.class)
|
||||||
|
public interface RemoteAircraftService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查看无人机详情
|
||||||
|
*
|
||||||
|
* @param aircraftId 无人机ID
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@GetMapping("/aircraft/detail/{aircraftId}")
|
||||||
|
R<AircraftDetailVO> getAircraftDetail(@PathVariable("aircraftId") Long aircraftId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
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.DockVO;
|
||||||
|
import com.ruoyi.device.api.domain.DockDetailVO;
|
||||||
|
import com.ruoyi.device.api.factory.RemoteDockFallbackFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机场服务
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2026-01-20
|
||||||
|
*/
|
||||||
|
@FeignClient(contextId = "remoteDockService", value = ServiceNameConstants.DEVICE_SERVICE, fallbackFactory = RemoteDockFallbackFactory.class)
|
||||||
|
public interface RemoteDockService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 搜索机场
|
||||||
|
*
|
||||||
|
* @param dockStatus 机场状态
|
||||||
|
* @param dockId 机场ID
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@GetMapping("/dock/search")
|
||||||
|
R<List<DockVO>> searchDocks(@RequestParam(required = false) String dockStatus, @RequestParam(required = false) Long dockId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看机场详情
|
||||||
|
*
|
||||||
|
* @param dockId 机场ID
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@GetMapping("/dock/detail/{dockId}")
|
||||||
|
R<DockDetailVO> getDockDetail(@PathVariable("dockId") Long dockId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
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.GroupVO;
|
||||||
|
import com.ruoyi.device.api.domain.DockVO;
|
||||||
|
import com.ruoyi.device.api.factory.RemoteGroupFallbackFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分组服务
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2026-01-20
|
||||||
|
*/
|
||||||
|
@FeignClient(contextId = "remoteGroupService", value = ServiceNameConstants.DEVICE_SERVICE, fallbackFactory = RemoteGroupFallbackFactory.class)
|
||||||
|
public interface RemoteGroupService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 创建分组
|
||||||
|
*
|
||||||
|
* @param groupVO 分组信息
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PostMapping("/group/create")
|
||||||
|
R<Long> createGroup(@RequestBody GroupVO groupVO, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除分组
|
||||||
|
*
|
||||||
|
* @param groupId 分组ID
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/group/delete/{groupId}")
|
||||||
|
R<Void> deleteGroup(@PathVariable("groupId") Long groupId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 切换机场所在的分组
|
||||||
|
*
|
||||||
|
* @param dockId 机场ID
|
||||||
|
* @param groupId 分组ID
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PutMapping("/group/switch/{dockId}/{groupId}")
|
||||||
|
R<Void> switchDockGroup(@PathVariable("dockId") Long dockId, @PathVariable("groupId") Long groupId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看分组下的机场
|
||||||
|
*
|
||||||
|
* @param groupId 分组ID
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@GetMapping("/group/docks/{groupId}")
|
||||||
|
R<List<DockVO>> getDocksByGroupId(@PathVariable("groupId") Long groupId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看所有分组
|
||||||
|
*
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@GetMapping("/group/list")
|
||||||
|
R<List<Long>> getAllGroupIds(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.ruoyi.device.api.factory;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.ruoyi.device.api.RemoteAircraftService;
|
||||||
|
import com.ruoyi.device.api.domain.AircraftDetailVO;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 无人机服务降级处理
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2026-01-20
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class RemoteAircraftFallbackFactory implements FallbackFactory<RemoteAircraftService>
|
||||||
|
{
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(RemoteAircraftFallbackFactory.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RemoteAircraftService create(Throwable throwable)
|
||||||
|
{
|
||||||
|
log.error("无人机服务调用失败:", throwable.getMessage());
|
||||||
|
return new RemoteAircraftService()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public R<AircraftDetailVO> getAircraftDetail(Long aircraftId, String source)
|
||||||
|
{
|
||||||
|
return R.fail("查看无人机详情失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.ruoyi.device.api.factory;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.ruoyi.device.api.RemoteDockService;
|
||||||
|
import com.ruoyi.device.api.domain.DockVO;
|
||||||
|
import com.ruoyi.device.api.domain.DockDetailVO;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 机场服务降级处理
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2026-01-20
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class RemoteDockFallbackFactory implements FallbackFactory<RemoteDockService>
|
||||||
|
{
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(RemoteDockFallbackFactory.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RemoteDockService create(Throwable throwable)
|
||||||
|
{
|
||||||
|
log.error("机场服务调用失败:", throwable.getMessage());
|
||||||
|
return new RemoteDockService()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public R<List<DockVO>> searchDocks(String dockStatus, Long dockId, String source)
|
||||||
|
{
|
||||||
|
return R.fail("搜索机场失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<DockDetailVO> getDockDetail(Long dockId, String source)
|
||||||
|
{
|
||||||
|
return R.fail("查看机场详情失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
package com.ruoyi.device.api.factory;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.ruoyi.device.api.RemoteGroupService;
|
||||||
|
import com.ruoyi.device.api.domain.GroupVO;
|
||||||
|
import com.ruoyi.device.api.domain.DockVO;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分组服务降级处理
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2026-01-20
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class RemoteGroupFallbackFactory implements FallbackFactory<RemoteGroupService>
|
||||||
|
{
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(RemoteGroupFallbackFactory.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RemoteGroupService create(Throwable throwable)
|
||||||
|
{
|
||||||
|
log.error("分组服务调用失败:", throwable.getMessage());
|
||||||
|
return new RemoteGroupService()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public R<Long> createGroup(GroupVO groupVO, String source)
|
||||||
|
{
|
||||||
|
return R.fail("创建分组失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Void> deleteGroup(Long groupId, String source)
|
||||||
|
{
|
||||||
|
return R.fail("删除分组失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Void> switchDockGroup(Long dockId, Long groupId, String source)
|
||||||
|
{
|
||||||
|
return R.fail("切换机场分组失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<List<DockVO>> getDocksByGroupId(Long groupId, String source)
|
||||||
|
{
|
||||||
|
return R.fail("查看分组下的机场失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<List<Long>> getAllGroupIds(String source)
|
||||||
|
{
|
||||||
|
return R.fail("查看所有分组失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue