ai + blog

This commit is contained in:
2026-01-20 17:20:03 +08:00
parent ef6b5cb11e
commit 61fb847ac1
33 changed files with 2346 additions and 1 deletions

View 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 PlusORM
- FlexMarkMarkdown 处理)
- Knife4jAPI 文档)
- Redis缓存
- MySQL数据库
5. **待实现功能**
- [ ] 文章 CRUD 接口开发
- [ ] 分类管理接口
- [ ] 标签管理接口
- [ ] 评论系统接口
- [ ] 点赞/收藏接口
- [ ] 文章搜索接口
- [ ] Markdown 渲染服务
- [ ] 文章定时发布
- [ ] 文章审核功能
**注意事项**:
- 确保先执行 `db/blog.sql` 初始化数据库
- 检查 `application-dev.yml` 中的数据库连接配置
- JWT 配置需与 `aioj-backend-auth` 保持一致
- 启动前确保 Nacos 服务已运行
## License
Copyright © 2025 AIOJ Project