docker exec -i 1Panel-mariadb-ZOpD mysql -u tuanwei -p'TytQZsSW5m4wGh38' tuanwei <<'SQLDATA' -- ============================================================================ -- 生产环境数据补丁:开放平台同步相关的角色、菜单、字典 -- -- 基准对比: -- 生产环境 tuanwei_20260921152032l8u4e.sql -- 开发环境 132.232.214.96:13306/tuanwei(实时读取) -- -- 差异汇总(开发相对生产的新增): -- sys_role +1 294 教师(teacher) -- sys_menu +8 14400-14407 数据同步/学生名册/教师名册 + 按钮权限 -- sys_dict +3 9001-9003 开放平台码表 -- sys_dict_data +2 640/641 性别 男/女 -- sys_role_menu +8 超管 242 -> 新增菜单 -- -- 刻意不同步(经确认): -- sys_role 293(teach) 已软删除的废弃记录,不带到生产 -- sys_role_menu 13 条 角色 294 挂老菜单,tenant_id=1 与实际 10049 不符,疑似开发库脏数据 -- sys_user_role 2 条 用户 832/833 绑定学生角色,属开发库本地测试数据 -- -- 可重复执行:全部使用「不存在才插入」的写法。 -- ============================================================================ SET @tenant := 10049; -- --------------------------------------------------------------------------- -- 1. 角色:教师 -- --------------------------------------------------------------------------- INSERT INTO `sys_role` (`role_id`, `role_name`, `role_code`, `comments`, `deleted`, `tenant_id`, `create_time`, `update_time`) SELECT 294, '教师', 'teacher', '', 0, 10049, NOW(), NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_role` WHERE `role_id` = 294); -- --------------------------------------------------------------------------- -- 2. 菜单:数据同步、学生名册、教师名册及按钮权限 -- menu_type=0 为菜单(生成路由),menu_type=1 为按钮权限(不生成路由) -- --------------------------------------------------------------------------- INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `title`, `path`, `component`, `menu_type`, `sort_number`, `authority`, `hide`, `app_id`, `deleted`, `merchant_code`, `tenant_id`) SELECT 14400, 8574, '数据同步', '/gxmu/dataSync', '/gxmu/dataSync', 0, 100, '', 0, 0, 0, '', 10049 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `menu_id` = 14400); INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `title`, `path`, `component`, `menu_type`, `sort_number`, `authority`, `hide`, `app_id`, `deleted`, `merchant_code`, `tenant_id`) SELECT 14401, 14400, '手动同步', '', '', 1, 1, 'gxmu:sync:manual', 0, 0, 0, '', 10049 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `menu_id` = 14401); INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `title`, `path`, `component`, `menu_type`, `sort_number`, `authority`, `hide`, `app_id`, `deleted`, `merchant_code`, `tenant_id`) SELECT 14402, 8574, '学生名册', '/gxmu/studentRoster', '/gxmu/studentRoster', 0, 105, '', 0, 0, 0, '', 10049 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `menu_id` = 14402); INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `title`, `path`, `component`, `menu_type`, `sort_number`, `authority`, `hide`, `app_id`, `deleted`, `merchant_code`, `tenant_id`) SELECT 14403, 14402, '名册查询', '', '', 1, 1, 'gxmu:student:list', 0, 0, 0, '', 10049 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `menu_id` = 14403); INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `title`, `path`, `component`, `menu_type`, `sort_number`, `authority`, `hide`, `app_id`, `deleted`, `merchant_code`, `tenant_id`) SELECT 14404, 14402, '名册导出', '', '', 1, 2, 'gxmu:student:export', 0, 0, 0, '', 10049 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `menu_id` = 14404); INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `title`, `path`, `component`, `menu_type`, `sort_number`, `authority`, `hide`, `app_id`, `deleted`, `merchant_code`, `tenant_id`) SELECT 14405, 8574, '教师名册', '/gxmu/teacherRoster', '/gxmu/teacherRoster', 0, 106, '', 0, 0, 0, '', 10049 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `menu_id` = 14405); INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `title`, `path`, `component`, `menu_type`, `sort_number`, `authority`, `hide`, `app_id`, `deleted`, `merchant_code`, `tenant_id`) SELECT 14406, 14405, '名册查询', '', '', 1, 1, 'gxmu:teacher:list', 0, 0, 0, '', 10049 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `menu_id` = 14406); INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `title`, `path`, `component`, `menu_type`, `sort_number`, `authority`, `hide`, `app_id`, `deleted`, `merchant_code`, `tenant_id`) SELECT 14407, 14405, '名册导出', '', '', 1, 2, 'gxmu:teacher:export', 0, 0, 0, '', 10049 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `menu_id` = 14407); -- --------------------------------------------------------------------------- -- 3. 码表:开放平台原始码 -> 名称 -- 平台只返回代码不返回名称,且平台本身没有码表接口(见 ADR-0006)。 -- --------------------------------------------------------------------------- INSERT INTO `sys_dict` (`dict_id`, `dict_code`, `dict_name`, `sort_number`, `comments`, `deleted`, `merchant_code`, `tenant_id`, `create_time`, `update_time`) SELECT 9001, 'openplat_sex', '开放平台-性别码', 1, '1=男 2=女(已由实测确认)', 0, '', 10049, NOW(), NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_dict` WHERE `dict_id` = 9001); INSERT INTO `sys_dict` (`dict_id`, `dict_code`, `dict_name`, `sort_number`, `comments`, `deleted`, `merchant_code`, `tenant_id`, `create_time`, `update_time`) SELECT 9002, 'openplat_nation', '开放平台-民族码', 2, '待 RS_JZGXX 授权后用 MZM/MZM1 反推回填', 0, '', 10049, NOW(), NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_dict` WHERE `dict_id` = 9002); INSERT INTO `sys_dict` (`dict_id`, `dict_code`, `dict_name`, `sort_number`, `comments`, `deleted`, `merchant_code`, `tenant_id`, `create_time`, `update_time`) SELECT 9003, 'openplat_politics', '开放平台-政治面貌码', 3, '待 RS_JZGXX 授权后用 ZZZTM/ZZZTM1 反推回填', 0, '', 10049, NOW(), NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_dict` WHERE `dict_id` = 9003); -- --------------------------------------------------------------------------- -- 4. 码表数据:性别 -- --------------------------------------------------------------------------- INSERT INTO `sys_dict_data` (`dict_data_id`, `dict_id`, `dict_data_code`, `dict_data_name`, `sort_number`, `comments`, `deleted`, `merchant_code`, `tenant_id`, `create_time`, `update_time`) SELECT 640, 9001, '1', '男', 1, NULL, 0, '', 10049, NOW(), NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_data_id` = 640); INSERT INTO `sys_dict_data` (`dict_data_id`, `dict_id`, `dict_data_code`, `dict_data_name`, `sort_number`, `comments`, `deleted`, `merchant_code`, `tenant_id`, `create_time`, `update_time`) SELECT 641, 9001, '2', '女', 2, NULL, 0, '', 10049, NOW(), NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_data_id` = 641); -- --------------------------------------------------------------------------- -- 5. 给超级管理员(superAdmin)授权新增菜单 -- sys_role_menu.id 是自增主键,不写死,由数据库分配。 -- 其它角色请按需在后台「角色管理」里勾选。 -- --------------------------------------------------------------------------- INSERT INTO `sys_role_menu` (`role_id`, `menu_id`, `tenant_id`) SELECT r.`role_id`, m.`menu_id`, 10049 FROM `sys_role` r JOIN `sys_menu` m ON m.`menu_id` BETWEEN 14400 AND 14407 LEFT JOIN `sys_role_menu` rm ON rm.`role_id` = r.`role_id` AND rm.`menu_id` = m.`menu_id` WHERE r.`role_code` = 'superAdmin' AND r.`tenant_id` = 10049 AND rm.`id` IS NULL; SQLDATA