package com.yixiong.iot.model; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; /** * 设备详情 / 设备列表项的数据结构 * 字段对应 OneNET 平台 /device/detail 接口返回的 data 节点, * 同时兼容 /device/list 列表项(列表仅返回部分字段,缺失字段为 null)。 */ @Data public class DeviceItem { /** 设备 ID(平台返回 int/string,统一用 String 接收,避免前端 Long 精度丢失) */ private String did; /** 产品 ID */ private String pid; /** 接入协议,取值见 OneNET 接入协议取值说明表(如 51) */ @JsonProperty("access_pt") private Integer accessPt; /** 数据协议,取值见 OneNET 数据协议取值说明表 */ @JsonProperty("data_pt") private Integer dataPt; /** 设备名称 */ private String name; /** 设备描述 */ private String desc; /** 设备鉴权信息 */ @JsonProperty("auth_info") private String authInfo; /** * 设备状态 * 0-离线;1-在线;2-未激活 */ private Integer status; /** 设备创建时间 */ @JsonProperty("create_time") private String createTime; /** 设备激活时间 */ @JsonProperty("activate_time") private String activateTime; /** 设备最后一次在线时间 */ @JsonProperty("last_time") private String lastTime; /** 设备接入鉴权 key */ @JsonProperty("sec_key") private String secKey; /** LwM2M 设备 IMEI */ private String imei; /** LwM2M 设备 IMSI */ private String imsi; /** LwM2M 设备 PSK */ private String psk; /** LwM2M 设备 auth_code */ @JsonProperty("auth_code") private String authCode; /** * 产品智能化方式 * 1-设备接入;2-产品智能化 */ @JsonProperty("intelligent_way") private Integer intelligentWay; /** 设备分组 ID */ @JsonProperty("group_id") private String groupId; /** 设备启用状态 */ @JsonProperty("enable_status") private Boolean enableStatus; /** 设备标签列表 */ private List tags; /** 经度(注意:平台返回小写 lon,勿用大写注解) */ @JsonProperty("lon") private String lon; /** 纬度(注意:平台返回小写 lat,勿用大写注解) */ @JsonProperty("lat") private String lat; /** 设备芯片信息 */ private Integer chip; /** 设备资源自动订阅是否启用 */ private Boolean obsv; /** 设备资源自动订阅状态 */ @JsonProperty("obsv_st") private Boolean obsvSt; /** 设备私密性 */ @JsonProperty("private") private Boolean privateFlag; /** 设备 IMSI 历史变更记录 */ @JsonProperty("imsi_old") private List imsiOld; /** 设备 IMSI 最近一次修改时间 */ @JsonProperty("imsi_mt") private String imsiMt; // ===== 视联网设备字段 ===== /** 视频设备编码,视联网设备返回 */ @JsonProperty("viot_device_sn") private String viotDeviceSn; /** * 视频设备接入协议,视联网设备返回 * 1-GB28181 协议;2-千里眼协议 */ @JsonProperty("viot_protocol") private Integer viotProtocol; /** * 视频设备类型,视联网设备返回 * 1-IPC;2-NVR */ @JsonProperty("viot_device_type") private Integer viotDeviceType; // ===== 视联网国标协议(GB28181)设备字段 ===== /** SIP 服务器 ID,国标摄像头设备返回 */ @JsonProperty("viot_sip_server_id") private String viotSipServerId; /** SIP 服务器域,国标摄像头设备返回 */ @JsonProperty("viot_sip_server_domain") private String viotSipServerDomain; /** SIP 服务器 IP,国标摄像头设备返回 */ @JsonProperty("viot_sip_server_ip") private String viotSipServerIp; /** SIP 服务器端口,国标摄像头设备返回 */ @JsonProperty("viot_sip_server_port") private String viotSipServerPort; /** 登录用户名,国标摄像头设备返回 */ @JsonProperty("viot_login_name") private String viotLoginName; /** 登录密码,国标摄像头设备返回 */ @JsonProperty("viot_login_pwd") private String viotLoginPwd; // ===== 视联网千里眼协议设备字段 ===== /** 设备 modelId,如:cmiot_E4702_002 */ @JsonProperty("viot_module_id") private String viotModuleId; /** 软件版本,如:2.860.20250512 */ @JsonProperty("viot_camera_app_version") private String viotCameraAppVersion; /** 固件版本,如:2.860.20250512 */ @JsonProperty("viot_firmware_version") private String viotFirmwareVersion; /** 千里眼设备 imei(cmei),如:119094672043670 */ @JsonProperty("viot_imei") private String viotImei; // ===== 机卡协同设备上报字段(设备上报后返回) ===== /** 设备上报的 iccid,如:898604310000000000 */ @JsonProperty("up_iccid") private String upIccid; /** 设备上报的 msisdn,如:+8613800000000 */ @JsonProperty("up_msisdn") private String upMsisdn; /** 设备上报的 sn */ @JsonProperty("up_sn") private String upSn; /** 设备上报的 imei,如:119094672043670 */ @JsonProperty("up_imei") private String upImei; /** 设备上报的 imsi,如:460010000000000 */ @JsonProperty("up_imsi") private String upImsi; /** 设备上报的 mac,如:08:00:27:01:02:03 */ @JsonProperty("up_mac") private String upMac; /** * 设备上报的网络类型 * 0-非蜂窝网;1-移动;2-电信;3-联通;4-广电 */ @JsonProperty("up_network") private Integer upNetwork; }