187 lines
6.2 KiB
Plaintext
187 lines
6.2 KiB
Plaintext
## 通用变量定义
|
||
#if ($importEnable)
|
||
#set ($functionNames = ['查询', '创建', '更新', '删除', '导出', '导入'])
|
||
#set ($functionOps = ['query', 'create', 'update', 'delete', 'export', 'import'])
|
||
#else
|
||
#set ($functionNames = ['查询', '创建', '更新', '删除', '导出'])
|
||
#set ($functionOps = ['query', 'create', 'update', 'delete', 'export'])
|
||
#end
|
||
##
|
||
## 宏定义:生成按钮 SQL(通用部分)
|
||
#macro(insertButtonSql $parentIdVar)
|
||
#foreach ($functionName in $functionNames)
|
||
#set ($index = $foreach.count - 1)
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status
|
||
)
|
||
VALUES (
|
||
'${table.classComment}${functionName}', '${permissionPrefix}:${functionOps.get($index)}', 3, $foreach.count, ${parentIdVar},
|
||
'', '', '', 0
|
||
);
|
||
#end
|
||
#end
|
||
##
|
||
## ======================= MySQL / OceanBase =======================
|
||
#if ($dbType.name() == 'MYSQL' || $dbType.name() == 'OCEAN_BASE')
|
||
-- 菜单 SQL
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status, component_name
|
||
)
|
||
VALUES (
|
||
'${table.classComment}管理', '', 2, 0, ${table.parentMenuId},
|
||
'${simpleClassName_strikeCase}', '', '${table.moduleName}/${table.businessName}/index', 0, '${table.className}'
|
||
);
|
||
|
||
-- 按钮父菜单ID
|
||
SELECT @parentId := LAST_INSERT_ID();
|
||
|
||
-- 按钮 SQL
|
||
#foreach ($functionName in $functionNames)
|
||
#set ($index = $foreach.count - 1)
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status
|
||
)
|
||
VALUES (
|
||
'${table.classComment}${functionName}', '${permissionPrefix}:${functionOps.get($index)}', 3, $foreach.count, @parentId,
|
||
'', '', '', 0
|
||
);
|
||
#end
|
||
##
|
||
## ======================= Oracle / 达梦 DM =======================
|
||
#elseif ($dbType.name() == 'ORACLE' || $dbType.name() == 'DM')
|
||
-- 菜单 SQL
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status, component_name
|
||
)
|
||
VALUES (
|
||
'${table.classComment}管理', '', 2, 0, ${table.parentMenuId},
|
||
'${simpleClassName_strikeCase}', '', '${table.moduleName}/${table.businessName}/index', 0, '${table.className}'
|
||
);
|
||
|
||
-- 按钮父菜单ID
|
||
-- 说明:Oracle/达梦 使用序列获取上一个插入的 ID
|
||
DECLARE
|
||
v_parent_id NUMBER;
|
||
BEGIN
|
||
SELECT system_menu_seq.CURRVAL INTO v_parent_id FROM DUAL;
|
||
-- 按钮 SQL
|
||
#foreach ($functionName in $functionNames)
|
||
#set ($index = $foreach.count - 1)
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status
|
||
)
|
||
VALUES (
|
||
'${table.classComment}${functionName}', '${permissionPrefix}:${functionOps.get($index)}', 3, $foreach.count, v_parent_id,
|
||
'', '', '', 0
|
||
);
|
||
#end
|
||
END;
|
||
/
|
||
##
|
||
## ======================= PostgreSQL / 人大金仓 KingbaseES =======================
|
||
#elseif ($dbType.name() == 'POSTGRE_SQL' || $dbType.name() == 'KINGBASE_ES')
|
||
-- 菜单 SQL
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status, component_name
|
||
)
|
||
VALUES (
|
||
'${table.classComment}管理', '', 2, 0, ${table.parentMenuId},
|
||
'${simpleClassName_strikeCase}', '', '${table.moduleName}/${table.businessName}/index', 0, '${table.className}'
|
||
);
|
||
|
||
-- 按钮父菜单ID
|
||
-- 说明:PostgreSQL/KingbaseES 使用 lastval() 获取上一个插入的序列值
|
||
DO $$
|
||
DECLARE
|
||
v_parent_id BIGINT;
|
||
BEGIN
|
||
v_parent_id := lastval();
|
||
-- 按钮 SQL
|
||
#foreach ($functionName in $functionNames)
|
||
#set ($index = $foreach.count - 1)
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status
|
||
)
|
||
VALUES (
|
||
'${table.classComment}${functionName}', '${permissionPrefix}:${functionOps.get($index)}', 3, $foreach.count, v_parent_id,
|
||
'', '', '', 0
|
||
);
|
||
#end
|
||
END $$;
|
||
##
|
||
## ======================= SQL Server =======================
|
||
#elseif ($dbType.name() == 'SQL_SERVER' || $dbType.name() == 'SQL_SERVER2005')
|
||
-- 菜单 SQL
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status, component_name
|
||
)
|
||
VALUES (
|
||
'${table.classComment}管理', '', 2, 0, ${table.parentMenuId},
|
||
'${simpleClassName_strikeCase}', '', '${table.moduleName}/${table.businessName}/index', 0, '${table.className}'
|
||
);
|
||
|
||
-- 按钮父菜单ID
|
||
-- 说明:SQL Server 使用 SCOPE_IDENTITY() 获取上一个插入的自增 ID
|
||
DECLARE @parentId BIGINT;
|
||
SET @parentId = SCOPE_IDENTITY();
|
||
|
||
-- 按钮 SQL
|
||
#foreach ($functionName in $functionNames)
|
||
#set ($index = $foreach.count - 1)
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status
|
||
)
|
||
VALUES (
|
||
'${table.classComment}${functionName}', '${permissionPrefix}:${functionOps.get($index)}', 3, $foreach.count, @parentId,
|
||
'', '', '', 0
|
||
);
|
||
#end
|
||
##
|
||
## ======================= 不支持的数据库类型 =======================
|
||
#else
|
||
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
-- 注意:当前数据库类型 ${dbType.name()} 暂不支持自动生成菜单 SQL
|
||
-- 请参考以下 MySQL 语法,手动修改为您的数据库对应的语法
|
||
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
|
||
-- 菜单 SQL
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status, component_name
|
||
)
|
||
VALUES (
|
||
'${table.classComment}管理', '', 2, 0, ${table.parentMenuId},
|
||
'${simpleClassName_strikeCase}', '', '${table.moduleName}/${table.businessName}/index', 0, '${table.className}'
|
||
);
|
||
|
||
-- 按钮父菜单ID
|
||
-- TODO: 请根据您的数据库类型,修改获取上一个插入 ID 的方式
|
||
-- MySQL: SELECT @parentId := LAST_INSERT_ID();
|
||
-- Oracle: SELECT system_menu_seq.CURRVAL INTO v_parent_id FROM DUAL;
|
||
-- PostgreSQL: SELECT lastval() INTO v_parent_id;
|
||
-- SQL Server: SET @parentId = SCOPE_IDENTITY();
|
||
SELECT @parentId := LAST_INSERT_ID();
|
||
|
||
-- 按钮 SQL
|
||
#foreach ($functionName in $functionNames)
|
||
#set ($index = $foreach.count - 1)
|
||
INSERT INTO system_menu(
|
||
name, permission, type, sort, parent_id,
|
||
path, icon, component, status
|
||
)
|
||
VALUES (
|
||
'${table.classComment}${functionName}', '${permissionPrefix}:${functionOps.get($index)}', 3, $foreach.count, @parentId,
|
||
'', '', '', 0
|
||
);
|
||
#end
|
||
#end
|