Skip to content

接口路径说明 ​

所有接口api/开头,方便反向代理

后台接口api/admin开头,后台权限及菜单设计以这个为主

前台(C端)接口api/web开头

设备接入接口api/iot开头(HTTP 上报/心跳,走设备凭证鉴权,与后台登录态无关;IOT.Enable=false 时不注册)

目录结构 ​

server/
├── app/                              # 应用程序核心代码
│   ├── controller/                   # 控制器层
│   │   ├── admin_ctl/                # 后台管理控制器
│   │   │   ├── common_controller/    #   通用功能
│   │   │   │   ├── album.go          #     相册管理
│   │   │   │   ├── captcha.go        #     验证码
│   │   │   │   ├── ge_tui.go         #     个推推送
│   │   │   │   ├── index.go          #     后台首页统计
│   │   │   │   ├── upload_chunk.go   #     S3 风格分片直传
│   │   │   │   └── upload.go         #     文件上传
│   │   │   ├── fabu_controller/      #   应用发布
│   │   │   │   ├── fabu_app_ctl.go
│   │   │   │   ├── fabu_version_ctl.go
│   │   │   │   └── fabu_wgt_ctl.go
│   │   │   ├── flow_controller/      #   审批流程
│   │   │   │   ├── flow_apply_ctl.go
│   │   │   │   ├── flow_history_ctl.go
│   │   │   │   └── flow_template_ctl.go
│   │   │   ├── generator_controller/ #   代码生成器
│   │   │   │   └── generator.go
│   │   │   ├── iot_controller/       #   IoT 元数据管理
│   │   │   │   ├── product_category.go
│   │   │   │   ├── product.go
│   │   │   │   ├── device_space.go
│   │   │   │   ├── device.go         #     设备(含 state/data/map 回读)
│   │   │   │   ├── alert.go          #     告警历史
│   │   │   │   └── rule_chain.go     #     可视化规则链
│   │   │   ├── monitor_controller/   #   系统监控
│   │   │   │   ├── monitor.go
│   │   │   │   ├── monitor_client_ctl.go
│   │   │   │   ├── monitor_error_ctl.go
│   │   │   │   └── monitor_project_ctl.go
│   │   │   ├── setting_controller/   #   系统设置
│   │   │   │   ├── copyright.go
│   │   │   │   ├── dict_data.go
│   │   │   │   ├── dict_type.go
│   │   │   │   └── website.go
│   │   │   ├── system_controller/    #   系统管理
│   │   │   │   ├── admin.go          #     管理员
│   │   │   │   ├── dept.go           #     部门
│   │   │   │   ├── log.go            #     操作日志
│   │   │   │   ├── login.go          #     登录
│   │   │   │   ├── menu.go           #     菜单
│   │   │   │   ├── notice.go         #     通知
│   │   │   │   ├── post.go           #     岗位
│   │   │   │   └── role.go           #     角色
│   │   │   ├── system_corn_ctl.go    #   定时任务管理
│   │   │   ├── user_ctl.go           #   后台侧 C 端用户管理
│   │   │   └── user_protocol_ctl.go  #   用户协议
│   │   ├── iot_ctl/                  # 设备侧接入控制器
│   │   │   └── http_gateway.go       #   HTTP 上报/心跳网关(组信封投递队列)
│   │   ├── web_ctl/                  # 前台(C端)接口控制器
│   │   │   ├── auth_controller.go    #   绑定/解绑(手机、邮箱、微信)
│   │   │   ├── fabu_controller.go    #   应用发布(App 检查更新/下载)
│   │   │   └── user_controller.go    #   注册/登录/手机验证码/密码重置
│   │   └── ws.go                     # WebSocket 升级处理器
│   │
│   ├── service/                      # 服务层(业务逻辑)
│   │   ├── common_service/           #   通用服务
│   │   │   ├── album_service.go      #     相册管理
│   │   │   ├── captcha_service.go    #     验证码
│   │   │   ├── file_hash_service.go  #     文件哈希(秒传)
│   │   │   ├── ge_tui_service.go     #     个推推送(批量 CID + token 两级缓存)
│   │   │   ├── index_service.go      #     首页统计
│   │   │   └── upload_service.go     #     文件上传
│   │   ├── corn_service/             #   定时任务服务
│   │   │   ├── system_corn_service.go
│   │   │   └── task.go               #     Task 结构定义
│   │   ├── fabu_service/             #   应用发布服务
│   │   │   ├── fabu_app_service.go
│   │   │   ├── fabu_plist_service.go
│   │   │   ├── fabu_version_service.go
│   │   │   └── fabu_wgt_service.go
│   │   ├── flow_service/             #   审批流程服务
│   │   │   ├── flow_apply_service.go
│   │   │   ├── flow_history_service.go
│   │   │   └── flow_template_service.go
│   │   ├── generator_service/        #   代码生成器服务
│   │   │   ├── generator_service.go
│   │   │   └── tpl_utils/            #     模板工具(constants/tpl/utils + templates 下 gocode·vue·uniapp 三类 .tpl)
│   │   ├── iot_service/              #   IoT 元数据与处理流水线
│   │   │   ├── product_category_service.go
│   │   │   ├── product_service.go    #     产品(物模型/规则链缓存 CachedProductModel)
│   │   │   ├── device_space_service.go
│   │   │   ├── device_service.go     #     设备(鉴权缓存/MarkStatus/大屏点位 Map)
│   │   │   ├── device_auth_service.go#     设备凭证鉴权 + 兜底离线时长
│   │   │   ├── rule_chain_service.go #     规则链(CachedTreeRaw 执行树缓存)
│   │   │   ├── alert_service.go      #     告警历史(Raise/Recover/UpdateSeverity/CloseActiveByDevice)
│   │   │   ├── tree_filter.go        #     区域/分类子树过滤
│   │   │   └── pipeline/            #     报文处理流水线(消费 iot:ingest)
│   │   │       ├── pipeline.go       #       消费入口 + 对外门面
│   │   │       ├── online/           #       在线/离线判定、属性快照、状态/遥测/大屏广播
│   │   │       ├── rulechain/        #       可视化规则链执行引擎 + goja 脚本原语
│   │   │       ├── alert/            #       告警状态机(Redis 活动态 → 历史表)
│   │   │       └── store/            #       时序批写/回读/清理(writeSink 唯一落地出口)
│   │   ├── monitor_service/          #   监控服务
│   │   │   ├── monitor_client_service.go
│   │   │   ├── monitor_error_list_service.go
│   │   │   ├── monitor_error_service.go
│   │   │   ├── monitor_project_service.go
│   │   │   └── monitor_server_service.go
│   │   ├── notice_service/           #   通知服务
│   │   │   └── notice_service.go     #     站内通知 + 邮件延迟补推
│   │   ├── setting_service/          #   设置服务
│   │   │   ├── copyright_service.go
│   │   │   ├── dict_data_service.go
│   │   │   ├── dict_type_service.go
│   │   │   ├── system_config_service.go
│   │   │   └── website_service.go
│   │   ├── system_service/           #   系统管理服务
│   │   │   ├── admin_service.go      #     管理员 CRUD
│   │   │   ├── admin_role_service.go #     管理员-角色关联
│   │   │   ├── dept_service.go       #     部门
│   │   │   ├── forget_pwd_service.go #     忘记密码
│   │   │   ├── log_service.go        #     操作日志
│   │   │   ├── login_service.go      #     登录认证
│   │   │   ├── menu_service.go       #     菜单
│   │   │   ├── perm_service.go       #     权限
│   │   │   ├── post_service.go       #     岗位
│   │   │   └── role_service.go       #     角色
│   │   ├── user_service/             #   C端用户服务
│   │   │   ├── auth_service.go       #     绑定/解绑手机、邮箱
│   │   │   ├── user_service.go       #     注册/登录/手机验证码/密码重置
│   │   │   └── wechat_service.go     #     微信小程序/公众号登录绑定
│   │   ├── user_service.go           #   C端用户公共服务
│   │   └── user_protocol_service.go  #   用户协议
│   │
│   ├── schema/                       # 请求与响应结构体 (DTO)
│   │   ├── common_schema/            #   album_schema/captcha_schema/file_hash_schema
│   │   ├── fabu_schema/              #   fabu_schema.go
│   │   ├── flow_schema/              #   flow_apply/flow_history/flow_template
│   │   ├── generator_schema/         #   schema.go
│   │   ├── iot_schema/               #   IoT DTO + 接入信封 + 规则链节点契约
│   │   │   ├── ingest_schema.go      #     IngestMsg/DeviceAuthInfo/状态与时序 Resp/ScopeValues
│   │   │   ├── product_schema.go
│   │   │   ├── product_category_schema.go
│   │   │   ├── device_space_schema.go
│   │   │   ├── device_schema.go
│   │   │   ├── alert_schema.go
│   │   │   └── rule_chain_schema.go  #     节点类型常量与属性契约
│   │   ├── monitor_schema/           #   monitor_client/error_list/error/project
│   │   ├── queue_schema/             #   异步队列 payload + 队列名常量
│   │   │   ├── queue.go              #     队列名常量 (flow_notify_email/flow_notify_webhook/email:code:send/notice:email/notice:email:delay/image_webp/operate_log/iot:ingest)
│   │   │   ├── flow_notify_schema.go #     流程通知 payload
│   │   │   ├── image_webp_schema.go  #     图片转 webp payload
│   │   │   └── notice_email_schema.go#     通知邮件 payload(含延迟补推任务载荷)
│   │   ├── setting_schema/           #   copyright/dict_data/dict_type/website
│   │   ├── system_schema/            #   admin/dept/log/login/menu/notice/post/role
│   │   ├── user_schema/              #   前台(C端) DTO (auth/email_code/login/register/user/wechat)
│   │   ├── system_corn_schema.go     #   定时任务 DTO
│   │   ├── user.go                   #   通用用户 DTO
│   │   └── user_protocol_schema.go   #   用户协议 DTO
│   │
│   ├── model/                        # 数据库模型层(GORM 实体)
│   │   ├── common_model/             #   相册、文件哈希(album/file_hash)
│   │   ├── fabu_model/               #   应用发布(fabu_app/fabu_app_version/fabu_wgt)
│   │   ├── gen_model/                #   代码生成器元数据(gen)
│   │   ├── iot_model/                #   IoT 实体(x_iot_*:product_category/product/device_space/device/rule_chain/device_data/alert_history)
│   │   ├── setting_model/            #   字典(dict_data/dict_type)
│   │   ├── system_model/             #   管理员/角色/菜单/部门/岗位/日志(admin_role/auth_admin/system)
│   │   ├── user_model/               #   C端用户(user/user_auth)
│   │   ├── flow_apply.go             #   流程申请
│   │   ├── flow_history.go
│   │   ├── flow_template.go
│   │   ├── monitor_client.go
│   │   ├── monitor_error.go
│   │   ├── monitor_error_list.go
│   │   ├── monitor_project.go
│   │   ├── system_corn.go            #   定时任务
│   │   ├── system_notice.go          #   站内通知
│   │   └── user_protocol.go          #   用户协议
│   │
│   ├── middleware/                   # 中间件
│   │   ├── admin_auth.go             #   后台认证 (Token + 权限校验)
│   │   ├── user_auth.go              #   C端用户 JWT 认证
│   │   ├── device_auth.go            #   设备凭证鉴权 (X-Device-Sn + X-Access-Token)
│   │   ├── cors.go                   #   跨域
│   │   ├── error.go                  #   Panic 恢复
│   │   ├── log.go                    #   操作日志
│   │   ├── request_cost.go           #   请求耗时统计/慢请求日志
│   │   ├── limit_email.go            #   邮箱限频
│   │   ├── limit_ip.go               #   IP 限频
│   │   └── limit_rate.go             #   通用限流
│   │
│   ├── corn/                         # 定时任务注册
│   │   ├── corn_manager.go           #   CronManager (基于 robfig/cron)
│   │   ├── fixed_task.go             #   固定任务(清理分片/在线人数/监控/文件清理;IoT 离线扫描·重建/时序清理/大屏冲刷)
│   │   └── dynamic_task.go           #   动态任务(从数据库加载)
│   │
│   └── queue/                        # 异步队列消费者(包名 queue)
│       ├── start.go                  #   统一注册并启动所有消费者(由 main.go 调用)
│       ├── iot.go                    #   IoT 报文处理(消费 iot:ingest → pipeline,Enable 门控)
│       ├── email_code.go             #   邮箱验证码发送
│       ├── flow_notify_email.go      #   流程邮件通知
│       ├── flow_notify_webhook.go    #   流程 Webhook 通知
│       ├── image_webp.go             #   图片异步转 webp(上传后投递,转码回写记录)
│       ├── notice_email.go           #   通知邮件补推(消费 notice:email)
│       ├── notice_email_delay.go     #   通知邮件延迟补推(消费 notice:email:delay,到期合成后入 notice:email)
│       └── operate_log.go            #   操作日志落库(由中间件投递,解耦写库)
│
├── config/                           # 配置管理(Viper,各段对应 config 结构体字段)
│   ├── init.go                       #   Viper 初始化入口 + config 结构体
│   ├── app.go                        #   应用配置 (端口/模式/名称)
│   ├── admin.go                      #   管理员配置 (Token/权限/超级管理员)
│   ├── db.go                         #   数据库配置
│   ├── redis.go                      #   Redis 配置
│   ├── oss.go                        #   对象存储(OSS)配置
│   ├── jwt.go                        #   JWT 配置 (密钥/过期时间)
│   ├── file.go                       #   文件上传配置 (大小限制/分片/预签名)
│   ├── email.go                      #   邮件配置
│   ├── wechat.go                     #   微信配置 (小程序/公众号 AppID+Secret)
│   ├── ge_tui.go                     #   个推配置
│   ├── iot.go                        #   IoT 配置(接入开关/TTL/时序治理)
│   ├── notice.go                     #   通知配置
│   ├── log.go                        #   日志配置
│   └── constant.go                   #   常量定义
│
├── core/                             # 核心组件
│   ├── db.go                         #   GORM 数据库初始化
│   ├── redis.go                      #   Redis 连接初始化 (提供 NewLock)
│   ├── logger.go                     #   Zap 日志初始化
│   ├── queue.go                      #   队列门面(装配 core/queue 与 core/queue_delay)
│   ├── ws.go                         #   WebSocket 全局管理器入口
│   ├── ws/                           #   WebSocket 实现 (client/interface/manager/room)
│   ├── pubsub/                       #   事件总线 (mitt + Redis 跨实例广播;config/interface/redis/registry)
│   ├── queue/                        #   异步队列-点对点工作队列 (config/interface/redis)
│   ├── queue_delay/                  #   异步队列-延迟投递 (config/interface/redis)
│   ├── request/                      #   common.go 分页请求 PageReq
│   └── response/                     #   统一响应封装 (common.go / response.go,含错误码 RespType)
│
├── routes/                           # 路由注册
│   ├── init.go                       #   Gin 引擎初始化
│   ├── api.go                        #   /api 入口路由注册(admin/web/iot 分组,iot 受 IOT.Enable 门控)
│   ├── admin_route/                  #   /api/admin 后台路由组(init.go Autoload 各 *_route.go 追加 routeHandlers)
│   │   ├── common_route.go           #     通用:上传/相册/个推/S3 直传
│   │   ├── fabu_route.go             #     应用发布
│   │   ├── flow_route.go             #     审批流程
│   │   ├── generator_route.go        #     代码生成器
│   │   ├── iot_route.go              #     IoT 元数据 CRUD(LoginAuth/PermAuth)
│   │   ├── monitor_route.go          #     系统监控
│   │   ├── notice_route.go           #     通知
│   │   ├── setting_route.go          #     系统设置
│   │   ├── system_route.go           #     系统管理
│   │   ├── system_corn_route.go      #     定时任务
│   │   ├── user_route.go             #     后台侧 C 端用户管理
│   │   └── user_protocol_route.go    #     用户协议
│   ├── web_route/                    #   /api/web 前台(C端)路由
│   │   ├── init.go                   #     Autoload 机制
│   │   ├── fabu_route.go             #     应用发布(检查更新/下载)
│   │   └── user_route.go             #     注册/登录/绑定/微信
│   └── iot_route/                    #   /api/iot 设备侧接入路由(IOT.Enable 时注册)
│       ├── init.go                   #     设备侧路由自动加载
│       └── device_route.go           #     telemetry/heartbeat(整组走 DeviceAuth)
│
├── util/                             # 工具包
│   ├── tools.go                      #   通用工具 (UUID/JSON/MD5/随机等)
│   ├── verify.go                     #   校验工具 (VerifyUtil.VerifyQuery/VerifyBody)
│   ├── string.go                     #   字符串处理
│   ├── array.go                      #   数组处理
│   ├── cache.go                      #   缓存操作
│   ├── redis.go                      #   Redis 封装 (Set/Get/Hash/List 等)
│   ├── redis_lock.go                 #   Redis 分布式锁 (Lua 原子解锁)
│   ├── jwt.go                        #   JWT 生成/解析/刷新
│   ├── ip.go                         #   IP 解析 (ip2region)
│   ├── url.go                        #   URL 处理 (绝对路径转换)
│   ├── server.go                     #   服务器信息采集
│   ├── uaparser.go                   #   UA 解析
│   ├── null_time.go                  #   Null 时间类型工具
│   ├── convert_util/                 #   类型转换 (struct copy)
│   ├── excel_util/                   #   Excel 导入导出 (excel/excel_export/excel_import)
│   ├── file_util/                    #   文件与路径工具 (root/utils)
│   ├── img_util/                     #   图片处理
│   └── validation/                   #   校验引擎扩展 (lang/null/register)
│
├── plugin/                           # 插件
│   ├── storage/                      #   文件上传存储引擎
│   │   ├── storage.go                #     上传主流程
│   │   ├── storage_interface.go      #     存储引擎接口 (含分片上传)
│   │   ├── storage_local.go          #     本地文件存储实现
│   │   ├── storage_oss.go            #     对象存储(OSS)实现
│   │   ├── storage_factory.go        #     存储引擎工厂
│   │   ├── presign.go                #     S3 预签名 URL 生成
│   │   └── cron_cleanup.go           #     分片临时目录定时清理
│   ├── email/                        #   邮件发送 (email/code 验证码)
│   ├── sms/                          #   短信验证码 (code)
│   ├── wechat/                       #   PowerWeChat 客户端初始化
│   ├── ipapk/                        #   IP 库解析 (parser)
│   └── aj-captcha-go/                #   行为验证码
│       ├── captcha_config/           #     配置与常量
│       ├── captcha_service/          #     滑块/点选验证码实现 + 缓存(Redis/Mem)
│       ├── model/vo/                 #     值对象
│       └── util/                     #     AES/图片/字体/缓存工具
│
├── public/                           # 公共资源
│   ├── resources/                    #   验证码字体等
│   └── static/                       #   静态文件 (/api/static/*),含 Swagger API 文档页
│
├── docs/                             # Swagger 生成物 (docs.go / swagger.json / swagger.yaml)
├── uploads/                          # 本地存储驱动的文件上传目录
│
├── bootstrap.go                      # 启动装配(配置/DB/Redis/队列等初始化)
├── main.go                           # 程序入口
├── shutdown.go                       # 优雅关闭(冲刷队列与存储缓冲)
├── go.mod / go.sum                   # Go 模块依赖
├── .env.yaml                         # 本地配置 (不提交 git)
├── .env.yaml.example                 # 配置模板
├── .env.online.yaml                  # 线上配置
├── pack.bat                          # 打包脚本
└── upx.exe / x_admin.exe             # 可执行文件压缩 / 构建产物