ai + blog
This commit is contained in:
219
aioj-backend-blog-service/README.md
Normal file
219
aioj-backend-blog-service/README.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# 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 Plus(ORM)
|
||||
- FlexMark(Markdown 处理)
|
||||
- Knife4j(API 文档)
|
||||
- Redis(缓存)
|
||||
- MySQL(数据库)
|
||||
|
||||
5. **待实现功能**
|
||||
- [ ] 文章 CRUD 接口开发
|
||||
- [ ] 分类管理接口
|
||||
- [ ] 标签管理接口
|
||||
- [ ] 评论系统接口
|
||||
- [ ] 点赞/收藏接口
|
||||
- [ ] 文章搜索接口
|
||||
- [ ] Markdown 渲染服务
|
||||
- [ ] 文章定时发布
|
||||
- [ ] 文章审核功能
|
||||
|
||||
**注意事项**:
|
||||
- 确保先执行 `db/blog.sql` 初始化数据库
|
||||
- 检查 `application-dev.yml` 中的数据库连接配置
|
||||
- JWT 配置需与 `aioj-backend-auth` 保持一致
|
||||
- 启动前确保 Nacos 服务已运行
|
||||
|
||||
## License
|
||||
|
||||
Copyright © 2025 AIOJ Project
|
||||
Reference in New Issue
Block a user