demo
This commit is contained in:
lxy
2025-08-25 16:01:26 +08:00
commit 5a671c4233
93 changed files with 26892 additions and 0 deletions

View File

@ -0,0 +1,40 @@
# TASK001 - 项目基础架构搭建
## 任务信息
- **任务编号**: TASK001
- **任务名称**: 项目基础架构搭建
- **版本**: V1.0
- **状态**: 完成
## 任务描述
搭建海角AI后端项目的基础架构包括Spring Boot项目初始化、Maven依赖配置、项目目录结构规划、基础配置文件设置和开发环境配置。
## 验收标准清单
- [x] Spring Boot 3.x项目创建完成
- [x] Maven依赖配置完整包括web、jpa、security、jwt、redis、mysql等核心依赖
- [x] 项目目录结构规范包含controller、service、repository、entity、dto、config等包结构
- [x] application.yml配置文件完成基础配置数据库、服务器端口、日志等
- [x] 开发环境profiles配置dev、test、prod
- [x] 项目能正常启动并访问健康检查接口
- [x] 集成Swagger/OpenAPI文档工具
- [x] 配置跨域处理
- [x] 添加统一的日志配置
## 注意事项
1. 使用Spring Boot 3.x最新稳定版本确保与Java 17+兼容性
2. Maven依赖版本要保持一致性避免版本冲突
3. 包命名遵循com.lxy.hsend的约定
4. 配置文件中敏感信息使用环境变量或配置中心
5. 预留AI服务调用的HTTP客户端配置如RestTemplate或WebClient
6. 考虑文件上传大小限制配置
7. 设置合理的数据库连接池配置
8. 添加actuator健康检查端点
9. 配置时区为Asia/Shanghai
10. 预留Redis配置用于会话管理和缓存
## 相关文件
- pom.xml
- src/main/resources/application.yml
- src/main/resources/application-dev.yml
- src/main/java/com/lxy/hsend/config/
- src/main/java/com/lxy/hsend/HsEndApplication.java

View File

@ -0,0 +1,41 @@
# TASK002 - 数据库设计和初始化
## 任务信息
- **任务编号**: TASK002
- **任务名称**: 数据库设计和初始化
- **版本**: V1.0
- **状态**: 完成
## 任务描述
根据API文档设计数据库表结构创建用户、会话、消息、收藏、文件等核心业务表建立表之间的关联关系编写数据库初始化脚本和JPA Entity实体类。
## 验收标准清单
- [x] 完成数据库表结构设计,包括:用户表、会话表、消息表、收藏表、文件表
- [x] 建立表之间的外键关系和索引
- [x] 编写SQL初始化脚本schema.sql和data.sql - 使用Flyway迁移脚本V1__Create_initial_tables.sql
- [x] 创建对应的JPA Entity实体类 - User、Session、Message、Favorite、File
- [x] 配置JPA/Hibernate相关属性 - application.yml中已配置
- [x] 添加数据库版本管理工具Flyway或Liquibase - 已添加Flyway依赖和配置
- [x] 创建Repository接口 - UserRepository、SessionRepository、MessageRepository、FavoriteRepository、FileRepository
- [x] 验证数据库连接和表创建成功 - 测试通过,数据库连接正常
- [x] 编写基础的数据库操作测试 - DatabaseConnectionTest测试基本CRUD操作成功
## 注意事项
1. 用户表需包含id、email、password_hash、nickname、avatar_url、created_at、updated_at等字段
2. 会话表需包含session_idUUID、user_id、title、message_count、last_message_time、created_at等字段
3. 消息表需包含message_idUUID、session_id、roleuser/assistant、content、timestamp、model_used、is_favorited等字段
4. 收藏表需包含favorite_id、user_id、message_id、session_id、created_at等字段
5. 文件表需包含file_id、user_id、session_id、filename、file_path、file_size、file_type、upload_time等字段
6. 所有主键使用UUID或雪花ID避免数据泄露
7. 敏感字段需要考虑加密存储如密码使用BCrypt
8. 添加软删除字段deleted_at用于数据恢复
9. 时间字段统一使用BIGINT存储时间戳
10. 考虑分表分库的预留设计如用户ID取模
11. 为高频查询字段添加索引如session_id、user_id、timestamp等
12. 设置合理的字符集utf8mb4支持emoji
## 相关文件
- src/main/resources/db/migration/
- src/main/java/com/lxy/hsend/entity/
- src/main/java/com/lxy/hsend/repository/
- src/main/resources/application.yml数据库配置

