Files
cattleTransportation/pc-cattle-transportation/DEPLOYMENT_GUIDE.md
2025-10-23 17:28:06 +08:00

192 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 用户权限管理系统部署指南
## 当前状态
**前端已完成**:用户权限管理界面已实现,支持优雅的错误处理
**后端待部署**:需要完成数据库表创建和后端服务重启
## 部署步骤
### 步骤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. 端口占用情况