广锐数据模型平台 · 系统介绍
版本:v1.0.8
定位:面向中小企业的"配置驱动"业务建模与协同办公平台
技术栈:FastAPI + Vue 3 + PostgreSQL + Redis + Celery + Electron
一、平台概述
广锐数据模型平台是一款以**"配置驱动、模型先行"为核心理念的企业级协同办公系统。平台将企业日常经营中的订单、预约、报名、问卷、留言等业务场景抽象为统一的业务模型引擎**,配合灵活的内容模型(CMS)、即时通讯(IM)、AI 写作助手、日程日历等模块,让企业以最低代码量快速搭建专属业务系统。
平台的 80% 业务场景无需编写代码——通过可视化设计器配置字段、状态机、权限与流转规则即可上线;剩余 20% 复杂场景可通过继承服务基类、注册钩子函数实现深度定制。
二、核心特色
1. 业务模型引擎(配置驱动状态机)
平台最具差异化的能力。将"订单/留言/预约/报名/问卷"等业务统一为业务模型 + 状态机抽象,通过 JSON 配置即可定义完整业务流程。
- 5 种默认业务类型开箱即用:商品订单(7 状态全链路)、留言询盘、服务预约、课程报名、问卷调查;每类自带单号前缀(ORD/MSG/BKG/SGN/SVY)
- 状态机三件套:
states(状态定义)+initial_status(初始态)+transitions(流转规则),支持线性、分支、回退等多种流转拓扑 - 权限分级流转:每条 transition 可绑定独立权限码(如
order:pay、order:ship、order:refund),客服无法跳过发货环节直接完成订单 - 前置条件表达式:自研轻量求值器(不使用 eval,杜绝安全风险),支持
field != null、field == value、> >= < <=及and/or组合;例如"付款前必须上传付款凭证" - 流转审计 + 后置任务:每次流转记录操作人、原因、快照;流转后自动触发后置任务(扣库存、发短信、通知发货等),通过
@register_task装饰器注册 - 配置即生效:管理后台修改配置后,内存缓存实时刷新,无需重启服务
- 工厂模式覆盖:
ConfigDrivenService处理标准场景;复杂业务继承BizTransactionService实现validate/after_submit/after_transition钩子,通过factory.register()覆盖默认行为
2. 内容模型(CMS)
- 三表分离架构:
Model(模型定义)+Post(内容实例)+Category(无限级分类),动态字段存 JSONB,扩展零成本 - 30+ 字段类型:文本/富文本/数字/价格/滑块/评分/下拉/多选/标签/树形/开关/日期/时间/图片/文件/电话/邮箱/网址/颜色/定位/关联/JSON 编辑器/分组标题/分割线/计算字段等
- 关联字段双模式:
reference(仅存 ID,实时同步)与snapshot(冻结快照,历史隔离),支持价格联动——下单时自动把产品价格同步到订单金额字段 - 内容运营:发布/草稿、置顶、精选、浏览量、点赞、软删除回收站、SEO 友好 slug
- 按身份返回数据范围:浏览者仅见已发布内容,持权限者见全部
3. AI 写作助手
- DeepSeek 大模型驱动,支持流式输出(token 级实时推送)
- 5 种写作动作:续写、润色、翻译、总结、生成、改进
- 双通道接入:独立 WebSocket(licenseKey 鉴权)+ 复用聊天 WebSocket(JWT 鉴权)
- 单用户单任务:同一用户同时仅保留一个生成任务,新请求自动取消上一个,避免资源浪费
- 安全边界:输入上限 384K 字符、输出上限 131K tokens;对话历史归档至 AI 私聊房间,可随时回溯
- XSS 防护:前端 Markdown 渲染走
marked+sanitizeHtml
4. 富文本编辑器
- 基于 ProseMirror 的
@pageny/editor,三档工具栏预设(simple / default / all) - 完整排版能力:文本样式、高亮、颜色、对齐、缩进、有序/无序/任务列表、引用、链接、图片、表情、媒体、模板、表格、代码块、分割线、全屏、HTML 源码、预览
- 内置"从文件库选择":自定义工具栏按钮,直接插入图片或文件附件
- AI 工具栏集成:编辑器内一键唤起 AI 写作助手
5. 即时通讯(IM)
- 完整的房间/成员/消息模型:支持私聊(1对1)与群聊,成员角色(普通/管理员/群主),消息类型(文本/图片/文件/系统/AI 回复),消息回复与撤回
- 多实例部署:Redis Pub/Sub 跨实例广播,在线状态全局同步,系统用户(admin/system/AI)始终在线
- 未读数批量推送:连接成功、收到消息、切换房间均推送总数,正在查看的房间自动标记已读
- 心跳与重连:25s 心跳 + 30s 超时断连,指数退避重连(上限 30s,最多 10 次),认证前消息入队列缓冲
- 语音转文字:集成 FunASR,语音消息可转文字并发送
6. 日程日历
- FullCalendar v6 集成:月/周/列表三视图,周一为首日,视图状态持久化
- 日程类型:全天/定时/多天(最长 30 天),6 色标记,支持拖拽移动
- 节假日背景渲染:自动拉取纪念日/节气/法定假日,按天渲染为背景事件
- 提醒调度:Celery beat 定时扫描,支持提前 5 分钟到前 30 天共 10 档提醒
7. Electron 桌面端
- 双端构建:浏览器版 + Electron 桌面版,同一套 Vue 代码,环境自动识别
- 自动更新:electron-updater + IPC 桥,完整流程(检查→下载→进度→安装→重启),进度通知节流,启动静默检查
- 无边框自定义窗口:最小化/最大化/关闭按钮,小窗口隐藏最大化
- 托盘与闪烁:未读消息托盘图标闪烁提醒
8. 权限体系(RBAC + JWT 双 Token)
- 树形权限模型:
menu(模块分组,仅展示)+api(操作权限点,参与鉴权),默认 11 个模块分组 + 约 50 个权限点 - JWT 双 Token:access_token(短)+ refresh_token(长),严格校验 type 防互用
- Refresh Token 轮换 + 族吊销:每次刷新签发新 refresh,检测重用则吊销整个 family 并 bump token_version
- 登出即时失效:吊销所有 refresh + token_version+1,已签发 access 立即作废
- 限流防护:登录 10 次/分、注册 5 次/分
三、技术架构
前端
模块 | 技术选型 |
|---|---|
框架 | Vue 3 + Vue Router 5 + Pinia 4 |
UI 库 | Element Plus + Tailwind CSS |
构建 | Vite(浏览器版)/ Electron Builder(桌面版) |
实时通信 | 原生 WebSocket + 心跳重连单例 |
富文本 | @pageny/editor v0.2.1(ProseMirror 内核) |
日历 | FullCalendar v6(daygrid/timegrid/interaction/list) |
后端
模块 | 技术选型 |
|---|---|
框架 | FastAPI + Uvicorn |
数据库 | PostgreSQL 17(JSONB 动态字段) |
缓存/消息 | Redis 7(Celery broker + 在线状态 + 配置缓存) |
异步任务 | Celery(worker + beat 定时调度) |
鉴权 | JWT + Refresh Token 轮换 |
AI | DeepSeek(OpenAI 兼容协议) |
语音 | FunASR |
部署
- Docker Compose 一键编排:7 服务(redis / db / app / celery_worker / celery_beat / nginx / nodejs),每服务配 CPU+内存限制与健康检查
- Nginx 双站点反代:
oa.webhelp.com.cn(静态 + API + WebSocket)+new.webhelp.com.cn(Nuxt SSR) - SSL/TLS:TLSv1.2/1.3,session cache,自动重定向 HTTPS
- 性能优化:Gzip level 5、大文件上传 100M、WebSocket 长连接 86400s 超时
四、设计理念
1. 配置驱动,而非代码驱动
平台坚信"企业 80% 的业务场景是相似的"。通过将订单、预约、报名等抽象为统一的业务模型 + 状态机配置,企业无需为每种业务单独开发表结构和接口——在可视化设计器中配置字段、状态、权限、流转规则即可上线。
2. 历史隔离,审计可追溯
订单关联商品时冻结快照(snapshot 模式),产品后续改价不影响历史订单金额;每次状态流转记录操作人、原因、快照,满足财务与审计要求。
3. 实时协同,多端一致
浏览器端与 Electron 桌面端共享同一套 Vue 代码,体验一致;WebSocket 即时通讯支持多实例部署,Redis Pub/Sub 保证消息全局同步。
4. 安全为先
JWT 双 Token + 轮换 + 族吊销,登出即时失效;AI 写作助手 licenseKey 鉴权;富文本 XSS 过滤;前端条件表达式求值器不使用 eval;权限码精细化到 API 级别。
5. 渐进式增强
业务模型从"纯配置"到"继承钩子"到"完全自定义"三档渐进;UI 从桌面端到移动端响应式适配,低端机自动降级装饰特效;Electron 自动更新静默检查,不打扰用户。
五、适用场景
场景 | 说明 |
|---|---|
电商订单管理 | 配置 ORDER 业务类型,状态机 DRAFT→PENDING_PAY→PAID→SHIPPED→COMPLETED,权限分级(付款/发货/退款分离),前置条件(付款前必须上传凭证) |
服务预约系统 | 配置 BOOKING 业务类型,用户提交预约→管理员确认/拒绝→服务完成 |
课程报名平台 | 配置 SIGNUP 业务类型,报名→审核→缴费→完成 |
问卷调查收集 | 配置 SURVEY 业务类型,发布问卷→收集回复→统计 |
企业内容门户 | 内容模型 + 分类 + 富文本,搭建产品介绍、新闻动态、帮助文档 |
内部协同办公 | IM 即时通讯 + 日程日历 + AI 写作助手,覆盖日常协作 |
桌面办公套件 | Electron 打包分发,自动更新,托盘提醒,离线可用(已加载数据) |
六、项目信息
项 | 值 |
|---|---|
平台名称 | 广锐数据模型平台 |
当前版本 | v1.0.8 |
主域名 | oa.webhelp.com.cn |
官网域名 | www.webhelp.com.cn |
开发语言 | Python 3.11 / JavaScript ES2022 |
数据库 | PostgreSQL 17 |
部署方式 | Docker Compose 一键编排 |
桌面端 | Electron + 自动更新 |
本文档基于广锐数据模型平台 v1.0.8 源码分析生成,反映系统当前实际能力。
