Files
lyzsys_backend/doc/demo_部署说明.md

260 lines
6.9 KiB
Markdown
Raw Normal View History

# 项目管理模块部署说明
## 一、概述
本文档说明如何部署 lyzsys-module-demo 项目管理模块。
### 模块信息
- **模块名称**: lyzsys-module-demo
- **功能**: 项目管理(增删改查导出)
- **数据库表**: demo_project
- **菜单结构**:
- 一级菜单:项目管理
- 二级菜单:项目列表
### 命名规范遵循
✅ 所有字段名遵循驼峰命名规范,第一个单词不能只有一个字母
- `projectName`(而非 `pName`
- `projectCode`(而非 `pCode`
- `establishDate`(而非 `eDate`
## 二、部署步骤
### 1. 数据库部署
按顺序执行以下 SQL 脚本:
```bash
# 1. 创建项目管理表
mysql> source e:/workspace/lyzsys/lyzsys_backend/sql/mysql/demo_project.sql
# 2. 创建菜单配置
mysql> source e:/workspace/lyzsys/lyzsys_backend/sql/mysql/demo_menu.sql
```
**说明**
- `demo_project.sql` - 创建项目管理表,包含示例数据
- `demo_menu.sql` - 创建菜单配置,包含一级菜单、二级菜单和按钮权限
### 2. 后端部署
后端代码已自动集成到项目中,无需额外配置。
**后端文件清单**
```
lyzsys_backend/lyzsys-module-demo/
├── pom.xml # Maven 配置
└── src/main/java/cn/iocoder/lyzsys/module/demo/
├── controller/admin/project/
│ ├── ProjectController.java # 控制器
│ └── vo/
│ ├── ProjectPageReqVO.java # 分页查询请求
│ ├── ProjectRespVO.java # 响应 VO
│ └── ProjectSaveReqVO.java # 保存请求 VO
├── service/project/
│ ├── ProjectService.java # 服务接口
│ └── ProjectServiceImpl.java # 服务实现
├── dal/
│ ├── dataobject/project/
│ │ └── ProjectDO.java # 数据对象
│ └── mysql/project/
│ └── ProjectMapper.java # Mapper 接口
└── enums/
└── ErrorCodeConstants.java # 错误码常量
```
**验证后端部署**
1. Maven 重新导入项目依赖
2. 确认 `lyzsys-server/pom.xml` 包含 `lyzsys-module-demo` 依赖
3. 启动后端项目,查看日志确认模块加载成功
### 3. 前端部署
前端代码已生成,无需额外配置。
**前端文件清单**
```
lyzsys-ui-admin/src/
├── api/demo/project/
│ └── index.ts # API 接口定义
└── views/demo/project/
├── index.vue # 项目列表页面
└── ProjectForm.vue # 项目表单组件
```
**验证前端部署**
1. 重新启动前端项目(如果正在运行)
2. 使用管理员账号登录系统
3. 在左侧菜单栏查看"项目管理"菜单
## 三、功能验证
### 1. 菜单验证
登录后台管理系统,应该看到以下菜单结构:
```
项目管理(一级菜单)
└── 项目列表(二级菜单)
系统管理(已调整到最后)
基础设施(已调整到最后)
```
### 2. 权限验证
项目列表页面应包含以下操作按钮:
- ✅ 搜索
- ✅ 重置
- ✅ 新增
- ✅ 导出
- ✅ 批量删除
- ✅ 修改(每行)
- ✅ 删除(每行)
### 3. 功能验证
测试以下功能:
#### 查询功能
- [ ] 按项目名称模糊查询
- [ ] 按项目编号模糊查询
- [ ] 按立项时间范围查询
- [ ] 分页查询
#### 新增功能
- [ ] 点击"新增"按钮打开表单
- [ ] 必填字段验证(项目名称、项目编号)
- [ ] 项目编号唯一性校验
- [ ] 保存成功后刷新列表
#### 修改功能
- [ ] 点击"修改"按钮打开表单
- [ ] 回显原有数据
- [ ] 修改后保存成功
#### 删除功能
- [ ] 单个删除确认提示
- [ ] 删除成功后刷新列表
- [ ] 批量删除功能
#### 导出功能
- [ ] 点击"导出"按钮
- [ ] 下载 Excel 文件
- [ ] 验证导出数据正确
## 四、接口文档
### API 端点
**Base URL**: `/demo/project`
| 接口 | 方法 | 说明 | 权限 |
|-----|------|------|------|
| `/create` | POST | 创建项目 | demo:project:create |
| `/update` | PUT | 修改项目 | demo:project:update |
| `/delete` | DELETE | 删除项目 | demo:project:delete |
| `/delete-list` | DELETE | 批量删除 | demo:project:delete |
| `/page` | GET | 分页查询 | demo:project:query |
| `/get` | GET | 查询详情 | demo:project:query |
| `/export-excel` | GET | 导出Excel | demo:project:export |
### 请求示例
**创建项目**
```json
POST /demo/project/create
{
"projectName": "示例项目",
"projectCode": "PROJ-2024-001",
"establishDate": "2024-01-01 00:00:00"
}
```
**查询列表**
```
GET /demo/project/page?pageNo=1&pageSize=10&projectName=示例
```
## 五、常见问题
### 1. 菜单不显示
**原因**:可能是权限问题
**解决**
1. 确认已执行 `demo_menu.sql`
2. 检查当前登录用户的角色权限
3. 在"系统管理 > 菜单管理"中确认菜单已创建
4. 在"系统管理 > 角色管理"中给当前角色分配菜单权限
### 2. 后端接口 404
**原因**:模块未启动或路由配置错误
**解决**
1. 检查 `lyzsys-server/pom.xml` 是否包含 demo 模块依赖
2. 重新编译启动项目
3. 查看启动日志确认模块加载
### 3. 前端页面报错
**原因**API 接口路径不匹配
**解决**
1. 检查 `src/api/demo/project/index.ts` 中的接口路径
2. 确认后端 Controller 的 `@RequestMapping` 路径
3. 查看浏览器控制台错误信息
### 4. 项目编号重复错误
**原因**:唯一性校验生效
**解决**:这是正常的业务校验,请使用不同的项目编号
## 六、扩展开发
### 添加新字段
1. **修改数据库表**
```sql
ALTER TABLE demo_project ADD COLUMN new_field VARCHAR(100) COMMENT '新字段';
```
2. **修改后端代码**
-`ProjectDO.java` 中添加字段
-`ProjectRespVO.java``ProjectSaveReqVO.java` 中添加字段
- 根据需要修改 `ProjectMapper.java` 查询条件
3. **修改前端代码**
-`api/demo/project/index.ts` 中添加字段定义
-`ProjectForm.vue` 中添加表单项
-`index.vue` 中添加表格列
### 添加新功能
参考现有的增删改查实现,遵循以下开发流程:
1. 在 Service 层添加业务方法
2. 在 Controller 层添加接口
3. 在前端 API 文件中添加接口调用
4. 在前端页面中实现 UI 交互
## 七、技术栈
### 后端
- Spring Boot 2.7.18
- MyBatis Plus 3.5.15
- MySQL 8.0+
### 前端
- Vue 3.5.12
- Element Plus 2.11.1
- TypeScript 5.3.3
- Vite 5.1.4
## 八、联系方式
如有问题,请联系开发团队或查阅项目文档。
---
**生成时间**: 2024年
**版本**: v1.0