PROJECT / 01
LFN Cloud|企业业务平台
围绕企业业务协作构建前后端分离的平台,以统一入口连接身份权限、系统管理、消息、报表与工作流等能力。
项目定位
企业里的一次操作通常跨越多个环节:员工进入所属租户和应用,获得对应菜单与操作权限,处理业务资料,再通过消息、流程或报表协作。LFN Cloud 将这些共用能力组织在同一入口,业务模块可以复用身份与管理能力,同时各自维护业务规则和数据边界。
代码覆盖的业务能力
- Auth / Gateway|统一入口:登录、切换当前租户与应用、按权限加载菜单。Gateway 负责统一
/api入口;Auth 维护 Token 和当前身份上下文。 - System|系统管理:管理用户、角色、菜单、组织、租户与应用,维护字典、文件和公告。菜单决定可见入口,服务端权限与数据范围决定能否读取和修改。
- Message|协作提醒:查看通知与收件箱、私信和待办提醒。业务状态仍归原服务所有,消息中心接收事件并提供提醒入口。
- Workflow|流程审批:设计、发布 BPMN 流程,发起申请,处理待办、已办、抄送和审批异常。流程实例与任务由 Workflow 管理,业务结果通过受控回调交给业务服务。
- Report|报表分析:在平台内打开报表工作区和受控数据集。先创建同源报表会话,数据范围从 System 获取,不由浏览器参数指定。
知识中心作为 LFN Cloud 的知识模块单独展开,见 LFN Knowledge 案例。以上描述仓库中的功能范围;演示环境是否启用每个模块,需要以实际部署为准。
从页面操作到服务协作
前端使用 Vue 3、TypeScript 与 Vben Admin 组织页面、路由和请求。浏览器通过同源 /api 进入 Gateway,再由 Gateway 路由到 Auth、System 及业务服务。切换租户或应用后,需要更新当前上下文和菜单状态;按钮可见性提供交互引导,服务端仍根据可信身份、权限及数据范围裁决操作。
跨模块通知不直接写入 Message 数据库。例如公告变更与待投递事件由 System 在同一事务中写入 Outbox,再经任务投递 Kafka,Message 按事件标识处理重复消费并写入收件箱。SSE 用于提示前端刷新,用户看到提醒后仍由原业务服务确认最新状态。
流程侧以 Flowable 承载 BPMN 模型、版本、实例和任务。审批请求通过请求标识处理重复提交,业务回调限定服务身份与目标范围。报表侧集成 JimuReport / JimuBI:页面先建立报表会话,服务端再取得最终数据范围;权限依赖不可用时不放宽查询范围。这些边界让重试、权限变化和故障恢复有明确的处理位置。
工程组织与取舍
后端以 Java、Spring Boot 的多模块工程拆分 Gateway、Auth、System 和业务服务,MyBatis-Plus 与 MySQL 承载持久化,Redis、Nacos 和 Kafka 分别参与缓存或会话、配置与服务发现、事件传递。前端使用 Vite、Pinia 和 Element Plus 构建统一的管理体验。技术选型服务于明确的模块边界:共用入口与身份上下文,业务规则留在所属服务,不把一个服务的数据库当作另一个服务的接口。
当前进展与下一步
LFN Cloud 已进入稳定运行和持续完善阶段。统一入口、身份权限与系统管理构成平台基础,消息、流程、报表等能力继续围绕实际业务场景集成和优化。接下来重点打磨跨模块操作体验、权限与数据范围的一致性,以及异常处理和恢复流程,让平台在日常使用和后续扩展中保持可靠。