Files
AI_OJ/aioj-backend-blog-service/README.md
2026-01-20 17:20:03 +08:00

220 lines
5.6 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.
# AIOJ 博客服务模块
## 模块说明
`aioj-backend-blog-service` 是 AIOJ 系统的博客服务模块,用于用户发帖、分享技术经验、写文章。
## 功能特性
- 文章管理:发布、编辑、删除、草稿箱
- 分类管理:支持多级分类
- 标签系统:文章标签分类和关联
- 评论系统:支持多级评论和回复
- 点赞/收藏:文章和评论点赞、收藏功能
- 浏览统计:文章浏览记录和统计
- Markdown 支持:原生支持 Markdown 编辑和渲染
- 搜索功能:全文搜索文章标题和内容
## 技术栈
- Spring Boot 3.5.7
- MyBatis Plus
- MySQL 8.0
- Redis
- Nacos 服务发现
- FlexMark (Markdown 处理)
- Knife4j (API 文档)
## 端口配置
- 开发环境: 18086
- 上下文路径: /api
## 数据库
数据库名称: `aioj_blog`
初始化 SQL 脚本: `../../db/blog.sql`
### 核心表结构
| 表名 | 说明 |
|------|------|
| blog_article | 文章表 |
| blog_category | 文章分类表 |
| blog_tag | 文章标签表 |
| blog_article_tag | 文章标签关联表 |
| blog_comment | 评论表 |
| blog_like | 点赞表 |
| blog_favorite | 收藏表 |
| blog_view | 浏览记录表 |
| blog_draft | 草稿箱表 |
## 快速开始
### 1. 初始化数据库
```bash
mysql -u root -p < ../../db/blog.sql
```
### 2. 配置数据库连接
编辑 `src/main/resources/application-dev.yml`:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/aioj_blog
username: your_username
password: your_password
```
### 3. 启动服务
```bash
mvn spring-boot:run
```
或直接运行主类: `BlogServiceApplication.java`
### 4. 访问 API 文档
启动服务后访问: http://localhost:18086/api/doc.html
## API 接口
### 文章相关
- `POST /api/article` - 创建文章
- `PUT /api/article/{id}` - 更新文章
- `DELETE /api/article/{id}` - 删除文章
- `GET /api/article/{id}` - 获取文章详情
- `GET /api/article/list` - 获取文章列表
- `POST /api/article/publish` - 发布文章
### 分类相关
- `GET /api/category/list` - 获取分类列表
- `POST /api/category` - 创建分类(管理员)
### 标签相关
- `GET /api/tag/list` - 获取标签列表
- `GET /api/tag/hot` - 获取热门标签
### 评论相关
- `POST /api/comment` - 发表评论
- `GET /api/comment/article/{articleId}` - 获取文章评论列表
- `DELETE /api/comment/{id}` - 删除评论
## 开发指南
### 代码结构
```
aioj-backend-blog-service/
├── src/main/java/cn/meowrain/aioj/backend/blogservice/
│ ├── controller/ # 控制器层
│ ├── service/ # 服务层
│ │ └── impl/ # 服务实现层
│ ├── dao/ # 数据访问层
│ │ ├── mapper/ # MyBatis Mapper
│ │ └── model/ # 数据模型
│ ├── dto/ # 数据传输对象
│ ├── vo/ # 视图对象
│ ├── common/ # 公共类
│ ├── config/ # 配置类
│ └── BlogServiceApplication.java
└── src/main/resources/
├── mapper/ # MyBatis XML 映射文件
├── application.yml # 主配置文件
├── application-dev.yml
├── application-test.yml
├── application-prod.yml
└── logback-spring.xml # 日志配置
```
### 待实现功能
- [ ] 文章 CRUD 接口
- [ ] 分类管理接口
- [ ] 标签管理接口
- [ ] 评论系统接口
- [ ] 点赞/收藏接口
- [ ] 文章搜索接口
- [ ] Markdown 渲染服务
- [ ] 文章定时发布
- [ ] 文章审核功能
- [ ] 用户关注和动态
## 更新日志
### 2025-01-20 - 初始创建
**创建者**: Claude Code
**工作内容**:
1. **模块结构搭建**
- 创建完整的 Maven 模块目录结构
- 配置 `pom.xml`,引入所需依赖
- 创建主应用类 `BlogServiceApplication.java`
- 更新父 `pom.xml`,添加新模块注册
2. **配置文件创建**
- `application.yml` - 主配置文件
- 服务端口: 18086
- 上下文路径: /api
- MyBatis Plus 配置
- Knife4j API 文档配置
- `application-dev.yml` - 开发环境配置
- `application-test.yml` - 测试环境配置
- `application-prod.yml` - 生产环境配置
- `logback-spring.xml` - 日志配置
3. **数据库设计**
- 创建 `db/blog.sql` 数据库初始化脚本
- 设计 9 张核心表:
- `blog_article` - 文章表(支持草稿、发布、下架等状态)
- `blog_category` - 分类表(支持多级分类)
- `blog_tag` - 标签表
- `blog_article_tag` - 文章标签关联表
- `blog_comment` - 评论表(支持多级回复)
- `blog_like` - 点赞表
- `blog_favorite` - 收藏表
- `blog_view` - 浏览记录表
- `blog_draft` - 草稿箱表
- 添加初始分类和标签数据
4. **依赖说明**
- Spring Boot 3.5.7
- Spring Cloud & Nacos服务发现
- MyBatis PlusORM
- FlexMarkMarkdown 处理)
- Knife4jAPI 文档)
- Redis缓存
- MySQL数据库
5. **待实现功能**
- [ ] 文章 CRUD 接口开发
- [ ] 分类管理接口
- [ ] 标签管理接口
- [ ] 评论系统接口
- [ ] 点赞/收藏接口
- [ ] 文章搜索接口
- [ ] Markdown 渲染服务
- [ ] 文章定时发布
- [ ] 文章审核功能
**注意事项**:
- 确保先执行 `db/blog.sql` 初始化数据库
- 检查 `application-dev.yml` 中的数据库连接配置
- JWT 配置需与 `aioj-backend-auth` 保持一致
- 启动前确保 Nacos 服务已运行
## License
Copyright © 2025 AIOJ Project