fastbee/CLAUDE.md
2026-03-21 17:27:38 +08:00

9.3 KiB
Raw Permalink Blame History

CLAUDE.md

本文件为 Claude Code (claude.ai/code) 在此代码库中工作时提供指导。

项目概述

FastBee 是一个基于若依框架构建的物联网平台(v3.8.5)。后端为多模块 Spring Boot 应用,前端包含三个独立应用。所有 Java 包名使用 com.fastbee。

构建命令

后端(Java/Maven)

# 构建所有模块
mvn clean package

# 跳过测试构建
mvn clean package -DskipTests

# 构建指定模块
mvn clean package -pl fastbee-admin -am -DskipTests

可运行的 JAR 文件生成在 fastbee-admin/target/。通过 fastbee.sh start|stop|restart|status 启动/停止服务。

前端 - yack-web(Vue 2,管理后台)

cd yack-web
npm install
npm run dev          # 开发服务器(代理到 localhost:8080)
npm run build:prod   # 生产环境构建
npm run lint         # ESLint 代码检查

前端 - yack-view(Vue 3 + Vite,低代码可视化)

cd yack-view
npm install
npm run dev          # Vite 开发服务器
npm run build        # 生产环境构建
npm run lint         # ESLint 代码检查
# 或使用 Makefile:
make dev
make dist

前端 - yack-app(UniApp 移动端)

cd yack-app
npm install
# 通过 HBuilderX 或 uni-app CLI 构建

架构说明

后端模块结构

fastbee-admin/          # Spring Boot 入口(端口 8080),Web 层
fastbee-framework/      # 安全配置、拦截器、核心框架装配
fastbee-common/         # 公共工具类、领域模型、注解、常量
fastbee-open-api/       # REST API 控制器(对外暴露的接口)
fastbee-service/
  fastbee-iot-service/  # IoT 业务逻辑(设备、产品、规则)
  fastbee-system-service/ # 系统管理(用户、角色、菜单)
fastbee-server/         # 基于 Netty 的协议服务器
  base-server/          # 抽象服务器基类
  iot-server-core/      # IoT 服务器核心逻辑,消息分发
  mqtt-broker/          # 内嵌 MQTT Broker(EMQX 的替代方案)
  http-server/          # HTTP 设备接入服务器(端口 8081)
  tcp-server/           # TCP 服务器(端口 8888)
  coap-server/          # CoAP 服务器(端口 5683)
  sip-server/           # SIP 服务器
  boot-strap/           # 服务器启动引导
fastbee-protocol/       # 协议编解码
  base/                 # 协议抽象层
  collect/              # 数据采集协议实现
fastbee-iot-data/       # IoT 时序数据存储(支持 TDengine)
fastbee-mq/             # RocketMQ 消息队列集成
fastbee-notify/         # 多渠道通知系统
fastbee-record/         # 设备数据记录/持久化
fastbee-plugs/
  generator/            # 代码生成器(Velocity 模板)
  quartz/               # 定时任务管理
  ruleEngine/           # LiteFlow 规则引擎(IoT 场景自动化)
  oss/                  # 对象存储(S3/阿里云 OSS)
  mqtt-client/          # MQTT 客户端插件
  oauth/                # OAuth 2.0(JustAuth)
  pay/                  # 支付集成
  http/                 # Forest HTTP 客户端配置

关键架构模式

数据流(设备 → 平台): 设备 → 协议服务器(Netty,端口因协议而异)→ iot-server-core 消息分发器 → RocketMQ → fastbee-record 持久化 → MySQL/TDengine。实时推送通过 WebSocket 发送至前端。

MQTT Broker 模式: 通过 server.broker.enabled 配置 — true 使用内嵌 Netty Broker(端口 1883/8083);false 使用外部 EMQX Broker。

规则引擎: LiteFlow 规则链存储在 iot_scene 表,脚本存储在 iot_script 表。规则在启动时从数据库加载,支持可选的轮询刷新机制。

多数据源: 动态数据源(主 MySQL + 可选 TDengine taos 数据源)。TDengine 默认禁用(enabled: false)。

认证方式: 通过 Authorization 请求头传递 JWT Token。Token 配置在 application.yml 的 token: 节点下。

API 文档: 服务运行时可通过 /swagger-ui/index.html 访问 Swagger/OpenAPI 文档。

前端架构

  • yack-web:Vue 2 + Element UI + Vuex + Vue Router。管理后台,消费后端 REST API。vue.config.js 中的代理配置指向 localhost:8080。
  • yack-view:Vue 3 + TypeScript + Vite + Naive UI + Pinia。独立的低代码可视化设计器(基于 GoView)。单独部署,通常挂载在 Nginx 的 /view/ 路径下。
  • yack-app:UniApp(Vue 2 语法)iOS/Android 移动端,通过 MQTT.js 和 HTTP 与平台通信。

