feat(ExtraDevice): 添加外部设备管理功能

- 创建了 ExtraDeviceController 提供分页查询外部设备列表的API接口
- 新增 ExtraDeviceService 和 ExtraDeviceServiceImpl 实现设备查询逻辑
- 添加 ExtraDevicePageQueryReq 和 ExtraDeviceRespVO 请求响应数据模型
- 扩展 ExtraDeviceMapper 支持分页查询外部设备列表
- 实现景区名称填充和设备在线状态判断功能
- 集成 Redis 获取设备心跳时间判断在线状态
- 添加了完整的参数校验和异常处理机制
This commit is contained in:
2025-12-29 16:06:32 +08:00
parent d6780ccb7a
commit 4596a61ba8
7 changed files with 304 additions and 1 deletions

View File

@@ -0,0 +1,24 @@
package com.ycwl.basic.model.pc.extraDevice.req;
import lombok.Data;
/**
* 外部设备分页查询请求
*/
@Data
public class ExtraDevicePageQueryReq {
/**
* 景区ID (支持 Long 或字符串格式的Long)
*/
private Long scenicId;
/**
* 页码,默认1
*/
private Integer pageNum = 1;
/**
* 每页大小,默认20
*/
private Integer pageSize = 20;
}

View File

@@ -0,0 +1,53 @@
package com.ycwl.basic.model.pc.extraDevice.resp;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
/**
* 外部设备响应VO
* 对应文档中的 ExtraDeviceResp 结构
*/
@Data
public class ExtraDeviceRespVO {
/**
* 设备ID (JSON输出为字符串)
*/
private Long id;
/**
* 景区ID (JSON输出为字符串)
*/
private Long scenicId;
/**
* 景区名称 (从景区服务获取)
*/
private String scenicName;
/**
* 设备名称
*/
private String name;
/**
* 设备标识
*/
private String ident;
/**
* 数据库状态
*/
private Integer status;
/**
* 心跳时间 (格式: yyyy-MM-dd HH:mm:ss)
*/
private String keepaliveAt;
/**
* 在线状态: 1=在线, 0=离线
* 判断逻辑:5分钟内有心跳则在线
*/
private Integer online;
}