Files
freedom-admin/sql/delta_gun_code.sql
T
张家训 65a844d5bd
CI/CD Deploy (Admin) / 构建后端镜像并部署 (push) Successful in 8s
feat: 新增改枪码录入菜单权限与角色授权脚本
2026-09-10 09:55:42 +08:00

77 lines
4.5 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.
-- ============================================================
-- 三角洲行动 · 改枪码模块(delta_gun_code)
-- 数据库: freedom_db
-- 用途: 后台维护改枪码 + 无需鉴权的公开复制页面数据源
-- 说明: 可重复执行(CREATE TABLE IF NOT EXISTS / 幂等 INSERT 判断)
-- 执行后需重新登录系统(或退出登录)刷新菜单缓存方可看到新菜单
-- ============================================================
USE `freedom_db`;
-- 1. 改枪码数据表
CREATE TABLE IF NOT EXISTS `delta_gun_code` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR(100) NOT NULL COMMENT '配装名称',
`gun_name` VARCHAR(100) DEFAULT NULL COMMENT '枪械/载具名称',
`category` VARCHAR(50) DEFAULT NULL COMMENT '分类标签(主武器/副武器/载具配置等)',
`code` TEXT NOT NULL COMMENT '改枪码内容',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注说明',
`sort` INT DEFAULT 0 COMMENT '排序',
`status` TINYINT DEFAULT 1 COMMENT '状态:1显示 0隐藏',
`copy_count` INT DEFAULT 0 COMMENT '被复制次数',
`create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建者',
`create_date` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(50) DEFAULT NULL COMMENT '更新者',
`update_date` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` TINYINT DEFAULT 0 COMMENT '删除标记',
PRIMARY KEY (`id`),
KEY `idx_delta_code_status` (`status`, `del_flag`)
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT='三角洲改枪码表';
-- 2. 菜单权限:一级菜单「三角洲」
INSERT INTO `t_sys_permission`
(`parent_id`, `permission_code`, `permission_name`, `permission_desc`, `level`, `icon`, `url`, `component`, `sort`, `create_by`, `create_date`, `del_flag`)
SELECT 0, 'delta', '三角洲', '三角洲行动相关功能', 1, 'md-game-controller-a', '', '', 9, 'admin', NOW(), 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `t_sys_permission` WHERE `permission_code` = 'delta' AND `del_flag` = 0);
-- 3. 菜单权限:二级菜单「改枪码管理」
SET @delta_parent_id = (SELECT `id` FROM `t_sys_permission` WHERE `permission_code` = 'delta' AND `del_flag` = 0 ORDER BY `id` LIMIT 1);
INSERT INTO `t_sys_permission`
(`parent_id`, `permission_code`, `permission_name`, `permission_desc`, `level`, `icon`, `url`, `component`, `sort`, `create_by`, `create_date`, `del_flag`)
SELECT @delta_parent_id, 'delta:gun-code', '改枪码管理', '三角洲改枪码维护与分享', 2, 'md-code-working', '/delta/gun-code', '/delta/delta-gun-code', 1, 'admin', NOW(), 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `t_sys_permission` WHERE `permission_code` = 'delta:gun-code' AND `del_flag` = 0);
-- 4. 角色授权:给所有现有角色挂上新菜单(幂等)
INSERT INTO `t_sys_role_permission` (`role_id`, `permission_id`, `create_by`, `create_date`)
SELECT r.`id`, p.`id`, 'admin', NOW()
FROM `t_sys_role` r
JOIN `t_sys_permission` p ON p.`permission_code` IN ('delta', 'delta:gun-code') AND p.`del_flag` = 0
WHERE r.`del_flag` = 0
AND NOT EXISTS (
SELECT 1 FROM `t_sys_role_permission` rp
WHERE rp.`role_id` = r.`id` AND rp.`permission_id` = p.`id`
);
-- 5. 菜单权限:二级菜单「改枪码录入」
SET @delta_parent_id = (SELECT `id` FROM `t_sys_permission` WHERE `permission_code` = 'delta' AND `del_flag` = 0 ORDER BY `id` LIMIT 1);
INSERT INTO `t_sys_permission`
(`parent_id`, `permission_code`, `permission_name`, `permission_desc`, `level`, `icon`, `url`, `component`, `sort`, `create_by`, `create_date`, `del_flag`)
SELECT @delta_parent_id, 'delta:gun-code-entry', '改枪码录入', '快速录入三角洲改枪码', 2, 'md-create', '/delta/gun-code-entry', '/delta/delta-gun-code-entry', 0, 'admin', NOW(), 0
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `t_sys_permission` WHERE `permission_code` = 'delta:gun-code-entry' AND `del_flag` = 0);
-- 6. 角色授权:给所有现有角色挂上「改枪码录入」菜单(幂等)
INSERT INTO `t_sys_role_permission` (`role_id`, `permission_id`, `create_by`, `create_date`)
SELECT r.`id`, p.`id`, 'admin', NOW()
FROM `t_sys_role` r
JOIN `t_sys_permission` p ON p.`permission_code` = 'delta:gun-code-entry' AND p.`del_flag` = 0
WHERE r.`del_flag` = 0
AND NOT EXISTS (
SELECT 1 FROM `t_sys_role_permission` rp
WHERE rp.`role_id` = r.`id` AND rp.`permission_id` = p.`id`
);