带你一步步实现低代码开发平台——低代码配置模块、实体、模型设计

案例

今天我们通过一个实际案例来辅助说明下低代码平台的设计。

之前开源了一套通用接口平台,详见专栏https://blog.csdn.net/seawaving/category_11610162.html
我们将其迁移整合一下,使其成为开发平台的一个功能模块。
接口平台自身基础数据的维护,如应用、接口服务、消息主题等,需要实现相应的管理功能。

创建模块

image.png

属性说明
应用模块隶属于哪个应用,考虑到应用数量有限,属性也较少,没新建实体,使用数据字典来做一个简易化管理
名称模块中文名称,没啥好说的
编码模块编码,关键属性,用做唯一性标识,同时也是前端的目录名和后端模块的包名
缩略码模块的缩略码,用于该模块库表的前缀
包路径模块所处的包路径
排序用来排序,下文不再重复列出
备注就是备注,下文不再重复列出

上面这个例子中,因为cip(common-interface-platform)本身就是缩写了,体现不出编码和缩略码的差别来。
再举一个例子方便理解差异,比如系统管理模块,编码是system,缩略码是sys,编码system用于前端目录名和后端的包名,缩略码sys用于该模块库表的前缀。

创建实体

先选一个简单的实体来做实例。
接口平台首先需要维护对接的应用数据,这里就以应用这个实体为例。
image.png

属性说明
模块实体隶属的模块,从上面第1步配置的数据列表中选择
名称实体中文名称
编码实体的英文编码,复用,作为后端实体类名、库表名
作者用于标注实体的开发人员,会生成代码类注释中@author属性

开发平台内置了处理逻辑,在保存实体的时候,会自动创建一个同名的实体模型,并将其自动设置为主模型,减少重复性工作,提升开发效率。

点击保存按钮,返回列表,点击应用这行右方的配置按钮,进入实体配置页面,如下:
image.png
左侧是导航,分为两块,一是数据模型,二是视图。

配置数据模型

image.png

属性说明
父模型通过继承理念实现模型的复用与扩展,预置了标识模型、映射模型、业务模型、流程单据四种模型,可扩展
名称中文名称
编码英文编码,一方面作为java类的类名,另一方面作为库表名称(实际是库表名称的后半段,前面会加模块缩略码,避免出现不同模块下存在同名实体导致库表名重复问题)
是否主模型每个实体,下面可能有多个模型,需要标记一个主模型作为主体,如销售订单实体,是由订单和订单明细两组成,这时候,将订单标记为主体
是否自关联部分实体是自关联关系,如组织机构,标记自关联后,代码会在代码生成中进行额外处理,如在controller中增加获取树状结构数据的接口。

在数据模型的属性中,可以选择父级模型,系统预置了四个模型:标识模型(只有标识id属性)、映射模型(继承于标识模型,附加了创建人、创建时间、修改人、修改时间)、业务模型(继承于映射模型,逻辑删除标识位)、流程模型(继承于业务模型,附加了与流程相关的一系列发起人、流程状态等属性)。
通过继承理念实现模型的复用与扩展。
这么设计,一方面可以保持系统公共属性高度一致,另一方面简化了业务实体的配置,使其可以专注于自身的属性。

配置模型属性

行记录上点击“配置属性”按钮,打开模型属性配置功能,如下:
image.png
点击新增按钮,创建新属性:
image.png

属性说明
名称属性中文描述
编码属性英文编码,对应java实体类中的属性,遵循小驼峰命名规范,平台依据该属性生成数据库字段名,驼峰命名风格自动转换为蛇形风格(全部小写,单词间使用下划线分隔)
数据类型属性的数据类型,包括基本类型(如文本、整形、长整型、浮点数、日期时间等)和复杂类型(如数据字典、实体),可扩展
控件类型属性的默认展示控件,随数据类型自动变化,如文本,对应普通文本、长文本和富文本。
最大长度属性长度设定,对应库表字段长度设置。
默认值默认值填充,新建实体时,服务层会自动读取配置,设置属性对应的默认值。
是否可为空属性是否允许为空,如不能为空,生成vo对象时,会自动添加验证注解@NotBlank。
是否唯一值是否唯一,如唯一,生成服务时,会在创建或修改前,自动生成数据验证逻辑。
唯一性参照保持为空进行全局唯一验证,可选择本实体模型其他属性,代表该属性值下唯一,通常用于父子类型数据结构下,同一父级下不能重复。
是否主属性标记是否为主属性,该属性视为实体的主要显示属性,当该实体用于其他实体关联时,将该属性作为显示值
是否上级属性用于标记该属性是否关联到上级

这里的属性,有些看上去跟模型属性无关,比如控件类型,显示格式等,放到视图配置类更合适。之所以放到实体模型属性这里,是从开发效率的角度考虑。同一模型,会配置多个视图,多次使用属性,将属性的默认显示放到实体属性里配置后,简化视图环节配置,避免重复配置,提升效率。

按照相同的操作方式,创建其他属性。

当数据类型选择数据字典时,会自动出现字典类型选择控件,选择系统中设置的数据字典。
image.png
image.png
控件类型也会出现下拉列表和单选按钮组,通常字典项少的情况下2-3项,使用单选按钮组,操作简便,显示直观,如字典项多,则会占用大量页面显示面积,这时候,使用下拉列表更佳。
image.png
字典类型选中后,默认值的数据列表也会自动加载,可根据实际情况选择是否需要设置默认值,以及将哪个字典项作为默认值。

所有属性配置完成如下图所示。
image.png

今天先到这,视图部分超级复杂,留待下篇专题说明。

开发平台资料

平台名称:一二三应用开发平台
平台简介:企业级通用低代码应用开发平台,免费全开源可商用
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT

如果您在阅读本文时获得了帮助或受到了启发,希望您能够喜欢并收藏这篇文章,为它点赞~
请在评论区与我分享您的想法和心得,一起交流学习,不断进步,遇见更加优秀的自己!

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海无涯,行者无疆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值