拓冰建站拓冰建站
首页 / 资讯中心 / 正文

设备管理注册心跳远程指令屏幕是怎么活起来的

上篇搞定了权限体系。这篇开始做第一个业务模块——设备管理。设备是整个系统的第一环。没有设备注册进来后面素材、节目、统计都无从谈起。设备有哪些属性回到之前画的表结构CREATETABLEt_device(idBIGINTPRIMARYKEY,device_noVARCHAR(50)NOTNULL,-- 设备编号唯一nameVARCHAR(100)NOTNULL,-- 设备名称modelVARCHAR(50),-- double_side/stand/wallgroup_idBIGINT,-- 所属分组resolutionVARCHAR(20)DEFAULT1920x1080,layout_templateVARCHAR(50)DEFAULTsingle,-- 分屏布局statusVARCHAR(20)DEFAULToffline,-- online/offline/errorip_addressVARCHAR(50),last_heartbeatDATETIME,...);每个字段都有它的来由device_no设备唯一编号相当于身份证。心跳上报和节目下发都靠它model双面屏、立式屏、壁挂屏——不同型号播放器适配不同layout_template单屏、左右分屏、上下分屏、三区——影响素材怎么排status不在线的设备不发节目避免浪费流量last_heartbeat判断在线的依据——超过 5 分钟没心跳就算离线设备分组的取舍要不要做设备分组我想了想——如果只有三五台设备分组是多余的。但如果一个客户有 20 家门店每家店 2 块屏40 台设备不分组根本管不过来。所以我做了分组但做得极简t_device_group就三个字段——名称、描述、创建更新时间。不搞嵌套分组不搞继承关系一级分组够用。心跳机制设备怎么上报心跳一条 POST 请求POST /api/v1/devices/{deviceNo}/heartbeat后端更新last_heartbeat时间。前端列表页根据心跳判断在线状态5 分钟内有心跳 → 在线超过 5 分钟 → ⚪ 离线超过 30 分钟且之前在线 → 异常这个接口是公开的——不需要登录。设备端播放器没有用户概念它只管上报。远程指令有时候需要远程操作设备——重启、关机、调音量、调亮度。这些叫指令PostMapping(/{id}/command)RequirePermission(device:command)publicApiResultVoidsendCommand(PathVariableLongid,RequestBodyCommandDTOdto){deviceService.sendCommand(id,dto);returnApiResult.success();}指令发出去后状态流转是pending → sent → success/failed设备下次心跳时拉取待执行指令执行完上报结果。不是实时的——但够用了。Controller 全貌50 个 Java 文件里DeviceController 是最大的一个GET /api/v1/devices → 列表分页 搜索 POST /api/v1/devices → 新增设备 GET /api/v1/devices/{id} → 设备详情 PUT /api/v1/devices/{id} → 编辑设备 DELETE /api/v1/devices/{id} → 删除设备 GET /api/v1/devices/{id}/commands → 指令历史 POST /api/v1/devices/{id}/command → 发送指令 GET /api/v1/devices/groups → 分组列表 POST /api/v1/devices/groups → 新建分组 DELETE /api/v1/devices/groups/{id} → 删除分组 GET /api/v1/devices/{deviceNo}/current-program → [公开] 拉取当前节目 POST /api/v1/devices/{deviceNo}/heartbeat → [公开] 心跳上报 POST /api/v1/devices/{deviceNo}/play-log → [公开] 播放日志认证接口 6 个公开接口 3 个。每个认证接口都标了RequirePermission——viewer 只能看列表operator 能增能改admin 能删。到这里设备管理模块就完成了。设备能注册、有心跳、能分组、能远程发命令。下篇做素材管理——上传图片视频、分类管理。素材是整个系统里文件最多的模块。关于作者无羡独立开发者全栈工程师专注 AI 应用与微服务架构。 分类技术复盘 个人博客 — 更多技术文章✨ 开发者福利整理 — 云服务资源汇总 软件工坊 — 我的技术分享 个人门户 — 独立开发作品全集
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门