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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
-- ============================================================
-- 企业微信模块菜单与权限
-- 目标库:mom-jssm(36.213.150.237:10000)
--
-- 作用:
--   1. 让 /wxcp/activity、/wxcp/notice 两个页面能在左侧菜单中出现
--      (前端路由是菜单驱动的,没有菜单记录页面就访问不到)
--   2. 注册 @PreAuthorize 用到的权限标识,否则接口一律 403
--
-- 菜单类型:1 目录、2 菜单、3 按钮
-- 编号段:6100000 起,与现有菜单不冲突
--
-- 幂等:先按编号删除再插入,可重复执行
-- ============================================================
 
DELETE FROM `system_menu` WHERE `id` BETWEEN 6100000 AND 6100999;
 
-- ----------------------------
-- 一级目录:企业微信
-- ----------------------------
INSERT INTO `system_menu`
  (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`,
   `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
  (6100000, '企业微信', '', 1, 80, 0, '/wxcp', 'ep:chat-dot-round', NULL, NULL,
   0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
 
-- ----------------------------
-- 活动管理
-- ----------------------------
INSERT INTO `system_menu`
  (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`,
   `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
  (6100001, '活动管理', '', 2, 1, 6100000, 'activity', 'ep:calendar', '/wxcp/activity/index', 'WxCpActivityList',
   0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100010, '活动查询', 'wxcp:activity:query',  3, 1, 6100001, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100011, '活动新增', 'wxcp:activity:create', 3, 2, 6100001, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100012, '活动修改', 'wxcp:activity:update', 3, 3, 6100001, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100013, '活动删除', 'wxcp:activity:delete', 3, 4, 6100001, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100014, '活动推送', 'wxcp:activity:push',   3, 5, 6100001, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  -- 报名记录挂在活动菜单下,因为它只能从活动详情进入
  (6100015, '报名查询', 'wxcp:signup:query',    3, 6, 6100001, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100016, '报名管理', 'wxcp:signup:update',   3, 7, 6100001, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  -- 通讯录在推送弹窗里用,不单独建页面,但权限要注册
  (6100017, '通讯录查询', 'wxcp:member:query',  3, 8, 6100001, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
 
-- ----------------------------
-- 通知管理
-- ----------------------------
INSERT INTO `system_menu`
  (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`,
   `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
  (6100002, '通知管理', '', 2, 2, 6100000, 'notice', 'ep:bell', '/wxcp/notice/index', 'WxCpNoticeList',
   0, b'1', b'1', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100020, '通知查询', 'wxcp:notice:query',  3, 1, 6100002, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100021, '通知新增', 'wxcp:notice:create', 3, 2, 6100002, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100022, '通知修改', 'wxcp:notice:update', 3, 3, 6100002, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100023, '通知删除', 'wxcp:notice:delete', 3, 4, 6100002, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0'),
  (6100024, '通知推送', 'wxcp:notice:push',   3, 5, 6100002, '', '', '', '', 0, b'1', b'0', b'1', 'admin', NOW(), 'admin', NOW(), b'0');
 
-- ============================================================
-- 角色授权
--
-- 分配惯例沿用现有模块(如售后管理):
--   super_admin(1) 与 001(160) 拿「整个模块的全部菜单」
--   其他角色不自动授予,需要时在「系统管理 → 角色管理」里手动勾选
--
-- 注:super_admin 登录时代码会直接返回全部菜单,这里的映射是为了
--     让 system_role_menu 数据完整,与其它模块保持一致。
-- ============================================================
 
DELETE `rm` FROM `system_role_menu` `rm`
WHERE `rm`.`role_id` IN (1, 160)
  AND `rm`.`menu_id` BETWEEN 6100000 AND 6100999;
 
INSERT INTO `system_role_menu`
  (`role_id`, `menu_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`)
SELECT `r`.`id`, `m`.`id`, 'admin', NOW(), 'admin', NOW(), b'0', 0
FROM `system_role` `r`
JOIN `system_menu` `m`
  ON `m`.`id` BETWEEN 6100000 AND 6100999
 AND `m`.`deleted` = b'0'
WHERE `r`.`id` IN (1, 160)
  AND `r`.`deleted` = b'0';
 
-- ============================================================
-- 如需给其它角色开通,把上一条 INSERT 的 r.id IN (1, 160)
-- 换成目标角色编号即可,例如:
--   WHERE `r`.`id` IN (1, 160, 2)   -- 追加给「普通角色」
-- ============================================================