Commit Graph

3 Commits

Author SHA1 Message Date
神码-方晓辉 9a9be3247d docs: 添加RuoYi系统菜单恢复指南
## 文档内容

### 问题描述
用户重新登录后缺少RuoYi系统管理菜单(系统管理、系统监控、系统工具)

### 根本原因
1. 前端菜单硬编码,只包含盘古业务菜单
2. pangu项目缺少RuoYi菜单管理服务
3. 数据库权限正常(admin有118个菜单权限)

### 解决方案
在前端直接添加RuoYi系统菜单配置(Commit 885f578)

### 文档包含
-  详细问题分析
-  完整修改步骤
-  验证方法(重启服务、清缓存)
-  常见问题排查(4个Q&A)
-  后续规划(短中长期)
-  技术架构对比(硬编码 vs 动态菜单)
-  相关文件清单

### 关键操作指引
1. 重启前后端服务(必须!)
2. 清除浏览器缓存
3. 验证27个菜单显示
4. 测试占位页面

---
作者:pangu
2026-02-01 13:35:04 +08:00
神码-方晓辉 4ebe3e5f73 fix: 修复管理员角色菜单权限缺失问题
## 问题描述
用户反馈:登录管理后台后,只能看到盘古业务菜单,缺少RuoYi系统管理、系统监控、系统工具等菜单

## 问题分析

### 根本原因
管理员角色(role_id=1)的菜单权限配置不完整,只有盘古业务菜单权限,缺少RuoYi系统菜单权限

### 权限状态检查
```sql
-- 修复前
SELECT COUNT(*) FROM sys_role_menu WHERE role_id = 1;
-- 结果:30条(仅盘古业务菜单)

-- 各类型菜单权限分布
RuoYi系统菜单:0条     (应该有72条)
盘古业务菜单:  30条   
合计:         30条    (应该有118条)
```

### 影响
-  无法访问用户管理、角色管理、菜单管理
-  无法进行系统配置和权限分配
-  无法使用代码生成等系统工具
-  系统功能严重受限

## 解决方案

### 1. 立即修复(已执行)
```sql
-- 删除现有权限
DELETE FROM sys_role_menu WHERE role_id = 1;

-- 为管理员角色添加所有菜单权限
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT 1, menu_id FROM sys_menu;
```

### 2. 创建权限修复脚本
**新增**:`sql/fix_admin_permissions.sh`

**功能特性**:
-  检查当前管理员角色权限状态
-  统计菜单权限分布
-  自动备份现有权限
-  一键修复权限配置
-  验证修复结果

**使用方法**:
```bash
cd sql
./fix_admin_permissions.sh
# 按提示选择y确认
# 退出登录并重新登录
```

### 3. 创建配置文档
**新增**:`docs/07-运维文档/角色权限配置指南.md`

**内容包含**:
-  问题说明和原因分析
-  3种修复方法(脚本/SQL/界面)
-  验证步骤(数据库+前端)
-  角色权限管理最佳实践
-  常见问题Q&A
-  权限备份恢复方法

## 修复结果

### 数据库验证
```sql
-- 修复后
SELECT COUNT(*) FROM sys_role_menu WHERE role_id = 1;
-- 结果:118条 

-- 各类型菜单权限分布
RuoYi系统菜单:72条  
盘古业务菜单:  46条  
合计:         118条 

-- 顶级菜单权限
menu_id  menu_name   order_num
2000     盘古管理    0         
1        系统管理    1         
2        系统监控    2         
3        系统工具    3         
4        若依官网    4         
```

### 前端验证
退出登录并重新登录后,菜单栏应显示:
-  盘古管理(学校、会员、学生、应用、基础数据)
-  系统管理(用户、角色、菜单、部门、岗位、字典、参数、通知、日志)
-  系统监控(在线用户、定时任务、数据监控、服务监控、缓存监控)
-  系统工具(表单构建、代码生成、系统接口)
-  若依官网

## 重要提醒
⚠️ **权限修改后,必须退出登录并重新登录才会生效!**

## 相关文件
- sql/fix_admin_permissions.sh - 权限修复脚本
- docs/07-运维文档/角色权限配置指南.md - 配置文档

---
作者:湖北新华业务中台研发团队
2026-02-01 13:23:44 +08:00
神码-方晓辉 174b08da12 feat: 创建完整菜单数据恢复方案
## 问题描述
用户反馈:菜单栏缺少RuoYi默认的系统管理菜单(用户管理、角色管理、菜单管理等),只显示盘古业务菜单

## 问题分析
初始化数据库时,只导入了盘古业务菜单(pangu_menu.sql),缺少RuoYi的系统管理、系统监控、系统工具菜单

## 解决方案

### 1. 创建完整菜单SQL文件
```
sql/sys_menu_complete.sql (196行, 118条菜单)
  ├─ RuoYi系统菜单: 72条 (menu_id 1-1999)
  │   ├─ 系统管理 (用户、角色、菜单、部门、岗位、字典、参数、通知、日志)
  │   ├─ 系统监控 (在线用户、定时任务、数据监控、服务监控、缓存监控)
  │   └─ 系统工具 (表单构建、代码生成、系统接口)
  └─ 盘古业务菜单: 46条 (menu_id >= 2000)
      └─ 盘古管理 (学校、会员、学生、应用、基础数据)
```

### 2. 创建自动导入脚本
```bash
sql/import_menu.sh
  ├─ 数据库连接配置
  ├─ SQL文件路径检查
  ├─ 用户确认提示
  ├─ 菜单数据导入
  └─ 导入结果统计
```

**功能特性**:
- 自动检查SQL文件存在性
- 导入前用户确认
- 导入后自动统计菜单数量
- 显示顶级菜单列表
- 错误处理和友好提示

### 3. 创建运维文档
```
docs/07-运维文档/菜单数据恢复指南.md
  ├─ 问题说明
  ├─ 解决方案(3种导入方法)
  ├─ 验证步骤(数据库+前端)
  ├─ 注意事项(备份、权限、顺序)
  ├─ 常见问题Q&A
  └─ 相关文件索引
```

## 使用方法

### 方法一:自动导入脚本(推荐)
```bash
cd sql
./import_menu.sh
```

### 方法二:手动导入SQL
```bash
mysql -h127.0.0.1 -P3306 -uroot -p123456 pangu_user_platform < sql/sys_menu_complete.sql
```

### 方法三:数据库客户端
使用Navicat/DataGrip执行sql/sys_menu_complete.sql

## 验证结果

### 数据库验证
```sql
SELECT COUNT(*) FROM sys_menu;  -- 预期:118条

SELECT
    CASE WHEN menu_id < 2000 THEN 'RuoYi系统菜单' ELSE '盘古业务菜单' END AS type,
    COUNT(*) AS count
FROM sys_menu
GROUP BY CASE WHEN menu_id < 2000 THEN 'RuoYi系统菜单' ELSE '盘古业务菜单' END;
-- 预期:RuoYi 72条, 盘古 46条
```

### 前端验证
刷新页面后,菜单栏应显示:
-  盘古管理 (order_num 0 - 最前面)
-  系统管理 (order_num 1)
-  系统监控 (order_num 2)
-  系统工具 (order_num 3)
-  若依官网 (order_num 4)

## 文件清单
- sql/sys_menu_complete.sql - 完整菜单SQL
- sql/import_menu.sh - 自动导入脚本
- docs/07-运维文档/菜单数据恢复指南.md - 运维文档

---
作者:湖北新华业务中台研发团队
2026-02-01 13:18:36 +08:00