yanderong
2026-10-02 bca4733e4b0fcd9b6496e608304549a09f982463
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
-- =============================================================================
-- 2026-09-30 公司管理-充值记录二级菜单与导出按钮
-- -----------------------------------------------------------------------------
-- 前置说明:
--   1) 父菜单「单位管理」path='/company'(menu_id=51,测试库已建)
--   2) 全部语句幂等,可重复执行
--   3) 权限键与前端 accessKey、后端 @RequiresPermissions 一致:
--        C 列表页 path = /company/rechargeRecord
--        F 导出按钮   path = '#'  perms = /company/rechargeRecord/export
--   4) 默认授权 admin(role_id=1)和 company_admin(role_id=75)
--   5) 依赖前置脚本:20260930_company_admin_role_menu.sql(提供 company_admin 角色)
-- =============================================================================
SET NAMES utf8mb4;
 
USE charging_pile_other;
 
-- -----------------------------------------------------------------------------
-- 1. 充值记录(菜单 C)
-- -----------------------------------------------------------------------------
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT '充值记录', 51, 4, '/company/rechargeRecord', 'company/rechargeRecord/index', NULL, 1, 0, 'C', '0', '0', '/company/rechargeRecord', 'wallet', 'admin', NOW(), '公司管理-充值记录'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_type = 'C' AND perms = '/company/rechargeRecord');
 
-- -----------------------------------------------------------------------------
-- 2. 导出按钮(F)
-- -----------------------------------------------------------------------------
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT '导出', (
    SELECT menu_id FROM sys_menu WHERE menu_type = 'C' AND perms = '/company/rechargeRecord' LIMIT 1
), 1, '#', NULL, NULL, 1, 0, 'F', '0', '0', '/company/rechargeRecord/export', '#', 'admin', NOW(), '公司管理-充值记录-导出'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE perms = '/company/rechargeRecord/export');
 
-- -----------------------------------------------------------------------------
-- 3. 默认授权 admin 角色(role_id=1)
-- -----------------------------------------------------------------------------
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 1, m.menu_id
FROM sys_menu m
WHERE (m.perms = '/company/rechargeRecord' OR m.perms = '/company/rechargeRecord/export')
  AND NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id);
 
-- -----------------------------------------------------------------------------
-- 4. 默认授权 company_admin(role_id=75;该角色由 20260930_company_admin_role_menu.sql 创建)
-- -----------------------------------------------------------------------------
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 75, m.menu_id
FROM sys_menu m
WHERE (m.perms = '/company/rechargeRecord' OR m.perms = '/company/rechargeRecord/export')
  AND NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 75 AND rm.menu_id = m.menu_id);
 
-- -----------------------------------------------------------------------------
-- 5. 回查
--   R1. C 菜单与 F 按钮已建:
--     SELECT menu_id, menu_name, path, perms, menu_type, order_num, parent_id
--     FROM charging_pile_other.sys_menu
--     WHERE perms IN ('/company/rechargeRecord','/company/rechargeRecord/export');
--   R2. 已授 admin(1) 与 company_admin(75):
--     SELECT rm.role_id, r.role_name, m.menu_name, m.perms
--     FROM charging_pile_other.sys_role_menu rm
--     JOIN charging_pile_other.sys_role r ON rm.role_id = r.role_id
--     JOIN charging_pile_other.sys_menu m ON rm.menu_id = m.menu_id
--     WHERE m.perms IN ('/company/rechargeRecord','/company/rechargeRecord/export')
--     ORDER BY rm.role_id, m.perms;
--   R3. 幂等复跑:以上 INSERT 命中 0 行(NOT EXISTS 已存在)
-- =============================================================================