-- ======================================== -- 奖学金名额分配模块 - 菜单权限配置 -- 创建时间: 2025-01-27 -- 说明: 配置名额分配功能的菜单和权限 -- ======================================== USE hzdyjs_xg; -- 设置变量 SET @parent_menu_id = 2015; -- 奖惩补贴管理父菜单ID SET @menu_order = 4; -- 菜单排序 -- ===================================================== -- 1. 删除已存在的菜单(开发环境重新创建) -- ===================================================== DELETE FROM sys_menu WHERE menu_name = '名额分配管理' AND parent_id = @parent_menu_id; -- ===================================================== -- 2. 创建名额分配管理菜单 -- ===================================================== INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('名额分配管理', @parent_menu_id, @menu_order, 'scholarshipQuota', 'jcbt/scholarshipQuota/index', '', 1, 0, 'C', '0', '0', 'jcbt:scholarshipQuota:list', 'tree-table', 1, NOW(), 1, NOW(), '奖学金名额分配管理菜单'); -- 获取刚插入的菜单ID SET @quota_menu_id = LAST_INSERT_ID(); -- ===================================================== -- 3. 创建名额分配功能按钮权限 -- ===================================================== -- 3.1 查询权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('名额分配查询', @quota_menu_id, 1, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:query', '#', 1, NOW(), 1, NOW(), ''); -- 3.2 新增权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('名额分配新增', @quota_menu_id, 2, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:add', '#', 1, NOW(), 1, NOW(), ''); -- 3.3 修改权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('名额分配修改', @quota_menu_id, 3, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:edit', '#', 1, NOW(), 1, NOW(), ''); -- 3.4 删除权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('名额分配删除', @quota_menu_id, 4, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:remove', '#', 1, NOW(), 1, NOW(), ''); -- 3.5 导出权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('名额分配导出', @quota_menu_id, 5, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:export', '#', 1, NOW(), 1, NOW(), ''); -- 3.6 批量分配权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('批量分配名额', @quota_menu_id, 6, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:batchAllocate', '#', 1, NOW(), 1, NOW(), ''); -- 3.7 名额调整权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('名额调整', @quota_menu_id, 7, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:adjust', '#', 1, NOW(), 1, NOW(), ''); -- 3.8 名额锁定权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('名额锁定', @quota_menu_id, 8, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:lock', '#', 1, NOW(), 1, NOW(), ''); -- 3.9 自动分配权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('自动分配名额', @quota_menu_id, 9, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:autoAllocate', '#', 1, NOW(), 1, NOW(), ''); -- 3.10 复制分配权限 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) VALUES ('复制名额分配', @quota_menu_id, 10, '', '', '', 1, 0, 'F', '0', '0', 'jcbt:scholarshipQuota:copy', '#', 1, NOW(), 1, NOW(), ''); -- ===================================================== -- 4. 为管理员角色分配权限 -- ===================================================== -- 4.1 获取管理员角色ID SET @admin_role_id = (SELECT role_id FROM sys_role WHERE role_key = 'admin' LIMIT 1); -- 4.2 为管理员角色分配名额分配菜单权限 INSERT INTO sys_role_menu (role_id, menu_id) SELECT @admin_role_id, menu_id FROM sys_menu WHERE (menu_id = @quota_menu_id OR parent_id = @quota_menu_id) AND NOT EXISTS ( SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = @admin_role_id AND rm.menu_id = sys_menu.menu_id ); -- ===================================================== -- 5. 创建字典数据 -- ===================================================== -- 5.1 分配级别字典 INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES ('名额分配级别', 'jcbt_quota_allocation_level', '0', 1, NOW(), 1, NOW(), '奖学金名额分配级别字典类型') ON DUPLICATE KEY UPDATE dict_name = VALUES(dict_name); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (1, '全校', 'UNIVERSITY', 'jcbt_quota_allocation_level', '', 'primary', 'Y', '0', 1, NOW(), 1, NOW(), '全校级别分配'), (2, '学院', 'COLLEGE', 'jcbt_quota_allocation_level', '', 'success', 'N', '0', 1, NOW(), 1, NOW(), '学院级别分配'), (3, '专业', 'MAJOR', 'jcbt_quota_allocation_level', '', 'info', 'N', '0', 1, NOW(), 1, NOW(), '专业级别分配'), (4, '班级', 'CLASS', 'jcbt_quota_allocation_level', '', 'warning', 'N', '0', 1, NOW(), 1, NOW(), '班级级别分配') ON DUPLICATE KEY UPDATE dict_label = VALUES(dict_label); -- 5.2 分配方式字典 INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES ('名额分配方式', 'jcbt_quota_allocation_method', '0', 1, NOW(), 1, NOW(), '奖学金名额分配方式字典类型') ON DUPLICATE KEY UPDATE dict_name = VALUES(dict_name); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (1, '手动分配', 'MANUAL', 'jcbt_quota_allocation_method', '', 'primary', 'Y', '0', 1, NOW(), 1, NOW(), '手动分配名额'), (2, '自动分配', 'AUTO', 'jcbt_quota_allocation_method', '', 'success', 'N', '0', 1, NOW(), 1, NOW(), '自动分配名额'), (3, '按比例分配', 'PROPORTIONAL', 'jcbt_quota_allocation_method', '', 'info', 'N', '0', 1, NOW(), 1, NOW(), '按比例分配名额') ON DUPLICATE KEY UPDATE dict_label = VALUES(dict_label); -- 5.3 分配状态字典 INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES ('名额分配状态', 'jcbt_quota_status', '0', 1, NOW(), 1, NOW(), '奖学金名额分配状态字典类型') ON DUPLICATE KEY UPDATE dict_name = VALUES(dict_name); INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, update_by, update_time, remark) VALUES (1, '生效', 'ACTIVE', 'jcbt_quota_status', '', 'success', 'Y', '0', 1, NOW(), 1, NOW(), '名额分配生效'), (2, '失效', 'INACTIVE', 'jcbt_quota_status', '', 'danger', 'N', '0', 1, NOW(), 1, NOW(), '名额分配失效'), (3, '待审核', 'PENDING', 'jcbt_quota_status', '', 'warning', 'N', '0', 1, NOW(), 1, NOW(), '名额分配待审核') ON DUPLICATE KEY UPDATE dict_label = VALUES(dict_label); -- ===================================================== -- 6. 验证创建结果 -- ===================================================== SELECT '名额分配管理菜单创建完成!' as message; SELECT menu_id, menu_name, parent_id, perms FROM sys_menu WHERE menu_name LIKE '%名额分配%' ORDER BY parent_id, order_num; SELECT dict_type, COUNT(*) as count FROM sys_dict_data WHERE dict_type LIKE 'jcbt_quota_%' GROUP BY dict_type;