添加统计接口

This commit is contained in:
孙小云 2026-01-23 10:22:07 +08:00
parent c3548ea38c
commit 7e9cba4e33
4 changed files with 123 additions and 1 deletions

View File

@ -0,0 +1,28 @@
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.StatisticsVO;
import com.ruoyi.device.api.factory.RemoteStatisticsFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
* 统计服务
*
* @author ruoyi
* @date 2026-01-23
*/
@FeignClient(contextId = "remoteStatisticsService", value = ServiceNameConstants.DEVICE_SERVICE, fallbackFactory = RemoteStatisticsFallbackFactory.class)
public interface RemoteStatisticsService
{
/**
* 获取系统统计信息
*
* @param source 请求来源
* @return 统计信息
*/
@GetMapping("/statistics")
R<StatisticsVO> getStatistics(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

View File

@ -0,0 +1,59 @@
package com.ruoyi.device.api.domain;
import lombok.Data;
import java.io.Serializable;
/**
* 统计信息VO对象
*
* @author ruoyi
* @date 2026-01-23
*/
@Data
public class StatisticsVO implements Serializable
{
private static final long serialVersionUID = 1L;
// ========== 机场统计 ==========
/** 机场个数 */
private Integer dockCount;
/** 空闲机场个数 */
private Integer idleDockCount;
/** 任务中机场个数 */
private Integer workingDockCount;
/** 调试机场个数 */
private Integer debuggingDockCount;
/** 离线机场个数 */
private Integer offlineDockCount;
// ========== 无人机统计 ==========
/** 无人机个数 */
private Integer aircraftCount;
/** 舱内开机个数 */
private Integer powerOnInCabinCount;
/** 舱内关机个数 */
private Integer powerOffInCabinCount;
/** 任务中个数 */
private Integer inMissionCount;
/** 调试中个数 */
private Integer debuggingAircraftCount;
/** 离线个数 */
private Integer offlineAircraftCount;
// ========== 挂载统计 ==========
/** 全部挂载个数 */
private Integer payloadCount;
/** 离线个数 */
private Integer offlinePayloadCount;
}

View File

@ -0,0 +1,35 @@
package com.ruoyi.device.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.device.api.RemoteStatisticsService;
import com.ruoyi.device.api.domain.StatisticsVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
* 统计服务降级处理
*
* @author ruoyi
* @date 2026-01-23
*/
@Component
public class RemoteStatisticsFallbackFactory implements FallbackFactory<RemoteStatisticsService>
{
private static final Logger log = LoggerFactory.getLogger(RemoteStatisticsFallbackFactory.class);
@Override
public RemoteStatisticsService create(Throwable throwable)
{
log.error("统计服务调用失败:{}", throwable.getMessage());
return new RemoteStatisticsService()
{
@Override
public R<StatisticsVO> getStatistics(String source)
{
return R.fail("获取统计信息失败:" + throwable.getMessage());
}
};
}
}

@ -1 +1 @@
Subproject commit 7348cf68f62ef4950740dd3ea8800109016e54b8
Subproject commit 8daf7a6d842dad1070246129f0629d7090ab1787