From a28458347acb68a57c6c42090e13d44578911b8a Mon Sep 17 00:00:00 2001 From: yubaolee Date: Tue, 29 Apr 2025 17:15:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E4=BD=8E?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=B9=B3=E5=8F=B0=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 数据库脚本/低代码脚本.sql | 224 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 数据库脚本/低代码脚本.sql diff --git a/数据库脚本/低代码脚本.sql b/数据库脚本/低代码脚本.sql new file mode 100644 index 00000000..7148e4c1 --- /dev/null +++ b/数据库脚本/低代码脚本.sql @@ -0,0 +1,224 @@ +-- 1. 租户管理相关表 + +-- 1.1 租户表 +CREATE TABLE `systenant` ( + `id` varchar(50) NOT NULL COMMENT '租户ID', + `name` varchar(100) NOT NULL COMMENT '租户名称', + `code` varchar(50) NOT NULL COMMENT '租户编码', + `datasource` varchar(50) NULL COMMENT '外部数据源', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0=未激活,1=已激活,2=已禁用', + `expire_time` datetime DEFAULT NULL COMMENT '过期时间', + `logo` varchar(200) DEFAULT NULL COMMENT '租户Logo', + `description` varchar(500) DEFAULT NULL COMMENT '租户描述', + `createtime` datetime NOT NULL COMMENT '创建时间', + `createuserid` varchar(50) NOT NULL COMMENT '创建用户ID', + `createusername` varchar(50) DEFAULT NULL COMMENT '创建用户名', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + `updateuserid` varchar(50) DEFAULT NULL COMMENT '更新用户ID', + `updateusername` varchar(50) DEFAULT NULL COMMENT '更新用户名', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统租户表'; + +-- 2. 核心功能表 + +-- 2.1 应用表 +CREATE TABLE `lowcodeapp` ( + `id` varchar(50) NOT NULL COMMENT '应用ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `name` varchar(100) NOT NULL COMMENT '应用名称', + `description` varchar(500) DEFAULT NULL COMMENT '应用描述', + `icon` varchar(100) DEFAULT NULL COMMENT '应用图标', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0=开发中,1=已发布,2=已下线', + `createtime` datetime NOT NULL COMMENT '创建时间', + `createuserid` varchar(50) NOT NULL COMMENT '创建用户ID', + `createusername` varchar(50) DEFAULT NULL COMMENT '创建用户名', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + `updateuserid` varchar(50) DEFAULT NULL COMMENT '更新用户ID', + `updateusername` varchar(50) DEFAULT NULL COMMENT '更新用户名', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码应用表'; + +-- 2.2 页面表 +CREATE TABLE `lowcodepage` ( + `id` varchar(50) NOT NULL COMMENT '页面ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `applicationid` varchar(50) NOT NULL COMMENT '所属应用ID', + `name` varchar(100) NOT NULL COMMENT '页面名称', + `title` varchar(100) NOT NULL COMMENT '页面标题', + `type` varchar(50) NOT NULL COMMENT '页面类型:form=表单页,list=列表页,detail=详情页,dashboard=数据看板,custom=自定义页', + `url` varchar(200) DEFAULT NULL COMMENT '页面路由', + `layout` text COMMENT '页面布局配置JSON', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0=草稿,1=已发布', + `sortno` int(11) DEFAULT '0' COMMENT '排序号', + `icon` varchar(50) DEFAULT NULL COMMENT '页面图标', + `createtime` datetime NOT NULL COMMENT '创建时间', + `createuserid` varchar(50) NOT NULL COMMENT '创建用户ID', + `createusername` varchar(50) DEFAULT NULL COMMENT '创建用户名', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + `updateuserid` varchar(50) DEFAULT NULL COMMENT '更新用户ID', + `updateusername` varchar(50) DEFAULT NULL COMMENT '更新用户名', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码页面表'; + +-- 2.3 组件表 +CREATE TABLE `lowcodecomponent` ( + `id` varchar(50) NOT NULL COMMENT '组件ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `page_id` varchar(50) NOT NULL COMMENT '所属页面ID', + `parentname` varchar(50) DEFAULT NULL COMMENT '父组件名称', + `parentid` varchar(50) DEFAULT NULL COMMENT '父组件ID', + `type` varchar(50) NOT NULL COMMENT '组件类型:input, select, table, chart, card等', + `name` varchar(100) NOT NULL COMMENT '组件名称', + `label` varchar(100) DEFAULT NULL COMMENT '组件标签文本', + `prop_config` text COMMENT '组件属性配置JSON', + `style_config` text COMMENT '组件样式配置JSON', + `data_config` text COMMENT '组件数据配置JSON', + `sortno` int(11) DEFAULT '0' COMMENT '排序号', + `createtime` datetime NOT NULL COMMENT '创建时间', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码组件表'; + +-- 2.4 数据模型表,用buildertable +CREATE TABLE `lowcodedatamodel` ( + `id` varchar(50) NOT NULL COMMENT '模型ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `applicationid` varchar(50) NOT NULL COMMENT '所属应用ID', + `name` varchar(100) NOT NULL COMMENT '模型名称', + `code` varchar(100) NOT NULL COMMENT '模型编码', + `description` varchar(500) DEFAULT NULL COMMENT '模型描述', + `table_name` varchar(100) DEFAULT NULL COMMENT '关联的物理表名', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0=设计中,1=已发布', + `createtime` datetime NOT NULL COMMENT '创建时间', + `createuserid` varchar(50) NOT NULL COMMENT '创建用户ID', + `createusername` varchar(50) DEFAULT NULL COMMENT '创建用户名', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + `updateuserid` varchar(50) DEFAULT NULL COMMENT '更新用户ID', + `updateusername` varchar(50) DEFAULT NULL COMMENT '更新用户名', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码数据模型表'; + +-- 2.5 数据字段表,用buildertablecolumn +CREATE TABLE `lowcodedatafield` ( + `id` varchar(50) NOT NULL COMMENT '字段ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `model_id` varchar(50) NOT NULL COMMENT '所属模型ID', + `name` varchar(100) NOT NULL COMMENT '字段名称', + `code` varchar(100) NOT NULL COMMENT '字段编码', + `type` varchar(50) NOT NULL COMMENT '字段类型:string, number, boolean, date等', + `length` int(11) DEFAULT NULL COMMENT '字段长度', + `default_value` varchar(200) DEFAULT NULL COMMENT '默认值', + `is_required` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否必填', + `is_key` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否主键', + `is_display` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否在列表中显示', + `is_search` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否可搜索', + `is_sort` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否可排序', + `description` varchar(500) DEFAULT NULL COMMENT '字段描述', + `sortno` int(11) DEFAULT '0' COMMENT '排序号', + `createtime` datetime NOT NULL COMMENT '创建时间', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码数据字段表'; + +-- 2.6 表单设计表 +CREATE TABLE `lowcodeform` ( + `id` varchar(50) NOT NULL COMMENT '表单ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `applicationid` varchar(50) NOT NULL COMMENT '所属应用ID', + `name` varchar(100) NOT NULL COMMENT '表单名称', + `code` varchar(100) NOT NULL COMMENT '表单编码', + `description` varchar(500) DEFAULT NULL COMMENT '表单描述', + `model_id` varchar(50) DEFAULT NULL COMMENT '关联的数据模型ID', + `form_config` text NOT NULL COMMENT '表单配置JSON', + `form_type` varchar(20) NOT NULL DEFAULT 'create' COMMENT '表单类型:create=新建表单,edit=编辑表单,query=查询表单,view=查看表单', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0=草稿,1=已发布', + `version` varchar(20) DEFAULT '1.0' COMMENT '表单版本', + `createtime` datetime NOT NULL COMMENT '创建时间', + `createuserid` varchar(50) NOT NULL COMMENT '创建用户ID', + `createusername` varchar(50) DEFAULT NULL COMMENT '创建用户名', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + `updateuserid` varchar(50) DEFAULT NULL COMMENT '更新用户ID', + `updateusername` varchar(50) DEFAULT NULL COMMENT '更新用户名', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码表单设计表'; + +-- 2.7 数据源表,用externaldatasource +CREATE TABLE `lowcodedatasource` ( + `id` varchar(50) NOT NULL COMMENT '数据源ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `applicationid` varchar(50) NOT NULL COMMENT '所属应用ID', + `name` varchar(100) NOT NULL COMMENT '数据源名称', + `type` varchar(20) NOT NULL COMMENT '数据源类型:mysql,sqlserver,oracle,api,excel等', + `connection_config` text COMMENT '连接配置JSON', + `description` varchar(500) DEFAULT NULL COMMENT '数据源描述', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0=未启用,1=已启用', + `createtime` datetime NOT NULL COMMENT '创建时间', + `createuserid` varchar(50) NOT NULL COMMENT '创建用户ID', + `createusername` varchar(50) DEFAULT NULL COMMENT '创建用户名', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + `updateuserid` varchar(50) DEFAULT NULL COMMENT '更新用户ID', + `updateusername` varchar(50) DEFAULT NULL COMMENT '更新用户名', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码数据源表'; + +-- 2.8 数据可视化表 +CREATE TABLE `lowcodevisualization` ( + `id` varchar(50) NOT NULL COMMENT '可视化ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `applicationid` varchar(50) NOT NULL COMMENT '所属应用ID', + `name` varchar(100) NOT NULL COMMENT '可视化名称', + `type` varchar(50) NOT NULL COMMENT '可视化类型:chart=图表,table=表格,metric=指标卡,map=地图等', + `datasource` varchar(50) DEFAULT NULL COMMENT '数据源ID', + `data_config` text NOT NULL COMMENT '数据配置JSON', + `style_config` text COMMENT '样式配置JSON', + `filter_config` text COMMENT '筛选配置JSON', + `description` varchar(500) DEFAULT NULL COMMENT '可视化描述', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0=草稿,1=已发布', + `createtime` datetime NOT NULL COMMENT '创建时间', + `createuserid` varchar(50) NOT NULL COMMENT '创建用户ID', + `createusername` varchar(50) DEFAULT NULL COMMENT '创建用户名', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + `updateuserid` varchar(50) DEFAULT NULL COMMENT '更新用户ID', + `updateusername` varchar(50) DEFAULT NULL COMMENT '更新用户名', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码数据可视化表'; + +-- 2.9 菜单表 +CREATE TABLE `lowcodemenu` ( + `id` varchar(50) NOT NULL COMMENT '菜单ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `applicationid` varchar(50) NOT NULL COMMENT '所属应用ID', + `parentid` varchar(50) DEFAULT NULL COMMENT '父菜单ID', + `name` varchar(100) NOT NULL COMMENT '菜单名称', + `icon` varchar(50) DEFAULT NULL COMMENT '菜单图标', + `path` varchar(200) DEFAULT NULL COMMENT '菜单路径', + `page_id` varchar(50) DEFAULT NULL COMMENT '关联的页面ID', + `sortno` int(11) DEFAULT '0' COMMENT '排序号', + `is_visible` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否可见', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0=未启用,1=已启用', + `createtime` datetime NOT NULL COMMENT '创建时间', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码菜单表'; + +-- 2.10 API接口表,用sysresource表 +CREATE TABLE `lowcodeapi` ( + `id` varchar(50) NOT NULL COMMENT 'API ID', + `tenantid` varchar(50) NOT NULL COMMENT '租户ID', + `applicationid` varchar(50) NOT NULL COMMENT '所属应用ID', + `name` varchar(100) NOT NULL COMMENT 'API名称', + `method` varchar(10) NOT NULL COMMENT '请求方法:GET, POST, PUT, DELETE等', + `url` varchar(500) NOT NULL COMMENT 'API地址', + `request_config` text COMMENT '请求参数配置JSON', + `response_config` text COMMENT '响应结果配置JSON', + `description` varchar(500) DEFAULT NULL COMMENT 'API描述', + `model_id` varchar(50) DEFAULT NULL COMMENT '关联的数据模型ID', + `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态:0=开发中,1=已发布', + `createtime` datetime NOT NULL COMMENT '创建时间', + `createuserid` varchar(50) NOT NULL COMMENT '创建用户ID', + `createusername` varchar(50) DEFAULT NULL COMMENT '创建用户名', + `updatetime` datetime DEFAULT NULL COMMENT '更新时间', + `updateuserid` varchar(50) DEFAULT NULL COMMENT '更新用户ID', + `updateusername` varchar(50) DEFAULT NULL COMMENT '更新用户名', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='低代码API接口表'; From 576ff6e98a0d443519620c7b1d1ff9d01bfc86c6 Mon Sep 17 00:00:00 2001 From: wintel Date: Tue, 6 May 2025 21:15:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=AB=98?= =?UTF-8?q?=E7=BA=A7=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.App/Base/PageReq.cs | 5 +++++ OpenAuth.App/BuilderTable/BuilderTableApp.cs | 3 +++ OpenAuth.App/ExtDataSourceApp/ExtDataSourceApp.cs | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/OpenAuth.App/Base/PageReq.cs b/OpenAuth.App/Base/PageReq.cs index 8fcc1c72..1a8193b4 100644 --- a/OpenAuth.App/Base/PageReq.cs +++ b/OpenAuth.App/Base/PageReq.cs @@ -15,6 +15,11 @@ public string key { get; set; } + /// + /// 自定义sql条件 + /// + public string sqlWhere { get; set; } + public PageReq() { page = 1; diff --git a/OpenAuth.App/BuilderTable/BuilderTableApp.cs b/OpenAuth.App/BuilderTable/BuilderTableApp.cs index 7012b959..6d612a38 100644 --- a/OpenAuth.App/BuilderTable/BuilderTableApp.cs +++ b/OpenAuth.App/BuilderTable/BuilderTableApp.cs @@ -569,6 +569,9 @@ namespace OpenAuth.App { return "DateTime.Now"; } + else if (type == "bool"){ + return "false"; + } return Activator.CreateInstance(t).ToString(); } diff --git a/OpenAuth.App/ExtDataSourceApp/ExtDataSourceApp.cs b/OpenAuth.App/ExtDataSourceApp/ExtDataSourceApp.cs index 72aadb14..73984938 100644 --- a/OpenAuth.App/ExtDataSourceApp/ExtDataSourceApp.cs +++ b/OpenAuth.App/ExtDataSourceApp/ExtDataSourceApp.cs @@ -32,6 +32,10 @@ namespace OpenAuth.App { objs = objs.Where(u => u.Name.Contains(request.key)); } + if (!string.IsNullOrEmpty(request.sqlWhere)) + { + objs = objs.Where(request.sqlWhere); + } result.data = objs.OrderBy(u => u.Name) .Skip((request.page - 1) * request.limit)