195 lines
5.4 KiB
Markdown
195 lines
5.4 KiB
Markdown
# 情绪博物馆后端重构项目
|
|
|
|
## 项目概述
|
|
|
|
本项目是基于Spring Boot 3.4.8的情绪博物馆后端服务重构版本,从原有的Spring Boot 2.7.18升级而来。
|
|
|
|
## 重构进度
|
|
|
|
### 第一阶段:基础环境升级 ✅
|
|
|
|
#### 已完成的工作
|
|
|
|
1. **项目结构创建** ✅
|
|
- 创建了标准的Maven项目结构
|
|
- 配置了src/main/java和src/main/resources目录
|
|
|
|
2. **Maven配置** ✅
|
|
- 创建了pom.xml文件
|
|
- 配置了Spring Boot 3.4.8作为父项目
|
|
- 添加了所有必要的依赖:
|
|
- Spring Boot Starters (Web, Security, WebSocket, Redis, Validation, Actuator)
|
|
- MyBatis-Plus 3.5.5
|
|
- JWT 0.12.3
|
|
- SpringDoc OpenAPI 3
|
|
- Hutool 5.8.25
|
|
- Lombok
|
|
|
|
3. **配置文件** ✅
|
|
- application.yml (主配置文件)
|
|
- application-local.yml (本地环境配置)
|
|
- 配置了数据库连接、Redis、日志等
|
|
|
|
4. **基础配置类** ✅
|
|
- SecurityConfig (Spring Security 6.x配置)
|
|
- MybatisPlusConfig (MyBatis-Plus配置)
|
|
- RedisConfig (Redis配置)
|
|
- AsyncConfig (异步配置)
|
|
- OpenApiConfig (OpenAPI配置)
|
|
- WebClientConfig (HTTP客户端配置)
|
|
- CozeConfig (Coze API配置)
|
|
|
|
5. **主启动类** ✅
|
|
- EmotionMuseumApplication.java
|
|
- 配置了组件扫描、缓存、异步、事务管理
|
|
|
|
6. **基础控制器** ✅
|
|
- HealthController (健康检查接口)
|
|
|
|
#### 技术栈升级
|
|
|
|
- **Spring Boot**: 2.7.18 → 3.4.8 ✅
|
|
- **Java版本**: JDK 17 (当前使用,计划升级到JDK 21)
|
|
- **Spring Security**: 5.x → 6.x ✅
|
|
- **MyBatis-Plus**: 3.5.3.1 → 3.5.5 ✅
|
|
- **JWT**: 0.11.5 → 0.12.3 ✅
|
|
- **API文档**: Swagger → SpringDoc OpenAPI 3 ✅
|
|
|
|
#### 当前状态
|
|
|
|
- ✅ 项目能够正常编译
|
|
- ✅ 基础配置完成
|
|
- ✅ 应用程序启动成功
|
|
|
|
### 第二阶段:核心功能重构 🔄
|
|
|
|
#### 已完成的工作
|
|
|
|
1. **实体类创建** ✅
|
|
- User (用户实体)
|
|
- DiaryPost (日记实体)
|
|
- Message (消息实体)
|
|
- Conversation (会话实体)
|
|
|
|
2. **DTO类创建** ✅
|
|
- Result (通用响应DTO)
|
|
- LoginRequest/LoginResponse (登录相关DTO)
|
|
- RegisterRequest (注册DTO)
|
|
|
|
3. **Mapper接口创建** ✅
|
|
- UserMapper (用户数据访问)
|
|
- DiaryPostMapper (日记数据访问)
|
|
- MessageMapper (消息数据访问)
|
|
- ConversationMapper (会话数据访问)
|
|
|
|
4. **工具类创建** ✅
|
|
- JwtUtil (JWT工具类,适配JWT 0.12.3)
|
|
|
|
5. **认证系统重构** ✅
|
|
- AuthService (认证服务接口)
|
|
- AuthServiceImpl (认证服务实现)
|
|
- AuthController (认证控制器)
|
|
- 支持用户注册、登录、登出、令牌刷新等功能
|
|
|
|
6. **用户管理系统重构** ✅
|
|
- UserService (用户服务接口)
|
|
- UserServiceImpl (用户服务实现)
|
|
- UserController (用户控制器)
|
|
- 支持用户信息管理、密码修改、用户列表等功能
|
|
|
|
7. **AI对话系统重构** ✅
|
|
- CozeApiService (Coze API服务接口)
|
|
- CozeApiServiceImpl (Coze API服务实现)
|
|
- AiChatService (AI聊天服务接口)
|
|
- AiChatServiceImpl (AI聊天服务实现)
|
|
- AiChatController (AI聊天控制器)
|
|
- 支持与Coze Bot的对话、会话管理、消息历史等功能
|
|
|
|
8. **日记系统重构** ✅
|
|
- DiaryPostRequest (日记请求DTO)
|
|
- DiaryPostService (日记服务接口)
|
|
- DiaryPostServiceImpl (日记服务实现)
|
|
- DiaryPostController (日记控制器)
|
|
- 支持日记CRUD、AI点评、点赞、情绪标签等功能
|
|
|
|
9. **WebSocket系统重构** ✅
|
|
- WebSocketConfig (WebSocket配置)
|
|
- ChatMessage (WebSocket消息DTO)
|
|
- WebSocketController (WebSocket控制器)
|
|
- 支持实时聊天、AI对话、消息推送等功能
|
|
|
|
10. **社区系统重构** 🔄
|
|
- Comment (评论实体)
|
|
- UserFollow (用户关注实体)
|
|
- CommentRequest/CommentResponse (评论DTO)
|
|
- CommentMapper/UserFollowMapper (数据访问层)
|
|
- CommentService/UserFollowService (服务接口)
|
|
- CommentServiceImpl (评论服务实现)
|
|
- 支持评论、回复、点赞、用户关注等功能
|
|
|
|
#### 当前状态
|
|
|
|
- ✅ 认证系统重构完成
|
|
- ✅ 用户管理系统重构完成
|
|
- ✅ AI对话系统重构完成
|
|
- ✅ 日记系统重构完成
|
|
- ✅ WebSocket系统重构完成
|
|
- ✅ 社区系统基础重构完成
|
|
- ✅ JWT 0.12.3适配完成
|
|
- ✅ 基础数据访问层完成
|
|
- 🔄 继续其他核心功能重构
|
|
|
|
## 下一步计划
|
|
|
|
### 第二阶段:核心功能重构
|
|
|
|
1. **认证系统重构**
|
|
- 重构AuthController
|
|
- 升级JWT认证机制
|
|
- 优化Spring Security配置
|
|
|
|
2. **AI对话系统重构**
|
|
- 重构AiChatController
|
|
- 实现Coze API客户端
|
|
- 优化异步处理机制
|
|
|
|
3. **用户管理系统重构**
|
|
- 重构UserController
|
|
- 优化用户信息管理
|
|
|
|
4. **日记系统重构**
|
|
- 重构DiaryPostController
|
|
- 优化日记CRUD操作
|
|
|
|
## 运行说明
|
|
|
|
### 环境要求
|
|
|
|
- JDK 17+
|
|
- Maven 3.6+
|
|
- MySQL 8.0+
|
|
- Redis 7.0+
|
|
|
|
### 启动步骤
|
|
|
|
1. 配置环境变量或修改application-local.yml中的数据库和Redis连接信息
|
|
2. 执行编译:`mvn clean compile`
|
|
3. 启动应用:`mvn spring-boot:run`
|
|
|
|
### 访问地址
|
|
|
|
- 应用地址:http://localhost:19089
|
|
- API文档:http://localhost:19089/api/swagger-ui.html
|
|
- 健康检查:http://localhost:19089/api/health
|
|
|
|
## 注意事项
|
|
|
|
1. 当前使用JDK 17,后续将升级到JDK 21
|
|
2. 数据库和Redis需要提前启动并配置
|
|
3. Coze API配置需要设置环境变量COZE_API_KEY和COZE_BOT_ID
|
|
|
|
## 问题记录
|
|
|
|
1. Spring Boot Actuator依赖问题 - 已解决
|
|
2. Spring Security 6.x配置调整 - 已解决
|
|
3. 应用程序启动测试 - 进行中 |