This commit is contained in:
2026-06-19 11:27:53 +08:00
parent b16db987a7
commit 39079b9022
22 changed files with 1673 additions and 7 deletions

View File

@@ -0,0 +1,75 @@
-- ============================================
-- 查询白名单 - 后台菜单迁移 SQL
-- 将「模块白名单」替换为「查询白名单」
-- 数据库ycc
-- 父菜单:产品管理 (48d0e129-a141-4a74-b519-7adc38d22d27)
-- ============================================
-- 1. 软删除旧「模块白名单」菜单
UPDATE `admin_menu`
SET `del_state` = 1, `version` = `version` + 1
WHERE `path` = '/product-manage/whitelist/list' AND `del_state` = 0;
-- 2. 插入「查询白名单」菜单(已存在则跳过)
INSERT INTO `admin_menu` (
`id`, `pid`, `name`, `path`, `component`, `redirect`, `meta`,
`status`, `type`, `sort`, `del_state`, `version`
)
SELECT
'd02e094d-6af8-11f1-bd31-dec53e82fe75',
'48d0e129-a141-4a74-b519-7adc38d22d27',
'queryWhitelist',
'/product-manage/query-whitelist/list',
'/product-manage/query-whitelist/list',
NULL,
JSON_OBJECT('icon', 'lucide:shield-off', 'title', '查询白名单'),
1,
1,
0,
0,
0
FROM DUAL
WHERE NOT EXISTS (
SELECT 1 FROM `admin_menu`
WHERE `path` = '/product-manage/query-whitelist/list' AND `del_state` = 0
);
-- 3. 给「超级管理员」授权新菜单
INSERT INTO `admin_role_menu` (`id`, `role_id`, `menu_id`, `del_state`, `version`)
SELECT
UUID(),
'741b7a39-a95d-4b9d-8dc0-84ee664d5fef',
m.`id`,
0,
0
FROM `admin_menu` m
WHERE m.`path` = '/product-manage/query-whitelist/list'
AND m.`del_state` = 0
AND NOT EXISTS (
SELECT 1 FROM `admin_role_menu` rm
WHERE rm.`role_id` = '741b7a39-a95d-4b9d-8dc0-84ee664d5fef'
AND rm.`menu_id` = m.`id`
AND rm.`del_state` = 0
);
-- 4. 给所有曾拥有旧「模块白名单」权限的角色同步授权
INSERT INTO `admin_role_menu` (`id`, `role_id`, `menu_id`, `del_state`, `version`)
SELECT
UUID(),
arm.`role_id`,
m.`id`,
0,
0
FROM `admin_role_menu` arm
JOIN `admin_menu` old_m ON old_m.`path` = '/product-manage/whitelist/list'
JOIN `admin_menu` m ON m.`path` = '/product-manage/query-whitelist/list' AND m.`del_state` = 0
WHERE arm.`menu_id` = old_m.`id`
AND arm.`del_state` = 0
AND NOT EXISTS (
SELECT 1 FROM `admin_role_menu` x
WHERE x.`role_id` = arm.`role_id`
AND x.`menu_id` = m.`id`
AND x.`del_state` = 0
);
-- 执行后请重新登录管理后台

View File

@@ -0,0 +1,9 @@
-- ============================================
-- 移除独立的「查询白名单记录」菜单(记录已合并到配置页下方)
-- ============================================
UPDATE `admin_menu`
SET `del_state` = 1, `version` = `version` + 1
WHERE `path` = '/product-manage/query-whitelist/op-log' AND `del_state` = 0;
-- 执行后请重新登录管理后台

View File

@@ -0,0 +1,34 @@
-- ============================================
-- 查询白名单操作记录表
-- 记录后台管理员通过天远 API 创建/追加屏蔽规则的操作
-- ============================================
CREATE TABLE IF NOT EXISTS `query_whitelist_op_log` (
`id` CHAR(36) NOT NULL COMMENT 'UUID主键',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`delete_time` datetime DEFAULT NULL COMMENT '删除时间',
`del_state` tinyint NOT NULL DEFAULT '0' COMMENT '删除状态0=未删除1=已删除',
`version` bigint NOT NULL DEFAULT '0' COMMENT '版本号(乐观锁)',
`admin_user_id` CHAR(36) NOT NULL COMMENT '操作管理员ID',
`action` varchar(20) NOT NULL COMMENT '操作类型create=创建规则append=追加接口',
`name` varchar(50) NOT NULL DEFAULT '*' COMMENT '姓名规则',
`id_card` varchar(50) NOT NULL COMMENT '身份证号(明文,供后台审计)',
`id_card_masked` varchar(50) DEFAULT NULL COMMENT '天远返回的脱敏身份证号',
`api_codes` varchar(2000) NOT NULL COMMENT '本次提交的产品编码JSON数组',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`tianyuan_code` int NOT NULL DEFAULT 0 COMMENT '天远 API 业务码',
`tianyuan_message` varchar(500) DEFAULT NULL COMMENT '天远 API 返回描述',
`transaction_id` varchar(64) DEFAULT NULL COMMENT '天远 API 流水号',
`entry_id` varchar(64) DEFAULT NULL COMMENT '天远规则ID成功时',
`entry_status` varchar(20) DEFAULT NULL COMMENT '规则状态(成功时)',
`entry_api_codes` varchar(2000) DEFAULT NULL COMMENT '规则当前产品编码列表JSON数组成功时',
PRIMARY KEY (`id`),
KEY `idx_admin_user_id` (`admin_user_id`),
KEY `idx_id_card` (`id_card`),
KEY `idx_action` (`action`),
KEY `idx_tianyuan_code` (`tianyuan_code`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='查询白名单操作记录表';