运行时配置

application-dev.yml 关键配置:

  • MySQL:localhost:3306/fastbee,用户名 root,密码 fastbee
  • Redis:在 application-dev.yml 中单独配置(Redisson 单节点模式)
  • 激活的 Profile 在 application.yml 中设置:spring.profiles.active: prod(本地开发时改为 dev)

本地开发请切换至 dev profile —— prod profile 需要生产环境基础设施支持。

数据库

SQL 初始化脚本位于 sql/ 目录。主数据库:fastbee。最新完整脚本:sql/yack-20260316.sql(共 117 张表)。

数据库通用约定

  • 多租户:大多数 IoT 表含 tenant_id / tenant_name 字段
  • 审计字段:create_by、create_time、update_by、update_time
  • 软删除:del_flag(0=正常,2=删除)
  • 国际化:单独的 *_translate 表存储多语言翻译
  • 复杂数据:物模型、配置等使用 JSON 列存储

主要表分类

告警监控:iot_alert(告警定义)、iot_alert_log(告警历史)、iot_alert_notify_template、iot_alert_scene、iot_device_alert_user

设备管理:iot_device(设备注册表)、iot_device_group、iot_device_record(导入/分配/回收历史)、iot_device_share(设备共享权限)、iot_device_user(设备归属)、iot_keep_user(运维人员)

产品管理:iot_product(产品定义)、iot_category(产品分类,层级结构)、iot_things_model(物模型,1380+ 条)、iot_things_model_template(物模型模板)、iot_product_authorize(授权码)

网关与子设备:iot_sub_gateway(网关-子设备关系)、iot_product_sub_gateway(产品级网关-子产品映射)

Modbus 配置:iot_modbus_config、iot_modbus_job(轮询任务)、iot_modbus_params(产品级参数模板)、iot_product_modbus_job、iot_var_temp(采集变量模板)、iot_var_temp_salve

规则引擎:iot_scene(场景自动化,LiteFlow 规则链)、iot_script(规则脚本)、bridge(数据桥接端点:HTTP/MQTT/数据库)、iot_script_bridge、iot_device_job(设备定时任务)

场景编排:scene_model(场景管理)、scene_model_data(数据源绑定)、scene_model_device、scene_model_tag(输入变量)、scene_tag_points(计算变量)、iot_scene_device、iot_scene_script

数据日志:iot_device_log(设备事件日志)、iot_event_log、iot_function_log(服务调用日志)、iot_device_air_log(Air780 上报)、iot_simulate_log(模拟设备日志)

固件升级:iot_firmware(固件版本)、iot_firmware_task(升级任务)、iot_firmware_task_detail(逐设备状态跟踪)

SCADA 与可视化:iot_goview_project(GoView 可视化项目)、iot_goview_project_data、scada(SCADA 页面)、scada_component(UI 组件)、scada_device_bind(组件-设备绑定)、scada_echart、scada_gallery(图标库,3896+ 条)、scada_model(3D 模型)

SIP 与媒体:sip_device(摄像头/录像机)、sip_device_channel、sip_config、iot_sip_relation、media_server(流媒体服务器)

OAuth 与认证:oauth_client_details(支持 DuerOS/AliGenie/小米)、oauth_access_token、oauth_refresh_token、oauth_approvals、oauth_code、sys_auth_user(第三方登录)

通知系统:notify_channel(邮件/短信等渠道)、notify_template(消息模板)、notify_log(发送历史)

系统管理(若依 RBAC):sys_user、sys_role、sys_menu(3430+ 菜单项)、sys_dept(117+ 部门)、sys_post、sys_user_role、sys_role_menu、sys_role_dept、sys_config、sys_dict_type(166+ 类型)、sys_dict_data(738+ 条)、sys_oper_log、sys_logininfor、sys_job、sys_job_log、sys_notice、sys_client、sys_user_relation

定时任务(Quartz):qrtz_job_details、qrtz_triggers、qrtz_cron_triggers、qrtz_simple_triggers、qrtz_fired_triggers、qrtz_scheduler_state、qrtz_locks 等共 11 张表

对象存储:oss_config(S3/阿里云 OSS 配置)、oss_detail(文件上传历史)

代码生成:gen_table、gen_table_column

其他:iot_group(设备分组)、iot_protocol(支持的通信协议)、iot_social_platform(第三方登录平台)、app_language(4 种语言)、app_preferences(用户偏好)、command_preferences(指令预设模板,120+)、order_control(指令权限控制)、news/news_category(新闻资讯)

代码生成

代码生成器模块(fastbee-plugs/generator)使用 Velocity 模板生成 Java + Vue 的 CRUD 脚手架代码。模板位于 fastbee-plugs/generator/src/main/resources/vm/。