Files
happy-life-star/server
..

情绪博物馆后端重构项目

项目概述

本项目是基于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

访问地址

注意事项

  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. 应用程序启动测试 - 进行中