View File

@ -0,0 +1,43 @@
# TASK003 - 基础配置和公共组件
## 任务信息
- **任务编号**: TASK003
- **任务名称**: 基础配置和公共组件
- **版本**: V1.0
- **状态**: ✅ 完成
## 任务描述
实现项目的基础配置和公共组件包括统一响应格式、全局异常处理、请求参数验证、跨域配置、JWT工具类、Redis配置等公共功能模块。
## 验收标准清单
- [x] 创建统一响应格式类ApiResponse - 完成,支持成功/失败响应和各种错误类型
- [x] 实现全局异常处理器GlobalExceptionHandler - 完成,覆盖所有异常类型和错误码
- [x] 配置参数验证注解和自定义验证器 - 完成,包括@ValidEmail@ValidPassword等
- [x] 实现JWT工具类生成、验证、解析token - 完成支持token生成、验证、黑名单机制
- [x] 配置Redis连接和序列化器 - 完成,包括缓存管理器和序列化配置
- [x] 创建通用工具类(时间处理、字符串工具、加密工具等) - 完成TimeUtil、StringUtil、CryptoUtil
- [x] 实现自定义注解(如@RequireAuth用于权限验证 - 完成@RequireAuth@RequestLog@RateLimit等
- [x] 配置Web MVC相关设置 - 完成CORS、静态资源、拦截器配置
- [x] 创建常量类和枚举类 - 完成Constants、ErrorCode枚举
- [x] 实现分页工具类 - 完成PageUtil支持分页查询和响应转换
## 注意事项
1. ApiResponse格式需严格按照API文档中的统一响应格式error、body、message、success字段
2. 异常处理需要覆盖所有API文档中定义的错误码1001-5002
3. JWT工具类需要支持token生成、验证、刷新和黑名单机制
4. 参数验证需要支持邮箱格式、密码强度、文件大小等自定义规则
5. Redis配置需要支持session存储和缓存功能
6. 工具类方法需要线程安全
7. 时间处理统一使用时间戳格式
8. 密码加密使用BCrypt算法
9. 文件上传需要支持类型验证和大小限制
10. 异常信息不应暴露敏感的系统内部信息
11. 添加请求日志记录功能
12. 配置合理的超时时间和重试机制
## 相关文件
- src/main/java/com/lxy/hsend/common/
- src/main/java/com/lxy/hsend/config/
- src/main/java/com/lxy/hsend/util/
- src/main/java/com/lxy/hsend/exception/
- src/main/java/com/lxy/hsend/annotation/

View File

@ -0,0 +1,37 @@
# TASK004 - 用户认证模块
## 任务信息
- **任务编号**: TASK004
- **任务名称**: 用户认证模块
- **版本**: V1.0
- **状态**: ✅ 完成
## 任务描述
实现用户认证相关功能包括用户注册、登录、登出、获取用户信息等接口集成JWT认证机制实现用户数据的增删改查操作。
## 验收标准清单
- [x] 实现用户注册接口(/api/auth/register - 完成,支持邮箱、密码、昵称注册
- [x] 实现用户登录接口(/api/auth/login - 完成返回JWT token和用户信息
- [x] 实现用户登出接口(/api/auth/logout - 完成token加入黑名单机制
- [x] 实现获取用户信息接口(/api/user/info - 完成,支持当前用户和公开用户信息
- [x] 集成JWT认证拦截器 - 完成自动验证token和设置用户上下文
- [x] 实现密码加密和验证 - 完成使用BCrypt加密
- [x] 实现邮箱格式验证和重复性检查 - 完成,注册时检查邮箱唯一性
- [x] 创建UserService、UserController和相关DTO - 完成,完整的服务层和控制层
- [x] 实现token黑名单机制 - 完成使用Redis存储黑名单token
- [x] 添加登录失败次数限制 - 完成Redis记录失败次数15分钟锁定
## 注意事项
1. 注册时需要验证邮箱格式和唯一性
2. 登录成功后返回JWT token和用户基本信息不能返回密码
9. 邮箱字段需要转换为小写存储
12. 注册时可以设置默认头像
13. 需要记录用户最后登录时间
14. 实现用户状态管理(正常、锁定、删除)
## 相关文件
- src/main/java/com/lxy/hsend/controller/AuthController.java
- src/main/java/com/lxy/hsend/controller/UserController.java
- src/main/java/com/lxy/hsend/service/UserService.java
- src/main/java/com/lxy/hsend/dto/auth/
- src/main/java/com/lxy/hsend/config/JwtAuthenticationFilter.java

View File

@ -0,0 +1,41 @@
# TASK005 - 聊天会话管理模块
## 任务信息
- **任务编号**: TASK005
- **任务名称**: 聊天会话管理模块
- **版本**: V1.0
- **状态**: ✅ 完成
## 任务描述
实现聊天会话的管理功能,包括创建会话、获取会话列表、获取会话消息、删除会话、清空会话等操作,支持会话的搜索和分页功能。
## 验收标准清单
- [ ] 实现创建会话接口(/api/chat/session
- [ ] 实现获取会话列表接口(/api/chat/sessions
- [ ] 实现获取会话消息接口(/api/chat/messages
- [ ] 实现删除会话接口(/api/chat/session/{session_id}
- [ ] 实现清空会话接口(/api/chat/session/{session_id}/clear
- [ ] 支持会话关键词搜索功能
- [ ] 实现会话列表分页查询
- [ ] 创建SessionService、SessionController和相关DTO
- [ ] 实现会话权限验证(用户只能操作自己的会话)
- [ ] 添加会话统计信息更新机制
## 注意事项
1. 会话ID使用UUID格式确保全局唯一性
2. 创建会话时需要验证用户登录状态和标题合法性
3. 获取会话列表需要按最后消息时间倒序排列
4. 关键词搜索需要支持标题和消息内容的模糊匹配
5. 分页参数需要设置合理的默认值和最大值限制
6. 删除会话时需要级联删除相关的消息和收藏记录
7. 清空会话只删除消息,保留会话本身
8. 用户只能访问和操作自己创建的会话
10. 需要实时更新会话的消息数量和最后消息时间
12. 考虑会话的软删除机制,便于数据恢复
14. 会话列表需要返回消息数量和最后消息时间
## 相关文件
- src/main/java/com/lxy/hsend/controller/SessionController.java
- src/main/java/com/lxy/hsend/service/SessionService.java
- src/main/java/com/lxy/hsend/dto/session/
- src/main/java/com/lxy/hsend/repository/SessionRepository.java

View File

@ -0,0 +1,37 @@
# TASK006 - 消息处理模块
## 任务信息
- **任务编号**: TASK006
- **任务名称**: 消息处理模块
- **版本**: V1.0
- **状态**: ✅ 完成
## 任务描述
实现消息发送和处理功能包括用户消息存储、AI响应生成、消息历史查询等核心聊天功能为后续AI服务集成做好接口预留。
## 验收标准清单
- [x] 实现发送消息接口(/api/chat/send
- [x] 实现消息存储和查询功能
- [x] 创建消息实体和相关DTO类
- [x] 实现消息分页查询
- [x] 添加消息内容验证和过滤
- [x] 实现消息角色区分user/assistant
- [x] 创建MessageService、MessageController
- [x] 预留AI服务调用接口
- [x] 实现消息时间戳记录
- [x] 添加消息状态管理
## 注意事项
1. 消息ID使用UUID格式确保唯一性
8. 支持深度思考和联网搜索的参数传递
9. 消息发送失败时需要返回明确的错误信息
10. 考虑消息的编辑和删除功能预留
12. 需要统计每个会话的消息数量
14. 预留消息附件(图片、文件)的关联字段
15. 实现消息的软删除机制
## 相关文件
- src/main/java/com/lxy/hsend/controller/MessageController.java
- src/main/java/com/lxy/hsend/service/MessageService.java
- src/main/java/com/lxy/hsend/dto/message/
- src/main/java/com/lxy/hsend/repository/MessageRepository.java

View File

@ -0,0 +1,45 @@
# TASK007 - 收藏功能模块
## 任务信息
- **任务编号**: TASK007
- **任务名称**: 收藏功能模块
- **版本**: V1.0
- **状态**: ✅ 完成
## 任务描述
实现用户消息收藏功能,包括添加收藏、取消收藏、获取收藏列表等操作,支持收藏消息的搜索和分页查询功能。
## 验收标准清单
- [x] 实现收藏消息接口(/api/favorites/add
- [x] 实现取消收藏接口(/api/favorites/remove
- [x] 实现获取收藏列表接口(/api/favorites/list
- [x] 创建收藏实体和相关DTO类
- [x] 实现收藏状态查询和更新
- [x] 支持收藏列表分页功能
- [x] 添加收藏重复性检查
- [x] 创建FavoriteService、FavoriteController
- [x] 实现收藏权限验证
- [x] 添加收藏数量统计功能
## 注意事项
1. 收藏记录需要关联用户ID、消息ID和会话ID
2. 同一条消息不能被同一用户重复收藏
3. 取消收藏时需要验证收藏记录的存在性
4. 用户只能操作自己的收藏记录
5. 收藏列表需要显示消息内容和所属会话标题
6. 收藏列表按收藏时间倒序排列
7. 删除消息时需要同步删除相关收藏记录
8. 删除会话时需要同步删除相关收藏记录
9. 收藏ID使用UUID格式确保唯一性
10. 需要在消息查询时返回收藏状态
11. 收藏列表支持按会话标题搜索
12. 设置用户收藏数量的合理上限
13. 收藏操作需要添加操作日志
14. 考虑收藏的分类和标签功能预留
15. 收藏列表需要显示消息的完整上下文信息
## 相关文件
- src/main/java/com/lxy/hsend/controller/FavoriteController.java
- src/main/java/com/lxy/hsend/service/FavoriteService.java
- src/main/java/com/lxy/hsend/dto/favorite/
- src/main/java/com/lxy/hsend/repository/FavoriteRepository.java

View File

@ -0,0 +1,47 @@
# TASK008 - 文件上传模块
## 任务信息
- **任务编号**: TASK008
- **任务名称**: 文件上传模块
- **版本**: V1.0
- **状态**: 跳过该模块,暂时进行不开发
## 任务描述
实现文件上传功能支持txt、pdf、md等格式文件的上传、存储和管理为AI文档分析功能提供基础支持。
## 验收标准清单
- [ ] 实现文件上传接口(/api/files/upload
- [ ] 支持多种文件格式验证txt、pdf、md、docx等
- [ ] 实现文件大小限制和安全检查
- [ ] 创建文件存储和管理功能
- [ ] 实现文件元数据记录
- [ ] 添加文件访问权限控制
- [ ] 创建FileService、FileController和相关DTO
- [ ] 实现文件内容解析预处理
- [ ] 添加文件删除和清理功能
- [ ] 实现文件上传进度反馈
## 注意事项
1. 文件大小限制在10MB以内防止服务器资源耗尽
2. 支持的文件类型:.txt、.pdf、.md、.docx、.doc、.xlsx、.xls
3. 文件名需要重命名使用UUID+原扩展名避免冲突
4. 上传的文件需要进行病毒扫描和安全检查
5. 文件存储路径需要按日期分层组织(如/files/2024/01/01/
6. 记录文件的原始名称、存储路径、大小、类型等元数据
7. 用户只能访问自己上传的文件
8. 文件上传需要关联到具体的会话
9. 实现文件的软删除,定期清理无效文件
10. 添加文件上传失败的重试机制
11. 支持断点续传功能(可选)
12. 文件存储考虑使用OSS或本地文件系统
13. 需要生成文件的访问URL
14. 添加文件下载接口用于预览
15. 实现文件内容的文本提取功能
16. 设置用户文件数量和总大小限制
## 相关文件
- src/main/java/com/lxy/hsend/controller/FileController.java
- src/main/java/com/lxy/hsend/service/FileService.java
- src/main/java/com/lxy/hsend/dto/file/
- src/main/java/com/lxy/hsend/repository/FileRepository.java
- src/main/java/com/lxy/hsend/util/FileUtil.java

View File

@ -0,0 +1,46 @@
# TASK009 - AI服务集成
## 任务信息
- **任务编号**: TASK009
- **任务名称**: AI服务集成
- **版本**: V1.0
- **状态**: 计划中
## 任务描述
集成外部AI服务接口实现多模型支持、深度思考模式、联网搜索等AI增强功能为用户提供智能对话服务。
## 验收标准清单
- [ ] 集成腾讯混元AI模型接口
- [ ] 实现基础模型和增强模型切换
- [ ] 集成深度思考模式功能
- [ ] 实现联网搜索功能
- [ ] 创建AI服务抽象层和实现类
- [ ] 实现AI响应的流式处理
- [ ] 添加AI服务的错误处理和重试机制
- [ ] 实现会话上下文管理
- [ ] 添加AI调用的监控和日志
- [ ] 实现AI服务的负载均衡
## 注意事项
1. AI模型支持Hunyuan混元、基础模型、增强模型
2. 深度思考模式需要调用更强的推理模型,响应时间较长
3. 联网搜索需要整合搜索引擎API获取实时信息
4. AI服务调用需要添加超时控制如30秒
5. 实现AI响应的流式输出提升用户体验
6. 会话上下文需要控制长度避免token超限
7. AI服务异常时需要返回友好的错误提示
8. 记录AI调用的token消耗和成本统计
9. 实现AI服务的API密钥管理和轮换
10. 添加AI内容的安全过滤和合规检查
11. 支持AI模型的动态配置和热切换
12. 实现AI响应的缓存机制优化性能
13. 添加AI服务的限流和降级策略
14. 文件上传后需要提取内容传递给AI分析
15. 实现AI对话的记忆管理和遗忘机制
16. 支持自定义AI系统提示词配置
## 相关文件
- src/main/java/com/lxy/hsend/service/ai/
- src/main/java/com/lxy/hsend/config/AIConfig.java
- src/main/java/com/lxy/hsend/dto/ai/
- src/main/java/com/lxy/hsend/integration/

View File

@ -0,0 +1,46 @@
# TASK010 - 安全性和权限控制
## 任务信息
- **任务编号**: TASK010
- **任务名称**: 安全性和权限控制
- **版本**: V1.0
- **状态**: 计划中
## 任务描述
加强系统安全性,实现接口鉴权、参数验证、防攻击措施、数据加密等安全功能,确保用户数据安全和系统稳定运行。
## 验收标准清单
- [ ] 实现JWT token验证和刷新机制
- [ ] 添加接口访问频率限制Rate Limiting
- [ ] 实现参数校验和SQL注入防护
- [ ] 添加XSS攻击防护
- [ ] 实现CSRF防护机制
- [ ] 配置HTTPS和安全响应头
- [ ] 实现敏感数据加密存储
- [ ] 添加操作日志和审计功能
- [ ] 实现IP白名单和黑名单机制
- [ ] 配置跨域访问控制
## 注意事项
1. 所有需要登录的接口都必须验证JWT token
2. 实现token的自动续期机制提升用户体验
3. 对高频接口添加访问频率限制如每分钟最多100次请求
4. 用户输入必须进行严格的参数验证和过滤
5. 密码、密钥等敏感信息需要加密存储
6. 记录所有重要操作的日志,包括用户行为和系统异常
7. 生产环境必须启用HTTPS禁用HTTP
8. 配置安全响应头X-Frame-Options、X-XSS-Protection等
9. 实现账户锁定机制,防止暴力破解
10. 文件上传需要检查文件类型和内容安全性
11. AI生成内容需要进行敏感信息过滤
12. 数据库查询需要使用预编译语句防止SQL注入
13. 会话管理需要防止会话劫持
14. 实现接口访问的白名单机制
15. 添加异常访问的监控和告警
16. 配置合理的CORS策略
## 相关文件
- src/main/java/com/lxy/hsend/security/
- src/main/java/com/lxy/hsend/config/SecurityConfig.java
- src/main/java/com/lxy/hsend/filter/
- src/main/java/com/lxy/hsend/aspect/SecurityAspect.java

View File

@ -0,0 +1,46 @@
# TASK011 - 性能优化和缓存
## 任务信息
- **任务编号**: TASK011
- **任务名称**: 性能优化和缓存
- **版本**: V1.0
- **状态**: 计划中
## 任务描述
实现系统性能优化和缓存机制包括Redis缓存、数据库优化、接口性能监控等功能提升系统响应速度和并发处理能力。
## 验收标准清单
- [ ] 配置Redis缓存和缓存策略
- [ ] 实现热点数据缓存(用户信息、会话列表等)
- [ ] 优化数据库查询和索引
- [ ] 实现分页查询优化
- [ ] 添加接口性能监控和统计
- [ ] 实现数据库连接池优化
- [ ] 配置异步处理机制
- [ ] 实现AI响应结果缓存
- [ ] 添加静态资源CDN配置
- [ ] 实现数据预加载机制
## 注意事项
1. 用户信息、会话列表等热点数据使用Redis缓存设置合理的过期时间
2. 缓存更新策略采用Cache-Aside模式确保数据一致性
3. 数据库查询添加必要的索引特别是用户ID、会话ID等关联字段
4. 分页查询使用游标分页替代传统offset分页提升大数据量查询性能
5. 接口响应时间监控,记录慢查询和异常情况
6. 数据库连接池配置合理的最大连接数和超时时间
7. AI服务调用使用异步处理避免阻塞主线程
8. 相同问题的AI响应可以缓存一定时间减少重复调用
9. 静态资源头像、文件使用CDN加速访问
10. 系统启动时预加载常用配置和数据字典
11. 实现数据库读写分离,提升查询性能
12. 使用连接池管理Redis连接避免连接泄露
13. 实现缓存雪崩和缓存穿透的防护机制
14. 大文件上传使用分片上传技术
15. 配置JVM参数优化内存使用
16. 实现系统资源使用率监控
## 相关文件
- src/main/java/com/lxy/hsend/config/CacheConfig.java
- src/main/java/com/lxy/hsend/config/RedisConfig.java
- src/main/java/com/lxy/hsend/aspect/PerformanceAspect.java
- src/main/java/com/lxy/hsend/service/cache/

View File

@ -0,0 +1,48 @@
# TASK012 - 集成测试和文档完善
## 任务信息
- **任务编号**: TASK012
- **任务名称**: 集成测试和文档完善
- **版本**: V1.0
- **状态**: 计划中
## 任务描述
编写完整的单元测试和集成测试完善API文档和部署文档确保系统功能正确性和可维护性为项目上线做好准备。
## 验收标准清单
- [ ] 编写单元测试覆盖所有Service层方法
- [ ] 编写集成测试覆盖所有API接口
- [ ] 实现数据库测试和Mock数据准备
- [ ] 完善Swagger API文档注解
- [ ] 编写部署文档和运维手册
- [ ] 实现健康检查和监控接口
- [ ] 添加系统性能基准测试
- [ ] 创建Docker镜像和部署脚本
- [ ] 编写用户使用手册
- [ ] 实现自动化测试流程
## 注意事项
1. 单元测试需要达到80%以上的代码覆盖率
2. 集成测试需要覆盖所有API接口的正常和异常场景
3. 使用TestContainers进行数据库集成测试
4. Mock外部依赖AI服务、文件存储等进行隔离测试
5. Swagger文档需要包含完整的参数说明和示例
6. 部署文档需要包含环境要求、配置说明、启动步骤
7. 健康检查接口需要检查数据库、Redis、外部服务连通性
8. 性能测试需要模拟并发用户和大数据量场景
9. Docker镜像需要优化大小和启动速度
10. 测试数据需要支持自动清理和重置
11. 文档需要包含常见问题解答和故障排查指南
12. 实现CI/CD流水线自动化构建和部署
13. 添加代码质量检查和安全扫描
14. 准备压力测试报告和性能调优建议
15. 编写数据库备份和恢复方案
16. 制定系统监控和告警策略
## 相关文件
- src/test/java/com/lxy/hsend/
- docker/Dockerfile
- docs/deployment.md
- docs/api-guide.md
- docs/troubleshooting.md
- scripts/deploy.sh

149
doc/任务总览.md Normal file
View File

@ -0,0 +1,149 @@
# 海角AI后端开发任务总览
## 项目概述
海角AI是一个智能对话产品采用经典的两栏式布局为用户提供AI聊天、会话管理、消息收藏、文件上传等功能。本文档详细规划了后端开发的所有任务。
## 任务列表概览
| 任务编号 | 任务名称 | 版本 | 状态 | 优先级 | 预估工期 |
|---------|---------|------|------|-------|---------|
| TASK001 | 项目基础架构搭建 | V1.0 | 计划中 | 高 | 2天 |
| TASK002 | 数据库设计和初始化 | V1.0 | 计划中 | 高 | 3天 |
| TASK003 | 基础配置和公共组件 | V1.0 | 计划中 | 高 | 3天 |
| TASK004 | 用户认证模块 | V1.0 | 计划中 | 高 | 4天 |
| TASK005 | 聊天会话管理模块 | V1.0 | 计划中 | 中 | 3天 |
| TASK006 | 消息处理模块 | V1.0 | 计划中 | 高 | 4天 |
| TASK007 | 收藏功能模块 | V1.0 | 计划中 | 中 | 2天 |
| TASK008 | 文件上传模块 | V1.0 | 计划中 | 中 | 3天 |
| TASK009 | AI服务集成 | V1.0 | 计划中 | 高 | 5天 |
| TASK010 | 安全性和权限控制 | V1.0 | 计划中 | 高 | 3天 |
| TASK011 | 性能优化和缓存 | V1.0 | 计划中 | 中 | 3天 |
| TASK012 | 集成测试和文档完善 | V1.0 | 计划中 | 中 | 4天 |
**总计预估工期39天**
## 开发阶段规划
### 第一阶段基础建设7-8天
- TASK001项目基础架构搭建
- TASK002数据库设计和初始化
- TASK003基础配置和公共组件
### 第二阶段核心功能11-13天
- TASK004用户认证模块
- TASK005聊天会话管理模块
- TASK006消息处理模块
- TASK009AI服务集成
### 第三阶段扩展功能8-10天
- TASK007收藏功能模块
- TASK008文件上传模块
- TASK010安全性和权限控制
### 第四阶段优化完善7天
- TASK011性能优化和缓存
- TASK012集成测试和文档完善
## 技术栈说明
### 后端框架
- **Spring Boot 3.x**:主要开发框架
- **Spring Security**:安全认证框架
- **Spring Data JPA**:数据持久层框架
- **MySQL 8.0**:主数据库
- **Redis**:缓存和会话存储
### 开发工具
- **Maven**:项目构建和依赖管理
- **JWT**:用户认证令牌
- **Swagger/OpenAPI**API文档生成
- **Docker**:容器化部署
- **Flyway**:数据库版本管理
### 外部服务
- **腾讯混元AI**AI对话服务
- **文件存储**本地存储或OSS
- **搜索引擎API**:联网搜索功能
## API接口概览
### 用户认证模块4个接口
- POST /api/auth/register - 用户注册
- POST /api/auth/login - 用户登录
- POST /api/auth/logout - 用户登出
- GET /api/user/info - 获取用户信息
### 聊天模块6个接口
- POST /api/chat/session - 创建会话
- POST /api/chat/send - 发送消息
- GET /api/chat/sessions - 获取会话列表
- GET /api/chat/messages - 获取会话消息
- DELETE /api/chat/session/{session_id} - 删除会话
- POST /api/chat/session/{session_id}/clear - 清空会话
### 收藏模块3个接口
- POST /api/favorites/add - 收藏消息
- DELETE /api/favorites/remove - 取消收藏
- GET /api/favorites/list - 获取收藏列表
### 文件上传模块1个接口
- POST /api/files/upload - 上传文件
## 数据库表设计概览
### 核心业务表
- **users**:用户表
- **sessions**:会话表
- **messages**:消息表
- **favorites**:收藏表
- **files**:文件表
### 系统表
- **operation_logs**:操作日志表
- **system_configs**:系统配置表
## 部署环境要求
### 硬件要求
- **CPU**4核心以上
- **内存**8GB以上
- **存储**50GB以上SSD
### 软件要求
- **Java 17+**
- **MySQL 8.0+**
- **Redis 6.0+**
- **Nginx**(反向代理)
## 风险控制
### 技术风险
1. **AI服务依赖**外部AI服务不稳定需要实现降级和重试机制
2. **并发处理**:高并发情况下的性能瓶颈,需要优化缓存和数据库
3. **数据安全**:用户数据和会话内容的安全保护
### 业务风险
1. **内容安全**AI生成内容的合规性检查
2. **用户体验**:响应时间和系统稳定性
3. **扩展性**:后续功能扩展的架构支持
## 质量保证
### 代码质量
- 代码覆盖率达到80%以上
- 遵循阿里巴巴Java开发规范
- 使用SonarQube进行代码质量检查
### 测试策略
- 单元测试所有Service层方法
- 集成测试所有API接口
- 性能测试:并发用户场景模拟
### 文档要求
- API文档Swagger自动生成
- 部署文档:详细的环境配置和部署步骤
- 运维文档:监控、备份、故障处理指南
---
**备注**:本任务规划基于当前需求和技术选型,在实际开发过程中可能需要根据具体情况进行调整。建议采用敏捷开发模式,按阶段交付,及时收集反馈并迭代优化。