系统管理
系统管理
FastBee 基于 若依(RuoYi-Vue) 权限框架构建,采用 Spring Boot + Spring Security + MyBatis + Vue + Element UI 技术栈,提供完善的用户权限与系统管理功能。本文结合 FastBee 物联网平台的实际使用场景,介绍各管理模块的配置方法。
权限框架概述
RuoYi-Vue 的权限体系由三部分组成:
| 层次 | 机制 | 说明 |
|---|---|---|
| 认证层 | Spring Security + JWT | 用户登录后颁发 JWT Token,后续请求携带 Token 验证身份 |
| 菜单权限 | @PreAuthorize + v-hasPermi | 后端接口级校验 + 前端按钮级控制 |
| 数据权限 | @DataScope 注解 | 控制用户可查看的数据范围(全部/本部门/仅本人等) |
后端权限校验
每个菜单/按钮对应一个权限标识(如 iot:device:list),后端通过 @PreAuthorize 注解进行接口级校验:
@PreAuthorize("@ss.hasPermi('iot:device:list')")
public TableDataInfo list(Device device) { ... }前端权限控制
前端通过 v-hasPermi 指令控制按钮的显示和隐藏:
<el-button v-hasPermi="['iot:device:add']">新增</el-button>
<el-button v-hasPermi="['iot:device:edit']">修改</el-button>
<el-button v-hasPermi="['iot:device:remove']">删除</el-button>用户管理
管理系统中的所有用户账号,包括平台管理员、运维人员和终端用户。
- 创建/编辑/删除用户,分配角色和部门
- 重置密码、锁定/解锁账号
- 设置用户状态(正常/停用)
- 分配用户到指定机构(多租户场景)
FastBee 场景
- 管理员:拥有全部权限,可管理所有产品和设备
- 运维人员:可查看设备状态、处理告警,但无法管理系统配置
- 终端用户:仅可查看和操作自己名下的设备
角色管理
定义角色及其对应的菜单权限和数据权限。
菜单权限
为角色勾选可访问的菜单和操作按钮。FastBee 预置了常用角色:
| 角色 | 说明 |
|---|---|
| 超级管理员 | 拥有所有权限,不受约束 |
| 普通角色 | 可自定义菜单和数据权限范围 |
角色可以分配给多个用户,一个用户也可以拥有多个角色。
数据权限
控制角色只能查看特定范围的数据:
| 数据权限类型 | 说明 |
|---|---|
| 全部数据权限 | 可查看所有数据 |
| 自定义数据权限 | 自定义指定部门的数据 |
| 部门数据权限 | 仅查看本部门数据 |
| 部门及以下数据权限 | 查看本部门及所有下级部门数据 |
| 仅本人数据权限 | 仅查看自己创建的数据 |
FastBee 场景
通过数据权限可以实现:运维人员只负责自己区域的设备,终端用户只能看到自己绑定的设备数据。
部门管理
树形组织结构,支持多级部门/机构。
- 创建公司 → 部门 → 小组的层级结构
- 部门与用户关联,用户归属于某个部门
- 数据权限以部门为基础维度进行控制
岗位管理
定义用户的职务岗位,如管理员、运维工程师、项目经理、普通用户等。
- 一个用户可以拥有多个岗位
- 岗位用于人员分类和统计
菜单管理
管理系统菜单、操作权限和按钮权限标识。菜单分为三种类型:
| 类型 | 说明 | 示例 |
|---|---|---|
| 目录(M) | 一级导航菜单 | 物联网、系统管理 |
| 菜单(C) | 功能页面 | 产品管理、设备管理 |
| 按钮(F) | 页面内操作权限 | 新增、修改、删除、导出、查询 |
每个菜单/按钮对应唯一的权限标识(如 iot:product:add),在角色管理中勾选即可分配权限。
FastBee 常用权限标识
| 模块 | 权限标识 | 说明 |
|---|---|---|
| 产品管理 | iot:product:list/add/edit/remove | 产品 CRUD |
| 设备管理 | iot:device:list/add/edit/remove | 设备 CRUD |
| 物模型 | iot:model:list/add/edit/remove | 物模型 CRUD |
| 告警管理 | iot:alert:list/add/edit/remove | 告警 CRUD |
| 规则引擎 | iot:rules:list/add/edit/remove | 规则 CRUD |
字典管理
维护系统中固定的下拉选项和枚举值,避免硬编码。
FastBee 中常用的字典类型:
| 字典类型 | 说明 | 示例值 |
|---|---|---|
| iot_product_status | 产品状态 | 未发布、已发布 |
| iot_device_status | 设备状态 | 在线、离线、已禁用 |
| iot_auth_type | 认证类型 | 简单认证、加密认证 |
| iot_protocol_type | 通讯协议 | MQTT、Modbus、TCP、CoAP、HTTP |
| iot_data_type | 物模型数据类型 | 整数、小数、字符串、布尔、枚举 |
| iot_device_type | 设备类型 | 直连设备、网关设备、子设备 |
| iot_formula_type | 物模型计算公式 | 不转换、原始值、自定义公式 |
提示
新增 IoT 业务模块时,建议先在字典管理中定义好相关的字典类型,前后端通过字典接口动态获取,便于统一维护。
参数设置
管理系统全局配置参数:
- 用户管理:账号自助注册开关、初始默认密码、密码长度范围
- 登录策略:验证码开关、登录失败锁定次数和锁定时间
- 会话管理:Token 有效期、并发登录控制
- 其他:文件上传大小限制、系统名称和 Logo 等
操作日志
记录系统中所有操作行为,便于审计追踪和问题排查。
- 记录操作模块、操作类型、操作人员、操作时间
- 记录请求参数和返回结果
- 支持按模块、操作类型、操作状态、时间范围筛选
- 标记操作结果(成功/失败)
FastBee 场景
- 追溯谁在什么时间修改了产品物模型
- 查看谁执行了设备指令下发操作
- 排查设备配置变更历史
登录日志
记录所有用户的登录行为:
- 登录 IP、浏览器、操作系统信息
- 登录状态(成功/失败)
- 失败原因(密码错误、账号锁定、验证码错误等)
在线用户
实时查看当前在线的系统用户:
- 查看用户登录 IP、登录时间
- 支持强退指定用户的会话(用于紧急安全场景)
系统监控
服务监控
- CPU 使用率、内存占用
- JVM 堆内存、线程信息
- 磁盘使用情况和 GC 统计
缓存监控
- Redis 缓存信息、键值统计
- 缓存命令执行统计
- 缓存命中率分析
连接池监控
- 数据库连接池状态
- 活跃连接数和空闲连接数
- SQL 执行统计分析
通知公告
发布系统通知和公告信息:
| 类型 | 说明 | 场景 |
|---|---|---|
| 通知 | 普通消息 | 系统升级通知、功能变更说明 |
| 公告 | 重要消息 | 平台维护公告、服务暂停通知 |
定时任务
在线管理定时任务调度,无需修改代码或重启服务:
- 添加/修改/删除定时任务
- 支持 Cron 表达式配置执行时间
- 查看任务执行结果和日志
- 支持立即执行、暂停/恢复任务
FastBee 场景
- 定时清理过期设备日志
- 定时检查设备在线状态并触发告警
- 定时生成统计报表
代码生成(开发工具)
根据数据库表结构自动生成前后端代码,大幅提升 IoT 业务模块开发效率:
- 生成 Java Entity、Mapper、Service、Controller
- 生成 Vue 页面(列表、表单、详情)
- 生成 SQL 菜单脚本
- 支持单表、树表、主子表等多种模板
提示
代码生成后可根据业务需求进行二次修改,适合快速搭建 CRUD 类 IoT 业务模块。
系统接口
基于 Swagger 自动生成 REST API 文档,方便前后端联调和第三方集成。访问地址:http://服务器IP/swagger-ui.html。
