192 lines
4.3 KiB
Markdown
192 lines
4.3 KiB
Markdown
|
|
# 用户权限管理系统部署指南
|
|||
|
|
|
|||
|
|
## 当前状态
|
|||
|
|
|
|||
|
|
✅ **前端已完成**:用户权限管理界面已实现,支持优雅的错误处理
|
|||
|
|
❌ **后端待部署**:需要完成数据库表创建和后端服务重启
|
|||
|
|
|
|||
|
|
## 部署步骤
|
|||
|
|
|
|||
|
|
### 步骤1:创建数据库表
|
|||
|
|
|
|||
|
|
**执行SQL脚本:**
|
|||
|
|
```sql
|
|||
|
|
-- 在数据库中执行以下SQL
|
|||
|
|
source C:\cattleTransport\tradeCattle\add_user_menu_table.sql;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**或者手动执行:**
|
|||
|
|
```sql
|
|||
|
|
CREATE TABLE IF NOT EXISTS `sys_user_menu` (
|
|||
|
|
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|||
|
|
`user_id` int(11) NOT NULL COMMENT '用户ID',
|
|||
|
|
`menu_id` int(11) NOT NULL COMMENT '菜单ID',
|
|||
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_user_id` (`user_id`),
|
|||
|
|
KEY `idx_menu_id` (`menu_id`),
|
|||
|
|
UNIQUE KEY `uk_user_menu` (`user_id`, `menu_id`) COMMENT '用户菜单唯一索引'
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户菜单权限表';
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤2:重启后端服务
|
|||
|
|
|
|||
|
|
**停止当前服务:**
|
|||
|
|
```bash
|
|||
|
|
# 查找Java进程
|
|||
|
|
jps -l
|
|||
|
|
|
|||
|
|
# 停止Spring Boot应用(替换为实际的进程ID)
|
|||
|
|
taskkill /F /PID <进程ID>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**重新启动服务:**
|
|||
|
|
```bash
|
|||
|
|
cd C:\cattleTransport\tradeCattle\aiotagro-cattle-trade
|
|||
|
|
mvn spring-boot:run
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**或者使用IDE启动:**
|
|||
|
|
- 在IDE中运行 `AiotagroCattletradeApplication.java`
|
|||
|
|
- 确保端口8080可用
|
|||
|
|
|
|||
|
|
### 步骤3:验证部署
|
|||
|
|
|
|||
|
|
**检查服务状态:**
|
|||
|
|
```bash
|
|||
|
|
# 检查端口是否监听
|
|||
|
|
netstat -ano | findstr :8080
|
|||
|
|
|
|||
|
|
# 测试API接口
|
|||
|
|
curl http://localhost:8080/api/sysUserMenu/hasUserPermissions?userId=1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**预期响应:**
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": {
|
|||
|
|
"hasUserPermissions": false,
|
|||
|
|
"permissionCount": 0,
|
|||
|
|
"permissionSource": "角色权限"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 功能验证
|
|||
|
|
|
|||
|
|
### 1. 前端界面测试
|
|||
|
|
|
|||
|
|
1. **访问权限管理页面**
|
|||
|
|
- 打开浏览器访问:`http://localhost:8082`
|
|||
|
|
- 登录后进入权限管理页面
|
|||
|
|
|
|||
|
|
2. **测试标签页切换**
|
|||
|
|
- 确认"角色权限管理"标签页正常
|
|||
|
|
- 确认"用户权限管理"标签页正常
|
|||
|
|
|
|||
|
|
3. **测试用户权限管理**
|
|||
|
|
- 切换到"用户权限管理"标签页
|
|||
|
|
- 选择用户,查看权限来源显示
|
|||
|
|
- 尝试修改权限设置
|
|||
|
|
|
|||
|
|
### 2. 后端API测试
|
|||
|
|
|
|||
|
|
**测试用户权限查询:**
|
|||
|
|
```bash
|
|||
|
|
GET /api/sysUserMenu/hasUserPermissions?userId=3
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**测试用户权限分配:**
|
|||
|
|
```bash
|
|||
|
|
POST /api/sysUserMenu/assignUserMenus
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"userId": 3,
|
|||
|
|
"menuIds": [1, 2, 3, 16, 4, 5]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**测试权限清空:**
|
|||
|
|
```bash
|
|||
|
|
DELETE /api/sysUserMenu/clearUserMenus?userId=3
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 当前问题解决
|
|||
|
|
|
|||
|
|
### 问题:404错误
|
|||
|
|
**现象:** `Failed to load resource: the server responded with a status of 404`
|
|||
|
|
|
|||
|
|
**原因:** 后端服务未包含新的用户权限管理接口
|
|||
|
|
|
|||
|
|
**解决方案:**
|
|||
|
|
1. 确保数据库表已创建
|
|||
|
|
2. 重新编译后端项目:`mvn clean compile`
|
|||
|
|
3. 重启后端服务:`mvn spring-boot:run`
|
|||
|
|
|
|||
|
|
### 问题:前端错误处理
|
|||
|
|
**已解决:** 前端现在能够优雅地处理API不可用的情况
|
|||
|
|
- 显示警告信息而不是错误
|
|||
|
|
- 使用默认值(角色权限)
|
|||
|
|
- 不影响其他功能的使用
|
|||
|
|
|
|||
|
|
## 部署检查清单
|
|||
|
|
|
|||
|
|
- [ ] 数据库表 `sys_user_menu` 已创建
|
|||
|
|
- [ ] 后端项目已重新编译
|
|||
|
|
- [ ] 后端服务已重启
|
|||
|
|
- [ ] API接口 `/api/sysUserMenu/*` 可访问
|
|||
|
|
- [ ] 前端页面可正常加载
|
|||
|
|
- [ ] 用户权限管理功能正常
|
|||
|
|
|
|||
|
|
## 故障排除
|
|||
|
|
|
|||
|
|
### 1. 后端启动失败
|
|||
|
|
**检查:**
|
|||
|
|
- Java版本是否正确
|
|||
|
|
- 数据库连接是否正常
|
|||
|
|
- 端口8080是否被占用
|
|||
|
|
|
|||
|
|
### 2. API接口404
|
|||
|
|
**检查:**
|
|||
|
|
- 控制器类是否正确扫描
|
|||
|
|
- 请求路径是否正确
|
|||
|
|
- 服务是否完全启动
|
|||
|
|
|
|||
|
|
### 3. 数据库连接失败
|
|||
|
|
**检查:**
|
|||
|
|
- 数据库服务是否运行
|
|||
|
|
- 连接配置是否正确
|
|||
|
|
- 用户权限是否足够
|
|||
|
|
|
|||
|
|
## 完成后的功能
|
|||
|
|
|
|||
|
|
部署完成后,系统将支持:
|
|||
|
|
|
|||
|
|
1. **双权限系统**:
|
|||
|
|
- 角色权限管理(影响所有使用相同角色的用户)
|
|||
|
|
- 用户权限管理(仅影响单个用户)
|
|||
|
|
|
|||
|
|
2. **权限优先级**:
|
|||
|
|
- 用户专属权限覆盖角色权限
|
|||
|
|
- 向后兼容现有功能
|
|||
|
|
|
|||
|
|
3. **界面友好**:
|
|||
|
|
- 标签页切换
|
|||
|
|
- 权限来源显示
|
|||
|
|
- 操作确认提示
|
|||
|
|
|
|||
|
|
4. **API完整**:
|
|||
|
|
- 用户权限查询
|
|||
|
|
- 用户权限分配
|
|||
|
|
- 用户权限清空
|
|||
|
|
|
|||
|
|
## 联系支持
|
|||
|
|
|
|||
|
|
如果在部署过程中遇到问题,请检查:
|
|||
|
|
1. 后端服务日志
|
|||
|
|
2. 数据库连接状态
|
|||
|
|
3. 网络连接情况
|
|||
|
|
4. 端口占用情况
|