这是公共文化资源系统的 Java Spring Boot 后端实现,与现有的 Python 后端并行存在。
backend-java/
├── pom.xml # Maven 配置文件
├── README.md # 本文件
├── AIGC/ # AIGC功能模块(Python)
│ ├── aigc_api_server.py # AIGC API服务器
│ ├── auto_annotation.py # 自动标注
│ ├── RAG.py # RAG检索增强生成
│ └── ...
└── src/
└── main/
├── java/
│ └── com/
│ └── app/
│ ├── CulturalResourcesApplication.java # 主应用类
│ ├── config/ # 配置类
│ │ └── WebConfig.java
│ ├── controller/ # REST 控制器
│ │ ├── AuthController.java
│ │ ├── CommentController.java
│ │ ├── StatisticsController.java
│ │ ├── UploadController.java
│ │ ├── ResourceController.java
│ │ ├── SearchController.java
│ │ └── AnnotationTaskController.java
│ ├── entity/ # JPA 实体类
│ │ ├── User.java
│ │ ├── CulturalResource.java
│ │ ├── CulturalResourceFromUser.java
│ │ ├── UserComment.java
│ │ ├── CommentReply.java
│ │ ├── AnnotationTask.java
│ │ └── UserBehaviorLog.java
│ ├── repository/ # JPA Repository
│ │ ├── UserRepository.java
│ │ ├── CulturalResourceRepository.java
│ │ ├── CulturalResourceFromUserRepository.java
│ │ ├── UserCommentRepository.java
│ │ ├── CommentReplyRepository.java
│ │ ├── AnnotationTaskRepository.java
│ │ └── UserBehaviorLogRepository.java
│ ├── service/ # 业务逻辑层
│ │ ├── AuthService.java
│ │ ├── CommentService.java
│ │ ├── StatisticsService.java
│ │ ├── AnnotationTaskService.java
│ │ └── UserLoggingService.java
│ └── util/ # 工具类
│ └── PasswordUtil.java
└── resources/
└── application.yml # 应用配置文件
- 用户注册
- 用户登录
- 修改密码
- 修改昵称
- 修改个人签名
- 更换头像
- 安全问题管理
- 密码重置
- 资源上传(文本/图像)
- 资源查询
- 首页资源列表(每页8条)
- 资源详情
- 全文检索(
/api/search)- 每页8条数据 - AI检索(
/api/ai_search)- 每页8条数据
- 获取评论列表
- 创建评论
- 回复评论
- 点赞功能
- 获取标注任务列表(每页12条数据)
- 支持状态过滤
- 支持管理员/普通用户权限控制
- 访问人次统计
- AIGC 使用量统计
- 趋势数据
- 获取用户通知列表
- 标记通知为已读
- 标记所有通知为已读
- 评论点赞和回复时自动创建通知
- 管理员面板统计(访问人次、AIGC使用量、趋势数据)
- 用户访问日志记录
- 用户管理
- 角色切换
- 用户资源导出为Excel
- 批量导出用户资源
- 导出文件下载
- 爬虫图片服务
- AIGC图片服务
- 用户上传图片服务
- AIGC聊天(文本和图像生成)
- AIGC会话管理(创建、获取、删除、更新摘要)
- AIGC历史对话查询(支持用户消息和AI消息分离显示)
- 标题提取
- AIGC资源获取和保存
- 二次创作功能
- 会话历史从本地数据库读取(qa_sessions和qa_messages表)
- 文本+图片多模态搜索
- 转发请求到Python AIGC服务
- 用户行为日志记录
- 登录、注册、上传、搜索等行为记录
- 检索结果:每页 8条 数据(
/api/search,/api/ai_search,/api/home/resources) - 标注任务:每页 12条 数据(
/api/annotation/tasks)
在 application.yml 中配置数据库连接:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/java_project?useUnicode=true&characterEncoding=utf8mb4&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: your_password- 确保已安装 Java 24 和 Maven 3.6+
- 配置数据库连接(修改
application.yml) - 运行:
mvn spring-boot:run
- 服务将在
http://localhost:7210启动
- 本 Java 后端与 Python 后端功能完全一致,API端点相同
- Java 后端使用 Spring Boot + JPA/Hibernate 框架实现
- 所有功能模块均已实现,包括认证、资源管理、评论、标注任务、通知、管理员面板、导出下载等
- AIGC功能:
- AIGC聊天功能通过调用Python服务实现,需要Python后端运行在
http://localhost:7200 - AIGC历史对话从本地数据库(qa_sessions和qa_messages表)读取
- 新建对话功能已优化,支持从请求头(X-User-Id)读取用户ID
- AI回答显示区域自适应,最多占3/4屏幕(75vh高度,75%宽度)
- AI消息和用户消息正确分离显示
- AIGC聊天功能通过调用Python服务实现,需要Python后端运行在
- 多模态搜索功能会转发请求到Python AIGC服务
- 需要先初始化数据库才能正常使用
所有接口路径与 Python 版本保持一致,例如:
POST /api/auth/register- 用户注册POST /api/auth/login- 用户登录GET /api/comments?resource_id=xxx- 获取评论POST /api/comments- 创建评论GET /api/statistics?userId=xxx- 获取统计数据GET /api/search?q=xxx&page=1&page_size=8- 全文检索(每页8条)GET /api/ai_search?q=xxx&page=1&page_size=8- AI检索(每页8条)GET /api/annotation/tasks?user_id=xxx&page=1&page_size=12- 获取标注任务(每页12条)GET /api/notifications?user_id=xxx- 获取通知列表POST /api/export/user-resource- 导出用户资源GET /api/admin/dashboard/statistics?userId=xxx- 管理员面板统计POST /api/admin/log-access- 记录访问日志GET /api/admin/users?userId=xxx- 获取用户列表(仅超级管理员)POST /api/admin/auth/switch-role- 切换用户角色(仅超级管理员)POST /api/aigc/chat- AIGC聊天POST /api/aigc/sessions- 创建AIGC会话GET /api/aigc/sessions?user_id=xxx&page=1&page_size=20- 获取AIGC会话列表GET /api/aigc/sessions/{sessionId}/messages?page=1&page_size=20- 获取AIGC会话消息DELETE /api/aigc/sessions/{sessionId}- 删除AIGC会话POST /api/multimodal/search- 多模态搜索