longz
2026-06-29 9d4cbff7464ebfd7803c2ce53ded49d0f73fe011
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
CREATE TABLE IF NOT EXISTS biz_sensitive_word (
    id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
    uuid VARCHAR(64) NOT NULL COMMENT '业务UUID',
    version BIGINT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号',
    word VARCHAR(50) NOT NULL COMMENT '敏感词',
    enabled TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用 1启用 0禁用',
    create_id BIGINT NULL COMMENT '创建人',
    create_time DATETIME NULL COMMENT '创建时间',
    update_id BIGINT NULL COMMENT '更新人',
    update_time DATETIME NULL COMMENT '更新时间',
    del_flag TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记 0未删 1已删',
    UNIQUE KEY uk_biz_sensitive_word_uuid (uuid),
    KEY idx_biz_sensitive_word_enabled (enabled, del_flag),
    KEY idx_biz_sensitive_word_word (word, del_flag)
) COMMENT='敏感词库';
 
INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag)
SELECT REPLACE(UUID(), '-', ''), 1, p.id, 2, '敏感词库', 'config:sensitive-words:page', 50, '/system/sensitive-words', 0
FROM sys_menu p
WHERE p.id = (
    SELECT root.id
    FROM (
        SELECT id
        FROM sys_menu
        WHERE pid = 0
          AND menu_type = 1
          AND menu_name IN ('系统管理', '系统')
          AND del_flag = 0
        ORDER BY CASE WHEN menu_name = '系统管理' THEN 0 ELSE 1 END, id
        LIMIT 1
    ) root
)
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE route_path = '/system/sensitive-words' AND del_flag = 0);
 
INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag)
SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '新增', 'config:sensitive-words:create', 10, NULL, 0
FROM sys_menu p
WHERE p.route_path = '/system/sensitive-words' AND p.del_flag = 0
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:sensitive-words:create' AND del_flag = 0);
 
INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag)
SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '编辑', 'config:sensitive-words:update', 20, NULL, 0
FROM sys_menu p
WHERE p.route_path = '/system/sensitive-words' AND p.del_flag = 0
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:sensitive-words:update' AND del_flag = 0);
 
INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag)
SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '启停', 'config:sensitive-words:status', 30, NULL, 0
FROM sys_menu p
WHERE p.route_path = '/system/sensitive-words' AND p.del_flag = 0
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:sensitive-words:status' AND del_flag = 0);
 
INSERT INTO sys_menu (uuid, version, pid, menu_type, menu_name, perm_code, sort_order, route_path, del_flag)
SELECT REPLACE(UUID(), '-', ''), 1, p.id, 3, '删除', 'config:sensitive-words:delete', 40, NULL, 0
FROM sys_menu p
WHERE p.route_path = '/system/sensitive-words' AND p.del_flag = 0
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE perm_code = 'config:sensitive-words:delete' AND del_flag = 0);
 
INSERT INTO sys_role_menu (uuid, version, role_id, menu_id, del_flag)
SELECT LOWER(MD5(CONCAT(r.id, ':', m.id, ':sensitive-word'))), 1, r.id, m.id, 0
FROM sys_role r
JOIN sys_menu m ON m.del_flag = 0
LEFT JOIN sys_role_menu rm ON rm.role_id = r.id AND rm.menu_id = m.id AND rm.del_flag = 0
WHERE r.role_code = 'ADMIN'
  AND r.del_flag = 0
  AND m.perm_code LIKE 'config:sensitive-words:%'
  AND rm.id IS NULL;