# 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