删除旧的规划性文档(01/02/03),替换为基于 viewsh-module-iot 模块 419 个 Java 文件全面分析生成的技术现状文档,覆盖: - 模块架构全景、数据流、存储架构、Redis Key 清单 - 设备接入网关(MQTT/EMQX/HTTP/TCP + 7 种编解码器) - 产品与设备管理(CRUD/状态机/认证/TDengine 双写) - 物模型管理(9 种数据类型体系、TSL、DDL 联动) - 规则引擎(数据转发/场景联动/数据清洗三链路) - 告警与 OTA 升级(状态机、Quartz 调度) - 消息总线与集成事件(Local/Redis/RocketMQ 三实现) - API 契约与枚举汇总(5 Feign 接口、30+ 枚举) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
216 lines
8.5 KiB
Markdown
216 lines
8.5 KiB
Markdown
# 08-API 契约与枚举汇总
|
||
|
||
> 模块路径:`viewsh-module-iot-api` | 服务名:`iot-server` | RPC 前缀:`/rpc-api/iot`
|
||
|
||
---
|
||
|
||
## 一、Feign RPC 接口
|
||
|
||
### 1.1 IotDeviceQueryApi(设备查询)
|
||
|
||
| 方法 | HTTP | URL | 参数 | 返回 |
|
||
|------|------|-----|------|------|
|
||
| `getDeviceSimpleList` | GET | `/device/simple-list` | deviceType?, productId? | `List<IotDeviceSimpleRespDTO>` |
|
||
| `getDevice` | GET | `/device/get` | id | `IotDeviceSimpleRespDTO` |
|
||
| `batchGetDevices` | GET | `/device/batch-get` | ids | `List<IotDeviceSimpleRespDTO>` |
|
||
|
||
### 1.2 IotDeviceControlApi(设备控制)
|
||
|
||
| 方法 | HTTP | URL | 请求体 | 返回 |
|
||
|------|------|-----|--------|------|
|
||
| `invokeService` | POST | `/device/control/invoke-service` | `IotDeviceServiceInvokeReqDTO` | `IotDeviceServiceInvokeRespDTO` |
|
||
| `invokeServiceBatch` | POST | `/device/control/invoke-service-batch` | `List<...ReqDTO>` | `List<...RespDTO>` |
|
||
| `resetTrafficCounter` | POST | `/device/control/reset-traffic-counter` | `ResetTrafficCounterReqDTO` | Boolean |
|
||
|
||
### 1.3 IotDevicePropertyQueryApi(属性查询)
|
||
|
||
| 方法 | HTTP | URL | 参数 | 返回 |
|
||
|------|------|-----|------|------|
|
||
| `getProperty` | GET | `/device/property/get` | deviceId, identifier | `DevicePropertyRespDTO` |
|
||
| `getLatestProperties` | GET | `/device/property/get-latest` | deviceId | `Map<String, Object>` |
|
||
| `batchGetProperties` | POST | `/device/property/batch-get` | `DevicePropertyBatchQueryReqDTO` | `Map<Long, Map<String, Object>>` |
|
||
| `getPropertyHistory` | POST | `/device/property/history` | `DevicePropertyHistoryQueryReqDTO` | `List<DevicePropertyHistoryRespDTO>` |
|
||
|
||
### 1.4 IotDeviceStatusQueryApi(状态查询)
|
||
|
||
| 方法 | HTTP | URL | 参数 | 返回 |
|
||
|------|------|-----|------|------|
|
||
| `isDeviceOnline` | GET | `/device/status/is-online` | deviceId | Boolean |
|
||
| `getDeviceStatus` | GET | `/device/status/get-status` | deviceId | `DeviceStatusRespDTO` |
|
||
| `batchGetDeviceStatus` | GET | `/device/status/batch-get-status` | deviceIds | `List<DeviceStatusRespDTO>` |
|
||
|
||
### 1.5 TrajectoryStateApi(轨迹状态)
|
||
|
||
| 方法 | HTTP | URL | 参数 | 返回 |
|
||
|------|------|-----|------|------|
|
||
| `getCurrentLocation` | GET | `/trajectory/current-location` | deviceId | `DeviceLocationDTO` |
|
||
|
||
---
|
||
|
||
## 二、DTO 汇总
|
||
|
||
### 2.1 IotDeviceSimpleRespDTO
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `id` | Long | 设备 ID |
|
||
| `deviceName` | String | 设备名称 |
|
||
| `productId` | Long | 产品 ID |
|
||
| `productKey` | String | 产品标识 |
|
||
| `productName` | String | 产品名称 |
|
||
| `nickname` | String | 备注名 |
|
||
| `serialNumber` | String | 序列号 |
|
||
| `state` | Integer | 0=未激活, 1=在线, 2=离线 |
|
||
| `deviceType` | Integer | 设备类型 |
|
||
|
||
### 2.2 IotDeviceServiceInvokeReqDTO
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| `deviceId` | Long | 是 | 目标设备 |
|
||
| `identifier` | String | 是 | 服务标识 |
|
||
| `params` | Map\<String, Object\> | 否 | 服务参数 |
|
||
| `timeoutSeconds` | Integer | 否 | 超时秒数(默认 30) |
|
||
|
||
### 2.3 IotDeviceServiceInvokeRespDTO
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `messageId` | String | 消息追踪 ID |
|
||
| `success` | Boolean | 是否成功 |
|
||
| `data` | Object | 响应数据 |
|
||
| `code` | Integer | 错误码 |
|
||
| `errorMsg` | String | 错误信息 |
|
||
| `responseTime` | LocalDateTime | 响应时间 |
|
||
|
||
### 2.4 DevicePropertyRespDTO
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `identifier` | String | 属性标识 |
|
||
| `value` | Object | 当前值(动态类型) |
|
||
| `updateTime` | Long | 更新时间戳(ms) |
|
||
|
||
### 2.5 DevicePropertyBatchQueryReqDTO
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| `deviceIds` | List\<Long\> | 是 | 设备 ID 列表 |
|
||
| `identifiers` | List\<String\> | 否 | 属性标识列表(空=全部) |
|
||
|
||
### 2.6 DevicePropertyHistoryQueryReqDTO
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| `deviceId` | Long | 是 | 设备 ID |
|
||
| `identifier` | String | 是 | 属性标识 |
|
||
| `startTime` | LocalDateTime | 否 | 起始时间 |
|
||
| `endTime` | LocalDateTime | 否 | 截止时间 |
|
||
| `limit` | Integer | 否 | 最大条数(1-1000,默认 100) |
|
||
|
||
### 2.7 DeviceStatusRespDTO
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `deviceId` | Long | 设备 ID |
|
||
| `deviceCode` | String | 设备编码 |
|
||
| `status` | Integer | 0/1/2 |
|
||
| `statusChangeTime` | LocalDateTime | 状态变更时间 |
|
||
|
||
### 2.8 DeviceLocationDTO
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `deviceId` | Long | 设备 ID |
|
||
| `areaId` | Long | 区域 ID |
|
||
| `enterTime` | Long | 进入时间戳(ms) |
|
||
| `beaconMac` | String | Beacon MAC |
|
||
| `inArea` | Boolean | 是否在区域内 |
|
||
|
||
### 2.9 ResetTrafficCounterReqDTO
|
||
|
||
| 字段 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| `deviceId` | Long | 是 | 设备 ID |
|
||
| `newBaseValue` | Long | 否 | @Deprecated 已废弃 |
|
||
| `orderId` | Long | 否 | 关联工单 ID |
|
||
| `remark` | String | 否 | 操作说明 |
|
||
|
||
---
|
||
|
||
## 三、全量枚举汇总
|
||
|
||
### 3.1 产品枚举
|
||
|
||
| 枚举 | 值 | 说明 |
|
||
|------|----|------|
|
||
| **IotProductStatusEnum** | UNPUBLISHED(0), PUBLISHED(1) | 产品状态 |
|
||
| **IotProductDeviceTypeEnum** | DIRECT(0), GATEWAY_SUB(1), GATEWAY(2) | 设备拓扑类型 |
|
||
| **IotNetTypeEnum** | WIFI(0), CELLULAR(1), ETHERNET(2), OTHER(3) | 联网方式 |
|
||
| **IotLocationTypeEnum** | IP(1), DEVICE(2), MANUAL(3) | 定位方式 |
|
||
|
||
### 3.2 设备枚举
|
||
|
||
| 枚举 | 值 | 说明 |
|
||
|------|----|------|
|
||
| **IotDeviceStateEnum** | INACTIVE(0), ONLINE(1), OFFLINE(2) | 设备状态 |
|
||
|
||
### 3.3 物模型枚举
|
||
|
||
| 枚举 | 值 | 说明 |
|
||
|------|----|------|
|
||
| **IotThingModelTypeEnum** | PROPERTY(1), SERVICE(2), EVENT(3) | 功能类型 |
|
||
| **IotDataSpecsDataTypeEnum** | int, float, double, enum, bool, text, date, struct, array | 数据类型 |
|
||
| **IotThingModelAccessModeEnum** | READ_ONLY("r"), READ_WRITE("rw") | 访问模式 |
|
||
| **IotThingModelServiceCallTypeEnum** | ASYNC("async"), SYNC("sync") | 服务调用类型 |
|
||
| **IotThingModelServiceEventTypeEnum** | INFO("info"), ALERT("alert"), ERROR("error") | 事件级别 |
|
||
| **IotThingModelParamDirectionEnum** | INPUT("input"), OUTPUT("output") | 参数方向 |
|
||
|
||
### 3.4 OTA 枚举
|
||
|
||
| 枚举 | 值 | 说明 |
|
||
|------|----|------|
|
||
| **IotOtaTaskStatusEnum** | IN_PROGRESS(10), END(20), CANCELED(30) | 任务状态 |
|
||
| **IotOtaTaskRecordStatusEnum** | PENDING(0), PUSHED(10), UPGRADING(20), SUCCESS(30), FAILURE(40), CANCELED(50) | 记录状态 |
|
||
| **IotOtaTaskDeviceScopeEnum** | ALL(1), SELECT(2) | 设备范围 |
|
||
|
||
### 3.5 告警枚举
|
||
|
||
| 枚举 | 值 | 说明 |
|
||
|------|----|------|
|
||
| **IotAlertReceiveTypeEnum** | SMS(1), MAIL(2), NOTIFY(3) | 通知方式 |
|
||
|
||
### 3.6 规则引擎枚举
|
||
|
||
| 枚举 | 值 | 说明 |
|
||
|------|----|------|
|
||
| **IotDataSinkTypeEnum** | HTTP(1), TCP(2), WS(3), MQTT(10), DB(20), Redis(21), RocketMQ(30), RabbitMQ(31), Kafka(32) | 数据目的类型 |
|
||
| **IotRedisDataStructureEnum** | STREAM(1), HASH(2), LIST(3), SET(4), ZSET(5), STRING(6) | Redis 结构 |
|
||
| **IotSceneRuleTriggerTypeEnum** | STATE(1), PROPERTY(2), EVENT(3), SERVICE(4), TIMER(100) | 触发类型 |
|
||
| **IotSceneRuleConditionTypeEnum** | DEVICE_STATE(1), DEVICE_PROPERTY(2), CURRENT_TIME(100) | 条件类型 |
|
||
| **IotSceneRuleConditionOperatorEnum** | =, !=, >, >=, <, <=, in, not in, between, like, not null, time_>, time_<, ... | 操作符 |
|
||
| **IotSceneRuleActionTypeEnum** | PROPERTY_SET(1), SERVICE_INVOKE(2), ALERT_TRIGGER(100), ALERT_RECOVER(101) | 动作类型 |
|
||
|
||
### 3.7 Core 层枚举
|
||
|
||
| 枚举 | 值 | 说明 |
|
||
|------|----|------|
|
||
| **IotAuthTypeEnum** | SECRET, PRODUCT_SECRET, DYNAMIC, NONE | 认证类型 |
|
||
| **IotDeviceMessageMethodEnum** | thing.state.update, thing.property.post/set, thing.event.post, thing.service.invoke, thing.config.push, thing.ota.upgrade/progress | 消息方法 |
|
||
| **IotDeviceMessageTypeEnum** | state, event, service, config, ota, register, topology | 消息类型 |
|
||
|
||
### 3.8 字典类型常量
|
||
|
||
| 常量 | 字典值 | 说明 |
|
||
|------|--------|------|
|
||
| NET_TYPE | `iot_net_type` | 联网方式 |
|
||
| LOCATION_TYPE | `iot_location_type` | 定位方式 |
|
||
| CODEC_TYPE | `iot_codec_type` | 编解码类型 |
|
||
| PRODUCT_STATUS | `iot_product_status` | 产品状态 |
|
||
| PRODUCT_DEVICE_TYPE | `iot_product_device_type` | 产品设备类型 |
|
||
| DEVICE_STATE | `iot_device_state` | 设备状态 |
|
||
| ALERT_LEVEL | `iot_alert_level` | 告警级别 |
|
||
| OTA_TASK_DEVICE_SCOPE | `iot_ota_task_device_scope` | OTA 设备范围 |
|
||
| OTA_TASK_STATUS | `iot_ota_task_status` | OTA 任务状态 |
|
||
| OTA_TASK_RECORD_STATUS | `iot_ota_task_record_status` | OTA 记录状态 |
|