scaffold-lowcode 低代码平台模块
模块概述
scaffold-lowcode 是 Scaffold v2 平台的低代码开发模块,提供 Schema 驱动的应用构建能力,分为设计器和运行态两种模式。
设计器模式下,用户通过可视化界面创建应用、定义数据模型、配置字段、设计表单/列表页面、绑定动作,并发布到运行态。运行态模式下,系统根据已发布的 Schema 自动生成增删改查 API,无需编写后端代码。
模块同时包含移动页面(MpPage)的设计与渲染能力,支持移动端 Schema 化页面设计。
功能列表
低代码核心
- 应用管理:创建、编辑、删除、上下架
- 数据模型管理:创建、编辑、删除模型
- 字段管理:按模型配置字段、排序
- 页面设计:按模型配置表单页/列表页 Schema
- 动作管理:配置页面按钮动作(如提交、导出、审批)
- 发布管理:发布前检查、执行发布、发布历史、版本回滚
- 运行态数据操作:自动生成增删改查 API
- 运行态审批集成:提交审批、查询审批状态
移动页面
- 移动页面设计:创建、编辑、删除、Schema 设计
- 移动页面发布与版本管理
- 移动页面渲染:按编码或 ID 获取已发布的页面 Schema
审批回调
- 接收 BPM 模块的审批状态变更回调,自动更新业务数据状态
状态字段规范:
status 字段(应用、模型、页面、动作、字段)遵循布尔语义:1 = 启用,0 = 禁用
核心组件
实体
| 实体 |
表名 |
说明 |
| LcApp |
lc_app |
低代码应用 |
| LcModel |
lc_model |
数据模型 |
| LcField |
lc_field |
模型字段 |
| LcPage |
lc_page |
页面配置(表单/列表 Schema) |
| LcAction |
lc_action |
页面动作 |
| LcPublish |
lc_publish |
发布记录 |
| MpPage |
mp_page |
移动页面 |
| MpPageVersion |
mp_page_version |
移动页面版本 |
服务层
| 服务 |
说明 |
| LcAppService |
应用 CRUD、上下架 |
| LcModelService |
数据模型 CRUD |
| LcFieldService |
字段 CRUD、排序 |
| LcPageService |
页面 Schema 读写 |
| LcActionService |
动作 CRUD |
| LcPublishService |
发布流程、回滚、发布历史 |
| LcRuntimeService |
运行态数据操作、审批集成 |
| MpPageService |
移动页面 CRUD、发布、版本管理 |
配置类
| 类 |
说明 |
| LowcodeAutoConfiguration |
自动配置类,扫描 Mapper 和组件,提供 BPM 集成服务的空实现降级 |
API 接口列表
低代码应用(/v1/lowcode/designer/app)
| 方法 |
路径 |
说明 |
| GET |
/page |
分页查询应用 |
| GET |
/get/{id} |
查询应用详情 |
| POST |
/create |
创建应用 |
| POST |
/update |
更新应用 |
| POST |
/delete/{id} |
删除应用 |
| POST |
/toggle-status/{id} |
切换上下架状态 |
低代码模型(/v1/lowcode/designer/model)
| 方法 |
路径 |
说明 |
| GET |
/page |
分页查询模型 |
| GET |
/get/{id} |
查询模型详情 |
| POST |
/create |
创建模型 |
| POST |
/update |
更新模型 |
| POST |
/delete/{id} |
删除模型 |
低代码字段(/v1/lowcode/designer/field)
| 方法 |
路径 |
说明 |
| GET |
/list?modelId={id} |
按模型查询字段列表 |
| POST |
/create |
创建字段 |
| POST |
/update |
更新字段 |
| POST |
/delete/{id} |
删除字段 |
| POST |
/sort |
字段排序 |
低代码页面(/v1/lowcode/designer/page)
| 方法 |
路径 |
说明 |
| GET |
/get?modelId={id}&pageType={type} |
按模型和页面类型查询页面配置 |
| POST |
/save |
保存页面 Schema |
低代码动作(/v1/lowcode/designer/action)
| 方法 |
路径 |
说明 |
| GET |
/list?modelId={id}&pageType={type} |
按模型和页面类型查询动作列表 |
| POST |
/create |
创建动作 |
| POST |
/update |
更新动作 |
| POST |
/delete/{id} |
删除动作 |
低代码发布(/v1/lowcode/designer/publish)
| 方法 |
路径 |
说明 |
| GET |
/check/{appId} |
发布前检查 |
| POST |
/execute |
执行发布 |
| GET |
/history |
发布历史 |
| POST |
/rollback |
版本回滚 |
低代码运行态(/v1/lowcode/runtime)
| 方法 |
路径 |
说明 |
| GET |
/meta/page?appCode={c}&modelCode={c}&pageType={t} |
查询运行态页面元数据 |
| GET |
/data/page |
运行态分页查询数据 |
| GET |
/data/get?appCode={c}&modelCode={c}&bizId={id} |
运行态查询单条数据 |
| POST |
/data/create |
运行态新增数据 |
| POST |
/data/update |
运行态更新数据 |
| POST |
/data/delete |
运行态删除数据 |
| POST |
/action/execute |
运行态执行动作 |
| POST |
/approval/submit |
提交审批 |
| GET |
/approval/status?appCode={c}&modelCode={c}&bizId={id} |
查询审批状态 |
审批回调(/v1/lowcode/approval/callback)
| 方法 |
路径 |
说明 |
| POST |
/notify |
接收 BPM 审批状态变更回调 |
回调 payload 格式:{ processInstanceId, processNo, businessKey, businessType, status, action, comment }。其中 businessType 以 lc_ 前缀标识低代码业务,后跟 modelCode。
移动页面管理(/v1/lowcode/designer/mp-page)
| 方法 |
路径 |
说明 |
| GET |
/page |
分页查询移动页面 |
| GET |
/get/{id} |
查询移动页面详情 |
| GET |
/get-by-code/{pageCode} |
按编码查询页面详情 |
| POST |
/create |
创建移动页面 |
| POST |
/update |
更新移动页面 |
| POST |
/delete/{id} |
删除移动页面 |
| POST |
/save-schema |
保存页面 Schema |
| POST |
/publish |
发布移动页面 |
| GET |
/versions/{pageId} |
查询版本历史 |
| GET |
/version/{versionId} |
获取指定版本详情 |
移动页面渲染(/v1/lowcode/render/mp-page)
| 方法 |
路径 |
说明 |
| GET |
/code/{pageCode} |
按编码获取已发布页面 Schema |
| GET |
/id/{id} |
按 ID 获取已发布页面 Schema |
| GET |
/version/{versionId} |
获取指定版本 Schema |
运行态渲染只返回状态为已发布(status=1)的页面,其他状态返回 null。
SPI 扩展点
BPM 集成
模块通过 BpmIntegrationService 接口与 BPM 模块交互。当 scaffold-bpm 在 classpath 上时,使用 BPM 的真实实现;否则自动降级为 NopBpmIntegrationService(空操作),审批相关功能不可用。
使用示例
1. 创建低代码应用并发布
POST /v1/lowcode/designer/app/create -- 创建应用
POST /v1/lowcode/designer/model/create -- 创建数据模型
POST /v1/lowcode/designer/field/create -- 配置字段
POST /v1/lowcode/designer/page/save -- 设计表单/列表页
POST /v1/lowcode/designer/action/create -- 配置按钮动作
GET /v1/lowcode/designer/publish/check/{appId} -- 发布前检查
POST /v1/lowcode/designer/publish/execute -- 执行发布
2. 运行态数据操作
GET /v1/lowcode/runtime/data/page?appCode=xxx&modelCode=xxx -- 列表查询
GET /v1/lowcode/runtime/data/get?appCode=xxx&modelCode=xxx&bizId=123 -- 详情
POST /v1/lowcode/runtime/data/create -- 新增
POST /v1/lowcode/runtime/data/update -- 更新
POST /v1/lowcode/runtime/data/delete -- 删除
3. 审批集成
运行态数据提交审批后,BPM 模块在流程状态变更时回调 /v1/lowcode/approval/callback/notify,低代码模块自动更新业务数据状态。
注意事项
- 页面类型(pageType)通常为
form(表单页)或 list(列表页)
- 发布前检查会验证模型、字段、页面配置的完整性
- 运行态 API 根据已发布的模型 Schema 动态构建 SQL,确保模型已发布后才能正常使用
- 移动页面渲染接口仅返回已发布状态(status=1)的页面
LowcodeAutoConfiguration 没有 @ConditionalOnProperty 开关,引入依赖即激活;通过 BpmIntegrationService 的 @ConditionalOnMissingBean 实现可插拔
- 状态枚举:
status 字段(应用、模型、页面、动作、字段)遵循布尔语义:1 = 启用,0 = 禁用
- 移动页面
MpPage.status(未发布/已发布)不遵循布尔语义规范