Files
----/后端源码/yifan.action-ai.cn/api/sql/yifan_naming_solutions_permissions.sql

159 lines
7.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ============================================
-- 改名方案模块权限配置
-- ============================================
-- 此脚本为改名方案模块创建菜单和权限配置
-- 执行前请确保 sys_menu 表存在
-- ============================================
-- 第一步:查找或创建易凡模块的父菜单
-- ============================================
-- 查找易凡模块的菜单ID假设已存在
SET @yifan_parent_id = (SELECT id FROM sys_menu WHERE name = '易凡模块' AND type = 1 LIMIT 1);
-- 如果不存在,创建易凡模块目录
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
SELECT '易凡模块', 1, '/module_yifan', 'Layout', 'el-icon-star-filled', 100, 0, 1, NULL, NULL, NOW(), NOW()
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE name = '易凡模块' AND type = 1);
-- 重新获取父菜单ID
SET @yifan_parent_id = (SELECT id FROM sys_menu WHERE name = '易凡模块' AND type = 1 LIMIT 1);
-- ============================================
-- 第二步:创建改名方案菜单
-- ============================================
-- 删除旧的改名方案菜单(如果存在)
DELETE FROM sys_menu WHERE name = '改名方案' AND type = 2;
-- 创建改名方案菜单
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('改名方案', 2, '/module_yifan/yifan_naming_solutions', 'module_yifan/yifan_naming_solutions/index', 'el-icon-document', 3, 0, 1, @yifan_parent_id, 'module_yifan:yifan_naming_solutions:query', NOW(), NOW());
-- 获取改名方案菜单ID
SET @naming_solutions_menu_id = LAST_INSERT_ID();
-- ============================================
-- 第三步:创建改名方案的按钮权限
-- ============================================
-- 查询权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('查询', 3, NULL, NULL, NULL, 1, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:query', NOW(), NOW());
-- 详情权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('详情', 3, NULL, NULL, NULL, 2, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:detail', NOW(), NOW());
-- 新增权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('新增', 3, NULL, NULL, NULL, 3, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:create', NOW(), NOW());
-- 修改权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('修改', 3, NULL, NULL, NULL, 4, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:update', NOW(), NOW());
-- 删除权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('删除', 3, NULL, NULL, NULL, 5, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:delete', NOW(), NOW());
-- 批量操作权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('批量操作', 3, NULL, NULL, NULL, 6, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:batch', NOW(), NOW());
-- 修改状态权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('修改状态', 3, NULL, NULL, NULL, 7, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:patch', NOW(), NOW());
-- 导入权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('导入', 3, NULL, NULL, NULL, 8, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:import', NOW(), NOW());
-- 导出权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('导出', 3, NULL, NULL, NULL, 9, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:export', NOW(), NOW());
-- 下载模板权限
INSERT INTO sys_menu (name, type, path, component, icon, sort, status, visible, parent_id, perms, created_time, updated_time)
VALUES ('下载模板', 3, NULL, NULL, NULL, 10, 0, 1, @naming_solutions_menu_id, 'module_yifan:yifan_naming_solutions:download', NOW(), NOW());
-- ============================================
-- 第四步:为管理员角色分配权限
-- ============================================
-- 获取管理员角色ID通常是1也可能是其他值
SET @admin_role_id = (SELECT id FROM sys_role WHERE role_code = 'admin' OR role_name = '管理员' OR id = 1 LIMIT 1);
-- 为管理员角色分配改名方案菜单权限
INSERT INTO sys_role_menus (role_id, menu_id, created_time, updated_time)
SELECT @admin_role_id, id, NOW(), NOW()
FROM sys_menu
WHERE (id = @naming_solutions_menu_id OR parent_id = @naming_solutions_menu_id)
AND NOT EXISTS (
SELECT 1 FROM sys_role_menus
WHERE role_id = @admin_role_id AND menu_id = sys_menu.id
);
-- ============================================
-- 验证结果
-- ============================================
-- 查看创建的菜单
SELECT
m.id,
m.name,
m.type,
CASE m.type
WHEN 1 THEN '目录'
WHEN 2 THEN '菜单'
WHEN 3 THEN '按钮'
WHEN 4 THEN '链接'
END as type_name,
m.path,
m.perms,
m.parent_id,
p.name as parent_name
FROM sys_menu m
LEFT JOIN sys_menu p ON m.parent_id = p.id
WHERE m.name IN ('易凡模块', '改名方案') OR m.parent_id = @naming_solutions_menu_id
ORDER BY m.parent_id, m.sort;
-- 查看管理员角色的权限分配
SELECT
r.id as role_id,
r.role_name,
m.id as menu_id,
m.name as menu_name,
m.perms
FROM sys_role r
JOIN sys_role_menus rm ON r.id = rm.role_id
JOIN sys_menu m ON rm.menu_id = m.id
WHERE r.id = @admin_role_id
AND (m.id = @naming_solutions_menu_id OR m.parent_id = @naming_solutions_menu_id)
ORDER BY m.sort;
-- 统计信息
SELECT
'改名方案菜单ID' as info_type,
@naming_solutions_menu_id as value
UNION ALL
SELECT
'管理员角色ID' as info_type,
@admin_role_id as value
UNION ALL
SELECT
'创建的权限数量' as info_type,
COUNT(*) as value
FROM sys_menu
WHERE parent_id = @naming_solutions_menu_id;
-- ============================================
-- 注意事项
-- ============================================
-- 1. status 字段0=启用1=停用
-- 2. visible 字段0=显示1=隐藏
-- 3. type 字段1=目录2=菜单3=按钮/权限4=链接
-- 4. 如果管理员角色ID不是1需要手动调整 @admin_role_id
-- 5. 执行后需要重新登录才能看到新菜单
-- 6. 如果菜单路径或组件路径不对,需要根据实际情况调整