212 lines
4.4 KiB
Markdown
212 lines
4.4 KiB
Markdown
# 开发者论坛模块说明
|
||
|
||
## 文件结构
|
||
|
||
### 前端文件
|
||
- `src/views/forum/index.vue` - 论坛首页组件
|
||
- `src/api/forum/post.js` - 帖子相关API
|
||
- `src/api/forum/reply.js` - 回复相关API
|
||
|
||
### 后端文件
|
||
- `ForumPostController.java` - 帖子控制器
|
||
- `IForumPostService.java` - 帖子服务接口
|
||
- `ForumPostServiceImpl.java` - 帖子服务实现
|
||
- `ForumPostMapper.java` - 帖子Mapper接口
|
||
- `ForumPostMapper.xml` - MyBatis映射文件
|
||
- `ForumPost.java` - 帖子实体类
|
||
|
||
### 数据库文件
|
||
- `database/forum_tables.sql` - 数据库表结构SQL
|
||
|
||
## 安装步骤
|
||
|
||
### 1. 数据库安装
|
||
执行 `database/forum_tables.sql` 文件创建数据库表:
|
||
```sql
|
||
-- 执行SQL文件
|
||
source database/forum_tables.sql;
|
||
```
|
||
|
||
### 2. 后端代码集成
|
||
1. 将后端Java文件复制到对应的包路径:
|
||
- Controller: `com.ruoyi.jysystem.controller`
|
||
- Service: `com.ruoyi.jysystem.service`
|
||
- Mapper: `com.ruoyi.jysystem.mapper`
|
||
- Domain: `com.ruoyi.jysystem.domain`
|
||
|
||
2. 将 `ForumPostMapper.xml` 复制到 `resources/mapper/jysystem/` 目录
|
||
|
||
3. 确保MyBatis扫描到Mapper接口
|
||
|
||
### 3. 前端代码集成
|
||
前端文件已自动集成到项目中,路由已配置。
|
||
|
||
## API接口说明
|
||
|
||
### 帖子相关接口
|
||
|
||
#### 查询帖子列表
|
||
```
|
||
GET /forum/post/list
|
||
参数:
|
||
- pageNum: 页码
|
||
- pageSize: 每页数量
|
||
- categoryId: 分类ID(可选)
|
||
- sort: 排序方式(latest/hot/replies/views)
|
||
- keyword: 搜索关键词(可选)
|
||
```
|
||
|
||
#### 查询帖子详情
|
||
```
|
||
GET /forum/post/{id}
|
||
```
|
||
|
||
#### 新增帖子
|
||
```
|
||
POST /forum/post
|
||
Body: {
|
||
categoryId: 分类ID,
|
||
title: 标题,
|
||
content: 内容,
|
||
excerpt: 摘要(可选)
|
||
}
|
||
```
|
||
|
||
#### 修改帖子
|
||
```
|
||
PUT /forum/post
|
||
Body: {
|
||
id: 帖子ID,
|
||
title: 标题,
|
||
content: 内容,
|
||
...
|
||
}
|
||
```
|
||
|
||
#### 删除帖子
|
||
```
|
||
DELETE /forum/post/{ids}
|
||
```
|
||
|
||
#### 增加浏览量
|
||
```
|
||
PUT /forum/post/view/{id}
|
||
```
|
||
|
||
#### 点赞/取消点赞
|
||
```
|
||
PUT /forum/post/like/{id}
|
||
返回: { isLiked: true/false }
|
||
```
|
||
|
||
#### 收藏/取消收藏
|
||
```
|
||
PUT /forum/post/favorite/{id}
|
||
返回: { isFavorited: true/false }
|
||
```
|
||
|
||
#### 标记为已解决
|
||
```
|
||
PUT /forum/post/solved/{id}
|
||
```
|
||
|
||
## 数据库表说明
|
||
|
||
### forum_category - 论坛分类表
|
||
- id: 分类ID(主键)
|
||
- name: 分类名称
|
||
- description: 分类描述
|
||
- sort_order: 排序顺序
|
||
- status: 状态(0正常 1停用)
|
||
- post_count: 帖子数量
|
||
|
||
### forum_post - 论坛帖子表
|
||
- id: 帖子ID(主键)
|
||
- category_id: 分类ID
|
||
- title: 标题
|
||
- content: 内容
|
||
- excerpt: 摘要
|
||
- author_id: 作者ID
|
||
- author_name: 作者名称
|
||
- author_avatar: 作者头像
|
||
- view_count: 浏览量
|
||
- reply_count: 回复数
|
||
- like_count: 点赞数
|
||
- favorite_count: 收藏数
|
||
- is_top: 是否置顶(0否 1是)
|
||
- is_hot: 是否热门(0否 1是)
|
||
- is_solved: 是否已解决(0否 1是)
|
||
- status: 状态(0正常 1删除 2审核中)
|
||
- last_reply_time: 最后回复时间
|
||
|
||
### forum_reply - 论坛回复表
|
||
- id: 回复ID(主键)
|
||
- post_id: 帖子ID
|
||
- parent_id: 父回复ID(0表示直接回复帖子)
|
||
- content: 回复内容
|
||
- author_id: 作者ID
|
||
- author_name: 作者名称
|
||
- like_count: 点赞数
|
||
- status: 状态(0正常 1删除 2审核中)
|
||
|
||
### forum_post_like - 帖子点赞表
|
||
- id: ID(主键)
|
||
- post_id: 帖子ID
|
||
- user_id: 用户ID
|
||
- create_time: 创建时间
|
||
|
||
### forum_post_favorite - 帖子收藏表
|
||
- id: ID(主键)
|
||
- post_id: 帖子ID
|
||
- user_id: 用户ID
|
||
- create_time: 创建时间
|
||
|
||
### forum_reply_like - 回复点赞表
|
||
- id: ID(主键)
|
||
- reply_id: 回复ID
|
||
- user_id: 用户ID
|
||
- create_time: 创建时间
|
||
|
||
## 功能特性
|
||
|
||
1. **帖子管理**
|
||
- 发布、编辑、删除帖子
|
||
- 分类管理
|
||
- 置顶、热门标记
|
||
- 已解决标记
|
||
|
||
2. **互动功能**
|
||
- 点赞/取消点赞
|
||
- 收藏/取消收藏
|
||
- 回复功能(支持嵌套回复)
|
||
- 浏览量统计
|
||
|
||
3. **搜索和排序**
|
||
- 关键词搜索
|
||
- 按最新、热门、回复数、浏览量排序
|
||
- 分类筛选
|
||
|
||
4. **用户体验**
|
||
- 响应式设计
|
||
- 实时更新
|
||
- 友好的时间显示
|
||
|
||
## 注意事项
|
||
|
||
1. 确保用户认证系统正常工作
|
||
2. 根据实际需求调整权限控制
|
||
3. 建议添加内容审核功能
|
||
4. 可以考虑添加图片上传功能
|
||
5. 建议添加敏感词过滤
|
||
|
||
## 后续扩展建议
|
||
|
||
1. 添加帖子详情页面
|
||
2. 添加回复功能页面
|
||
3. 添加用户个人中心(我的帖子、我的回复)
|
||
4. 添加管理员后台管理功能
|
||
5. 添加消息通知功能
|
||
6. 添加标签系统
|
||
7. 添加附件上传功能
|
||
|