产品管理
这篇解决什么
产品行落哪张表、协议和设备类型写哪几个字段。读完能对上 iot_product + iot_product_category,不要把商城 SPU 或 ERP 产品当物联网产品。
默认端口 48080。先开模块见 IoT 功能设计。物模型见 物模型配置。
示意图:先分类再建产品。物模型和设备都挂 productId / productKey。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 产品 | @RequestMapping("/iot/product") | ruoyi-office/yudao-module-iot/.../product/IotProductController.java |
| 分类 | /iot/product-category | IotProductCategoryController |
| 管理端 | 产品 / 分类页 | ruoyi-office-vben/.../views/iot/product/ |
接口:POST /create、PUT /update、PUT /update-status、DELETE /delete、GET /get、GET /get-by-key、GET /page、GET /simple-list、GET /export-excel。POST /sync-property-table 把已发布产品的属性列同步到 TDengine。
IotProductStatusEnum:0 开发中,1 已发布。IotProductDeviceTypeEnum:0 直连,1 网关子设备,2 网关。IotNetTypeEnum:0 Wi-Fi,1 Cellular,2 Ethernet,3 其他。
protocolType 是字符串,取值见 IotProtocolTypeEnum:mqtt / emqx / http / tcp / udp / websocket / coap / modbus_tcp_client / modbus_tcp_server。serializeType:json 或 binary。
registerEnabled 打开后,设备可用 productSecret 做一型一密注册。关着就只能管理端预创建。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
productKey | 产品标识,设备侧认这个 | IotProductDO |
productSecret | 一型一密签名密钥 | 同上 |
registerEnabled | 是否允许动态注册 | 同上 |
deviceType / protocolType | 直连或网关、走哪条协议 | 同上 |
categoryId | 分类 | IotProductCategoryDO |
和 ERP / 商城产品不是一张表
物联网产品在 iot_product。进销存是 erp_product,商城是 product_spu。协议、物模型、设备密钥只存在 IoT 这张表。
改物模型后要同步时序表
属性列不在 MySQL。/sync-property-table 才把结构推到 TDengine。只改 iot_thing_model 行,设备上报会按旧列对不上。
按本仓库 DO 生成的 ER。
配置与操作
走管理端 产品 / 分类页(views/iot/product/)。先建分类,再 POST /iot/product/create。填 productKey、deviceType(0 直连 / 1 网关子设备 / 2 网关)、protocolType(mqtt / http 等)、serializeType(json 或 binary)。registerEnabled 打开后设备可用 productSecret 做一型一密注册。
PUT /update-status 把 IotProductStatusEnum 从 0 开发中改成 1 已发布。改属性后还要 POST /sync-property-table 才把列推到 TDengine。不要把行写到 erp_product 或 product_spu。

本系统截图:设备接入 → 产品管理(/iot/device/product)。卡片不是表格页。
