-- 毛隅管理菜单与页面权限(可重复执行) -- 对应 im_manager 页面接口 /maoyu/*,业务经 maoyu-server 内部接口 /internal/admin/maoyu/tenants/{tenant_code} 处理。 -- 前端组件路径约定:web/src/views/maoyu/**(需前端按菜单路径放置页面组件)。 SET NAMES utf8mb4; SET @now := NOW(); -- 顶级目录 INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT 0,1,'','毛隅管理','maoyuManager','/maoyu','SmileOutlined',1,'/maoyu/dashboard','','','LAYOUT',1,'',0,0,'',0,0,0,126,'毛隅手记萌宠与爱宠社区管理',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuManager'); SET @maoyuId := (SELECT id FROM hg_admin_menu WHERE name='maoyuManager' LIMIT 1); UPDATE hg_admin_menu SET redirect='/maoyu/dashboard', updated_at=@now WHERE id=@maoyuId; -- 数据概览 INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @maoyuId,2,CONCAT('tr_',@maoyuId,' '),'数据概览','maoyuDashboard','dashboard','',2,'','/maoyu/dashboard','','/maoyu/dashboard/index',1,'maoyuDashboard',0,0,'',1,0,0,70,'萌宠、场景任务与内容治理核心指标',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuDashboard'); -- 宠物档案(只读) INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @maoyuId,2,CONCAT('tr_',@maoyuId,' '),'宠物档案','maoyuPets','pets','',2,'','/maoyu/pets/list','','/maoyu/pets/index',1,'maoyuPets',0,0,'',1,0,0,60,'宠物档案查询与详情(只读)',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuPets'); SET @petsId := (SELECT id FROM hg_admin_menu WHERE name='maoyuPets' LIMIT 1); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @petsId,3,CONCAT('tr_',@maoyuId,' tr_',@petsId,' '),'查看宠物详情','maoyuPetsView','','',3,'','/maoyu/pets/view','','',1,'',0,0,'',0,1,0,30,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuPetsView'); -- 场景生成任务(只读) INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @maoyuId,2,CONCAT('tr_',@maoyuId,' '),'场景任务','maoyuJobs','jobs','',2,'','/maoyu/generation-jobs/list','','/maoyu/jobs/index',1,'maoyuJobs',0,0,'',1,0,0,50,'场景生成任务进度与失败排查(只读)',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuJobs'); SET @jobsId := (SELECT id FROM hg_admin_menu WHERE name='maoyuJobs' LIMIT 1); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @jobsId,3,CONCAT('tr_',@maoyuId,' tr_',@jobsId,' '),'查看任务详情','maoyuJobsView','','',3,'','/maoyu/generation-jobs/view','','',1,'',0,0,'',0,1,0,30,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuJobsView'); -- 动作配置 INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @maoyuId,2,CONCAT('tr_',@maoyuId,' '),'动作配置','maoyuActionConfigs','action-configs','',2,'','/maoyu/action-configs/list','','/maoyu/action-configs/index',1,'maoyuActionConfigs',0,0,'',1,0,0,40,'玩球/梳毛/喂食/洗澡等互动动作玩法配置',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuActionConfigs'); SET @actionsId := (SELECT id FROM hg_admin_menu WHERE name='maoyuActionConfigs' LIMIT 1); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @actionsId,3,CONCAT('tr_',@maoyuId,' tr_',@actionsId,' '),'查看动作配置','maoyuActionConfigsView','','',3,'','/maoyu/action-configs/view','','',1,'',0,0,'',0,1,0,30,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuActionConfigsView'); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @actionsId,3,CONCAT('tr_',@maoyuId,' tr_',@actionsId,' '),'编辑动作配置','maoyuActionConfigsEdit','','',3,'','/maoyu/action-configs/edit','','',1,'',0,0,'',0,1,0,20,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuActionConfigsEdit'); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @actionsId,3,CONCAT('tr_',@maoyuId,' tr_',@actionsId,' '),'启停动作配置','maoyuActionConfigsStatus','','',3,'','/maoyu/action-configs/status','','',1,'',0,0,'',0,1,0,10,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuActionConfigsStatus'); -- 互动通知(只读) INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @maoyuId,2,CONCAT('tr_',@maoyuId,' '),'互动通知','maoyuNotices','notices','',2,'','/maoyu/notices/list','','/maoyu/notices/index',1,'maoyuNotices',0,0,'',1,0,0,30,'点赞评论互动通知查询(只读)',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuNotices'); -- 内容审核 INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @maoyuId,2,CONCAT('tr_',@maoyuId,' '),'内容审核','maoyuContent','content','',2,'','/maoyu/content/list','','/maoyu/content/index',1,'maoyuContent',0,0,'',1,0,0,20,'爱宠动态与评论审核管理',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuContent'); SET @contentId := (SELECT id FROM hg_admin_menu WHERE name='maoyuContent' LIMIT 1); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @contentId,3,CONCAT('tr_',@maoyuId,' tr_',@contentId,' '),'查看内容详情','maoyuContentView','','',3,'','/maoyu/content/view','','',1,'',0,0,'',0,1,0,30,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuContentView'); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @contentId,3,CONCAT('tr_',@maoyuId,' tr_',@contentId,' '),'审核内容','maoyuContentReview','','',3,'','/maoyu/content/review','','',1,'',0,0,'',0,1,0,20,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuContentReview'); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @contentId,3,CONCAT('tr_',@maoyuId,' tr_',@contentId,' '),'批量审核内容','maoyuContentBatchReview','','',3,'','/maoyu/content/batch-review','','',1,'',0,0,'',0,1,0,10,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuContentBatchReview'); -- 举报处理 INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @maoyuId,2,CONCAT('tr_',@maoyuId,' '),'举报处理','maoyuReports','reports','',2,'','/maoyu/reports/list','','/maoyu/reports/index',1,'maoyuReports',0,0,'',1,0,0,10,'爱宠内容与用户举报处理',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuReports'); SET @reportsId := (SELECT id FROM hg_admin_menu WHERE name='maoyuReports' LIMIT 1); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @reportsId,3,CONCAT('tr_',@maoyuId,' tr_',@reportsId,' '),'查看举报详情','maoyuReportsView','','',3,'','/maoyu/reports/view','','',1,'',0,0,'',0,1,0,30,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuReportsView'); INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @reportsId,3,CONCAT('tr_',@maoyuId,' tr_',@reportsId,' '),'处理举报','maoyuReportsHandle','','',3,'','/maoyu/reports/handle','','',1,'',0,0,'',0,1,0,20,'',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuReportsHandle'); -- 操作日志 INSERT INTO hg_admin_menu (pid,level,tree,title,name,path,icon,type,redirect,permissions,permission_name,component,always_show,active_menu,is_root,is_frame,frame_src,keep_alive,hidden,affix,sort,remark,status,created_at,updated_at) SELECT @maoyuId,2,CONCAT('tr_',@maoyuId,' '),'操作日志','maoyuLogs','logs','',2,'','/maoyu/logs/list','','/maoyu/logs/index',1,'maoyuLogs',0,0,'',1,0,0,5,'毛隅管理操作审计日志',1,@now,@now WHERE NOT EXISTS (SELECT 1 FROM hg_admin_menu WHERE name='maoyuLogs'); -- ===== 角色授权(hg_admin_role_menu)===== -- 说明:超级管理员(hotgo 内置超管)无需记录即可访问全部菜单;以下将毛隅全部菜单授予指定角色。 -- 使用方式:将 @roleId 替换为目标角色 ID 后执行(默认 2,可按需复制多份)。 -- SET @roleId := 2; -- INSERT INTO hg_admin_role_menu (role_id, menu_id) -- SELECT @roleId, m.id FROM hg_admin_menu m -- WHERE m.id = @maoyuId -- OR m.pid = @maoyuId -- OR m.pid IN (SELECT id FROM (SELECT id FROM hg_admin_menu WHERE pid = @maoyuId) t) -- OR m.tree LIKE CONCAT('tr_', @maoyuId, ' %') -- ON DUPLICATE KEY UPDATE menu_id = menu_id;