diff --git a/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/agent/AiAgentConfigService.java b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/agent/AiAgentConfigService.java new file mode 100644 index 0000000..bfdd1f5 --- /dev/null +++ b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/agent/AiAgentConfigService.java @@ -0,0 +1,112 @@ +package org.xyzh.api.ai.agent; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.ai.TbAiAgentConfig; + + +/** + * @description 智能体配置服务接口 + * @filename AiAgentConfigService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface AiAgentConfigService { + + /** + * @description 获取智能体配置列表 + * @param status 状态(可选) + * @return ResultDomain 配置列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getAgentConfigList(Integer status); + + /** + * @description 根据ID获取智能体配置详情 + * @param configID 配置ID + * @return ResultDomain 配置详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getAgentConfigById(String configID); + + /** + * @description 创建智能体配置 + * @param config 配置信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createAgentConfig(TbAiAgentConfig config); + + /** + * @description 更新智能体配置 + * @param config 配置信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateAgentConfig(TbAiAgentConfig config); + + /** + * @description 删除智能体配置 + * @param configID 配置ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteAgentConfig(String configID); + + /** + * @description 更新智能体状态 + * @param configID 配置ID + * @param status 状态 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateAgentStatus(String configID, Integer status); + + /** + * @description 更新智能体模型配置 + * @param configID 配置ID + * @param modelName 模型名称 + * @param modelProvider 模型提供商 + * @param temperature 温度值 + * @param maxTokens 最大tokens + * @param topP Top P值 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateAgentModel(String configID, String modelName, String modelProvider, + java.math.BigDecimal temperature, Integer maxTokens, java.math.BigDecimal topP); + + /** + * @description 更新智能体系统提示词 + * @param configID 配置ID + * @param systemPrompt 系统提示词 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateAgentPrompt(String configID, String systemPrompt); + + /** + * @description 获取启用的智能体配置 + * @return ResultDomain 启用的配置列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getActiveAgentConfigs(); + + /** + * @description 根据名称搜索智能体配置 + * @param name 智能体名称 + * @return ResultDomain 搜索结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain searchAgentConfigsByName(String name); +} diff --git a/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/conversation/AiConversationService.java b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/conversation/AiConversationService.java new file mode 100644 index 0000000..306264a --- /dev/null +++ b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/conversation/AiConversationService.java @@ -0,0 +1,124 @@ +package org.xyzh.api.ai.conversation; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.ai.TbAiConversation; + +import java.util.Date; + +/** + * @description AI对话会话服务接口 + * @filename AiConversationService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface AiConversationService { + + /** + * @description 获取用户会话列表 + * @param userID 用户ID + * @param status 状态(可选) + * @return ResultDomain 会话列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserConversations(String userID, Integer status); + + /** + * @description 根据ID获取会话详情 + * @param conversationID 会话ID + * @return ResultDomain 会话详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getConversationById(String conversationID); + + /** + * @description 创建新会话 + * @param userID 用户ID + * @param title 会话标题 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createConversation(String userID, String title); + + /** + * @description 更新会话标题 + * @param conversationID 会话ID + * @param title 新标题 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateConversationTitle(String conversationID, String title); + + /** + * @description 更新会话状态 + * @param conversationID 会话ID + * @param status 状态 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateConversationStatus(String conversationID, Integer status); + + /** + * @description 结束会话 + * @param conversationID 会话ID + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain endConversation(String conversationID); + + /** + * @description 删除会话 + * @param conversationID 会话ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteConversation(String conversationID); + + /** + * @description 更新会话消息统计 + * @param conversationID 会话ID + * @param messageCount 消息数量 + * @param lastMessageTime 最后消息时间 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateConversationStats(String conversationID, Integer messageCount, Date lastMessageTime); + + /** + * @description 获取用户会话统计 + * @param userID 用户ID + * @param startDate 开始日期(可选) + * @param endDate 结束日期(可选) + * @return ResultDomain 会话统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserConversationStats(String userID, Date startDate, Date endDate); + + /** + * @description 清空用户所有会话 + * @param userID 用户ID + * @return ResultDomain 清空结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain clearUserConversations(String userID); + + /** + * @description 获取最近会话 + * @param userID 用户ID + * @param limit 限制数量 + * @return ResultDomain 最近会话列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getRecentConversations(String userID, Integer limit); +} diff --git a/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/file/AiUploadFileService.java b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/file/AiUploadFileService.java new file mode 100644 index 0000000..21c9d9a --- /dev/null +++ b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/file/AiUploadFileService.java @@ -0,0 +1,142 @@ +package org.xyzh.api.ai.file; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.ai.TbAiUploadFile; + +import java.util.List; + +/** + * @description AI文件上传服务接口 + * @filename AiUploadFileService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface AiUploadFileService { + + /** + * @description 获取用户上传文件列表 + * @param userID 用户ID + * @param conversationID 会话ID(可选) + * @param status 状态(可选) + * @return ResultDomain 文件列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserFiles(String userID, String conversationID, Integer status); + + /** + * @description 根据ID获取文件详情 + * @param fileID 文件ID + * @return ResultDomain 文件详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getFileById(String fileID); + + /** + * @description 创建文件记录 + * @param file 文件信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createFile(TbAiUploadFile file); + + /** + * @description 更新文件状态 + * @param fileID 文件ID + * @param status 状态 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateFileStatus(String fileID, Integer status); + + /** + * @description 更新文件提取文本 + * @param fileID 文件ID + * @param extractedText 提取的文本 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateFileExtractedText(String fileID, String extractedText); + + /** + * @description 删除文件 + * @param fileID 文件ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteFile(String fileID); + + /** + * @description 清空会话文件 + * @param conversationID 会话ID + * @return ResultDomain 清空结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain clearConversationFiles(String conversationID); + + /** + * @description 清空用户文件 + * @param userID 用户ID + * @return ResultDomain 清空结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain clearUserFiles(String userID); + + /** + * @description 获取文件统计 + * @param userID 用户ID + * @param conversationID 会话ID(可选) + * @return ResultDomain 文件统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getFileStatistics(String userID, String conversationID); + + /** + * @description 根据文件名搜索文件 + * @param userID 用户ID + * @param fileName 文件名 + * @return ResultDomain 搜索结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain searchFilesByName(String userID, String fileName); + + /** + * @description 根据文件类型获取文件 + * @param userID 用户ID + * @param fileType 文件类型 + * @return ResultDomain 文件列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getFilesByType(String userID, String fileType); + + /** + * @description 批量删除文件 + * @param fileIDs 文件ID列表 + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain batchDeleteFiles(List fileIDs); + + /** + * @description 检查文件是否存在 + * @param userID 用户ID + * @param fileName 文件名 + * @param filePath 文件路径 + * @return ResultDomain 是否存在 + * @author system + * @since 2025-10-15 + */ + ResultDomain checkFileExists(String userID, String fileName, String filePath); +} diff --git a/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/knowledge/AiKnowledgeService.java b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/knowledge/AiKnowledgeService.java new file mode 100644 index 0000000..e7579bd --- /dev/null +++ b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/knowledge/AiKnowledgeService.java @@ -0,0 +1,138 @@ +package org.xyzh.api.ai.knowledge; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.ai.TbAiKnowledge; + +import java.util.List; + +/** + * @description AI知识库服务接口 + * @filename AiKnowledgeService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface AiKnowledgeService { + + /** + * @description 获取知识库列表 + * @param filter 过滤条件 + * @return ResultDomain 知识库列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getKnowledgeList(TbAiKnowledge filter); + + /** + * @description 根据ID获取知识详情 + * @param knowledgeID 知识ID + * @return ResultDomain 知识详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getKnowledgeById(String knowledgeID); + + /** + * @description 创建知识 + * @param knowledge 知识信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createKnowledge(TbAiKnowledge knowledge); + + /** + * @description 更新知识 + * @param knowledge 知识信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateKnowledge(TbAiKnowledge knowledge); + + /** + * @description 删除知识 + * @param knowledgeID 知识ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteKnowledge(String knowledgeID); + + /** + * @description 更新知识状态 + * @param knowledgeID 知识ID + * @param status 状态 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateKnowledgeStatus(String knowledgeID, Integer status); + + /** + * @description 更新知识向量ID + * @param knowledgeID 知识ID + * @param vectorID 向量ID + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateKnowledgeVector(String knowledgeID, String vectorID); + + /** + * @description 搜索知识 + * @param keyword 关键词 + * @param category 分类(可选) + * @param status 状态(可选) + * @return ResultDomain 搜索结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain searchKnowledge(String keyword, String category, Integer status); + + /** + * @description 根据分类获取知识 + * @param category 分类 + * @return ResultDomain 知识列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getKnowledgeByCategory(String category); + + /** + * @description 根据标签获取知识 + * @param tag 标签 + * @return ResultDomain 知识列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getKnowledgeByTag(String tag); + + /** + * @description 向量检索知识 + * @param query 查询内容 + * @param limit 限制数量 + * @return ResultDomain 检索结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain vectorSearchKnowledge(String query, Integer limit); + + /** + * @description 批量删除知识 + * @param knowledgeIDs 知识ID列表 + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain batchDeleteKnowledge(List knowledgeIDs); + + /** + * @description 获取知识统计 + * @param category 分类(可选) + * @return ResultDomain 知识统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getKnowledgeStatistics(String category); +} diff --git a/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/message/AiMessageService.java b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/message/AiMessageService.java new file mode 100644 index 0000000..0de9127 --- /dev/null +++ b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/message/AiMessageService.java @@ -0,0 +1,137 @@ +package org.xyzh.api.ai.message; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.ai.TbAiMessage; + + +/** + * @description AI对话消息服务接口 + * @filename AiMessageService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface AiMessageService { + + /** + * @description 获取会话消息列表 + * @param conversationID 会话ID + * @param limit 限制数量(可选) + * @return ResultDomain 消息列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getConversationMessages(String conversationID, Integer limit); + + /** + * @description 根据ID获取消息详情 + * @param messageID 消息ID + * @return ResultDomain 消息详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getMessageById(String messageID); + + /** + * @description 发送用户消息 + * @param conversationID 会话ID + * @param userID 用户ID + * @param content 消息内容 + * @param fileIDs 关联文件ID(可选) + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain sendUserMessage(String conversationID, String userID, String content, String fileIDs); + + /** + * @description 发送助手消息 + * @param conversationID 会话ID + * @param userID 用户ID + * @param content 消息内容 + * @param knowledgeIDs 引用知识ID(可选) + * @param tokenCount Token数量 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain sendAssistantMessage(String conversationID, String userID, String content, String knowledgeIDs, Integer tokenCount); + + /** + * @description 发送系统消息 + * @param conversationID 会话ID + * @param content 消息内容 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain sendSystemMessage(String conversationID, String content); + + /** + * @description 更新消息内容 + * @param messageID 消息ID + * @param content 新内容 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateMessageContent(String messageID, String content); + + /** + * @description 更新消息Token数量 + * @param messageID 消息ID + * @param tokenCount Token数量 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateMessageTokens(String messageID, Integer tokenCount); + + /** + * @description 删除消息 + * @param messageID 消息ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteMessage(String messageID); + + /** + * @description 清空会话消息 + * @param conversationID 会话ID + * @return ResultDomain 清空结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain clearConversationMessages(String conversationID); + + /** + * @description 获取用户消息统计 + * @param userID 用户ID + * @param conversationID 会话ID(可选) + * @return ResultDomain 消息统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserMessageStats(String userID, String conversationID); + + /** + * @description 获取会话最后一条消息 + * @param conversationID 会话ID + * @return ResultDomain 最后消息 + * @author system + * @since 2025-10-15 + */ + ResultDomain getLastMessage(String conversationID); + + /** + * @description 搜索消息内容 + * @param userID 用户ID + * @param keyword 关键词 + * @param conversationID 会话ID(可选) + * @return ResultDomain 搜索结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain searchMessages(String userID, String keyword, String conversationID); +} diff --git a/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/statistics/AiUsageStatisticsService.java b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/statistics/AiUsageStatisticsService.java new file mode 100644 index 0000000..596c489 --- /dev/null +++ b/schoolNewsServ/api/api-ai/src/main/java/org/xyzh/api/ai/statistics/AiUsageStatisticsService.java @@ -0,0 +1,143 @@ +package org.xyzh.api.ai.statistics; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.ai.TbAiUsageStatistics; + +import java.util.Date; +import java.util.List; + +/** + * @description AI使用统计服务接口 + * @filename AiUsageStatisticsService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface AiUsageStatisticsService { + + /** + * @description 获取用户使用统计 + * @param userID 用户ID + * @param startDate 开始日期(可选) + * @param endDate 结束日期(可选) + * @return ResultDomain 统计列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserStatistics(String userID, Date startDate, Date endDate); + + /** + * @description 获取指定日期的使用统计 + * @param userID 用户ID + * @param statDate 统计日期 + * @return ResultDomain 统计信息 + * @author system + * @since 2025-10-15 + */ + ResultDomain getDailyStatistics(String userID, Date statDate); + + /** + * @description 创建或更新使用统计 + * @param statistics 统计信息 + * @return ResultDomain 创建/更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain saveStatistics(TbAiUsageStatistics statistics); + + /** + * @description 更新使用统计 + * @param userID 用户ID + * @param statDate 统计日期 + * @param conversationCount 会话数量 + * @param messageCount 消息数量 + * @param totalTokens 总Token数 + * @param fileCount 文件数量 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateStatistics(String userID, Date statDate, Integer conversationCount, + Integer messageCount, Integer totalTokens, Integer fileCount); + + /** + * @description 增加会话数量 + * @param userID 用户ID + * @param statDate 统计日期 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain incrementConversationCount(String userID, Date statDate); + + /** + * @description 增加消息数量 + * @param userID 用户ID + * @param statDate 统计日期 + * @param tokenCount Token数量 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain incrementMessageCount(String userID, Date statDate, Integer tokenCount); + + /** + * @description 增加文件数量 + * @param userID 用户ID + * @param statDate 统计日期 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain incrementFileCount(String userID, Date statDate); + + /** + * @description 获取使用排行榜 + * @param statDate 统计日期 + * @param limit 限制数量 + * @return ResultDomain 排行榜 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUsageRanking(Date statDate, Integer limit); + + /** + * @description 获取总体使用统计 + * @param startDate 开始日期 + * @param endDate 结束日期 + * @return ResultDomain 总体统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getOverallStatistics(Date startDate, Date endDate); + + /** + * @description 获取用户使用趋势 + * @param userID 用户ID + * @param days 天数 + * @return ResultDomain 趋势数据 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserUsageTrend(String userID, Integer days); + + /** + * @description 删除使用统计 + * @param statisticsID 统计ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteStatistics(String statisticsID); + + /** + * @description 获取用户Token使用统计 + * @param userID 用户ID + * @param startDate 开始日期 + * @param endDate 结束日期 + * @return ResultDomain Token统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserTokenStatistics(String userID, Date startDate, Date endDate); +} diff --git a/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/banner/BannerService.java b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/banner/BannerService.java new file mode 100644 index 0000000..b3e5a5f --- /dev/null +++ b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/banner/BannerService.java @@ -0,0 +1,99 @@ +package org.xyzh.api.news.banner; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.resource.TbBanner; + +import java.util.List; + +/** + * @description Banner服务接口 + * @filename BannerService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface BannerService { + + /** + * @description 获取Banner列表 + * @param status 状态(可选) + * @return ResultDomain Banner列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getBannerList(Integer status); + + /** + * @description 根据ID获取Banner详情 + * @param bannerID BannerID + * @return ResultDomain Banner详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getBannerById(String bannerID); + + /** + * @description 创建Banner + * @param banner Banner信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createBanner(TbBanner banner); + + /** + * @description 更新Banner + * @param banner Banner信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateBanner(TbBanner banner); + + /** + * @description 删除Banner + * @param bannerID BannerID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteBanner(String bannerID); + + /** + * @description 更新Banner状态 + * @param bannerID BannerID + * @param status 状态 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateBannerStatus(String bannerID, Integer status); + + /** + * @description 更新Banner排序 + * @param bannerID BannerID + * @param orderNum 排序号 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateBannerOrder(String bannerID, Integer orderNum); + + /** + * @description 获取启用的Banner列表(按排序号排序) + * @param limit 限制数量(可选) + * @return ResultDomain 启用的Banner列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getActiveBanners(Integer limit); + + /** + * @description 批量更新Banner排序 + * @param bannerOrders Banner排序信息(BannerID -> 排序号) + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain batchUpdateBannerOrder(java.util.Map bannerOrders); +} diff --git a/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/category/ResourceCategoryService.java b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/category/ResourceCategoryService.java new file mode 100644 index 0000000..9e50fb0 --- /dev/null +++ b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/category/ResourceCategoryService.java @@ -0,0 +1,105 @@ +package org.xyzh.api.news.category; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.resource.TbResourceCategory; + +import java.util.List; + +/** + * @description 资源分类服务接口 + * @filename ResourceCategoryService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface ResourceCategoryService { + + /** + * @description 获取所有分类列表 + * @return ResultDomain 分类列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getAllCategories(); + + /** + * @description 获取分类树形结构 + * @return ResultDomain 分类树 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCategoryTree(); + + /** + * @description 根据ID获取分类详情 + * @param categoryID 分类ID + * @return ResultDomain 分类详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCategoryById(String categoryID); + + /** + * @description 根据父ID获取子分类 + * @param parentID 父分类ID + * @return ResultDomain 子分类列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCategoriesByParent(String parentID); + + /** + * @description 创建分类 + * @param category 分类信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createCategory(TbResourceCategory category); + + /** + * @description 更新分类 + * @param category 分类信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateCategory(TbResourceCategory category); + + /** + * @description 删除分类 + * @param categoryID 分类ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteCategory(String categoryID); + + /** + * @description 更新分类排序 + * @param categoryID 分类ID + * @param orderNum 排序号 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateCategoryOrder(String categoryID, Integer orderNum); + + /** + * @description 检查分类是否有子分类 + * @param categoryID 分类ID + * @return ResultDomain 是否有子分类 + * @author system + * @since 2025-10-15 + */ + ResultDomain hasChildCategories(String categoryID); + + /** + * @description 检查分类下是否有资源 + * @param categoryID 分类ID + * @return ResultDomain 是否有资源 + * @author system + * @since 2025-10-15 + */ + ResultDomain hasResources(String categoryID); +} diff --git a/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/collection/DataCollectionService.java b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/collection/DataCollectionService.java new file mode 100644 index 0000000..397a8b5 --- /dev/null +++ b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/collection/DataCollectionService.java @@ -0,0 +1,163 @@ +package org.xyzh.api.news.collection; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.resource.TbDataCollectionConfig; +import org.xyzh.common.dto.resource.TbDataCollectionLog; + +import java.util.Date; +import java.util.List; + +/** + * @description 数据采集服务接口 + * @filename DataCollectionService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface DataCollectionService { + + // ----------------采集配置相关-------------------------------- + + /** + * @description 获取采集配置列表 + * @param status 状态(可选) + * @return ResultDomain 配置列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getConfigList(Integer status); + + /** + * @description 根据ID获取配置详情 + * @param configID 配置ID + * @return ResultDomain 配置详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getConfigById(String configID); + + /** + * @description 创建采集配置 + * @param config 配置信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createConfig(TbDataCollectionConfig config); + + /** + * @description 更新采集配置 + * @param config 配置信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateConfig(TbDataCollectionConfig config); + + /** + * @description 删除采集配置 + * @param configID 配置ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteConfig(String configID); + + /** + * @description 更新配置状态 + * @param configID 配置ID + * @param status 状态 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateConfigStatus(String configID, Integer status); + + /** + * @description 更新最后采集时间 + * @param configID 配置ID + * @param lastCollectTime 最后采集时间 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateLastCollectTime(String configID, Date lastCollectTime); + + // ----------------采集日志相关-------------------------------- + + /** + * @description 获取采集日志列表 + * @param configID 配置ID(可选) + * @param startDate 开始日期(可选) + * @param endDate 结束日期(可选) + * @return ResultDomain 日志列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getLogList(String configID, Date startDate, Date endDate); + + /** + * @description 根据ID获取日志详情 + * @param logID 日志ID + * @return ResultDomain 日志详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getLogById(String logID); + + /** + * @description 创建采集日志 + * @param log 日志信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createLog(TbDataCollectionLog log); + + /** + * @description 获取配置的采集统计 + * @param configID 配置ID + * @return ResultDomain 采集统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getConfigStatistics(String configID); + + // ----------------采集操作相关-------------------------------- + + /** + * @description 执行数据采集 + * @param configID 配置ID + * @return ResultDomain 采集结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain executeCollection(String configID); + + /** + * @description 批量执行数据采集 + * @param configIDs 配置ID列表 + * @return ResultDomain 采集结果列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain batchExecuteCollection(List configIDs); + + /** + * @description 停止采集任务 + * @param configID 配置ID + * @return ResultDomain 停止结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain stopCollection(String configID); + + /** + * @description 获取采集任务状态 + * @param configID 配置ID + * @return ResultDomain 任务状态 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCollectionStatus(String configID); +} diff --git a/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/recommend/ResourceRecommendService.java b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/recommend/ResourceRecommendService.java new file mode 100644 index 0000000..fc43b6b --- /dev/null +++ b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/recommend/ResourceRecommendService.java @@ -0,0 +1,99 @@ +package org.xyzh.api.news.recommend; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.resource.TbResourceRecommend; + +import java.util.List; + +/** + * @description 资源推荐服务接口 + * @filename ResourceRecommendService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface ResourceRecommendService { + + /** + * @description 获取推荐资源列表 + * @return ResultDomain 推荐资源列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getRecommendList(); + + /** + * @description 添加推荐资源 + * @param recommend 推荐信息 + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addRecommend(TbResourceRecommend recommend); + + /** + * @description 移除推荐资源 + * @param resourceID 资源ID + * @return ResultDomain 移除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain removeRecommend(String resourceID); + + /** + * @description 更新推荐排序 + * @param resourceID 资源ID + * @param orderNum 排序号 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateRecommendOrder(String resourceID, Integer orderNum); + + /** + * @description 更新推荐理由 + * @param resourceID 资源ID + * @param reason 推荐理由 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateRecommendReason(String resourceID, String reason); + + /** + * @description 检查资源是否已推荐 + * @param resourceID 资源ID + * @return ResultDomain 是否已推荐 + * @author system + * @since 2025-10-15 + */ + ResultDomain isResourceRecommended(String resourceID); + + /** + * @description 批量添加推荐资源 + * @param resourceIDs 资源ID列表 + * @param reason 推荐理由 + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain batchAddRecommends(List resourceIDs, String reason); + + /** + * @description 批量移除推荐资源 + * @param resourceIDs 资源ID列表 + * @return ResultDomain 移除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain batchRemoveRecommends(List resourceIDs); + + /** + * @description 获取推荐资源详情 + * @param resourceID 资源ID + * @return ResultDomain 推荐详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getRecommendDetail(String resourceID); +} diff --git a/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/resource/ResourceService.java b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/resource/ResourceService.java new file mode 100644 index 0000000..7968adf --- /dev/null +++ b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/resource/ResourceService.java @@ -0,0 +1,165 @@ +package org.xyzh.api.news.resource; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.resource.TbResource; + +import java.util.List; + +/** + * @description 资源服务接口 + * @filename ResourceService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface ResourceService { + + /** + * @description 获取资源列表 + * @param filter 过滤条件 + * @return ResultDomain 资源列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getResourceList(TbResource filter); + + /** + * @description 根据ID获取资源详情 + * @param resourceID 资源ID + * @return ResultDomain 资源详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getResourceById(String resourceID); + + /** + * @description 创建资源 + * @param resource 资源信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createResource(TbResource resource); + + /** + * @description 更新资源 + * @param resource 资源信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateResource(TbResource resource); + + /** + * @description 删除资源 + * @param resourceID 资源ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteResource(String resourceID); + + /** + * @description 更新资源状态 + * @param resourceID 资源ID + * @param status 状态 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateResourceStatus(String resourceID, Integer status); + + /** + * @description 发布资源 + * @param resourceID 资源ID + * @return ResultDomain 发布结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain publishResource(String resourceID); + + /** + * @description 下架资源 + * @param resourceID 资源ID + * @return ResultDomain 下架结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain unpublishResource(String resourceID); + + /** + * @description 增加浏览次数 + * @param resourceID 资源ID + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain incrementViewCount(String resourceID); + + /** + * @description 增加点赞次数 + * @param resourceID 资源ID + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain incrementLikeCount(String resourceID); + + /** + * @description 增加收藏次数 + * @param resourceID 资源ID + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain incrementCollectCount(String resourceID); + + /** + * @description 设置资源推荐 + * @param resourceID 资源ID + * @param isRecommend 是否推荐 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain setResourceRecommend(String resourceID, Boolean isRecommend); + + /** + * @description 设置资源轮播 + * @param resourceID 资源ID + * @param isBanner 是否轮播 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain setResourceBanner(String resourceID, Boolean isBanner); + + /** + * @description 获取推荐资源列表 + * @param limit 限制数量 + * @return ResultDomain 推荐资源列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getRecommendResources(Integer limit); + + /** + * @description 获取轮播资源列表 + * @param limit 限制数量 + * @return ResultDomain 轮播资源列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getBannerResources(Integer limit); + + /** + * @description 搜索资源 + * @param keyword 关键词 + * @param categoryID 分类ID(可选) + * @param status 状态(可选) + * @return ResultDomain 搜索结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain searchResources(String keyword, String categoryID, Integer status); +} diff --git a/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/tag/TagService.java b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/tag/TagService.java new file mode 100644 index 0000000..c06d21d --- /dev/null +++ b/schoolNewsServ/api/api-news/src/main/java/org/xyzh/api/news/tag/TagService.java @@ -0,0 +1,129 @@ +package org.xyzh.api.news.tag; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.resource.TbTag; +import org.xyzh.common.dto.resource.TbResourceTag; + +import java.util.List; + +/** + * @description 标签服务接口 + * @filename TagService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface TagService { + + /** + * @description 获取所有标签 + * @return ResultDomain 标签列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getAllTags(); + + /** + * @description 根据ID获取标签详情 + * @param tagID 标签ID + * @return ResultDomain 标签详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getTagById(String tagID); + + /** + * @description 创建标签 + * @param tag 标签信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createTag(TbTag tag); + + /** + * @description 更新标签 + * @param tag 标签信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateTag(TbTag tag); + + /** + * @description 删除标签 + * @param tagID 标签ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteTag(String tagID); + + /** + * @description 根据名称搜索标签 + * @param name 标签名称 + * @return ResultDomain 标签列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain searchTagsByName(String name); + + // ----------------资源标签关联相关-------------------------------- + + /** + * @description 获取资源的标签 + * @param resourceID 资源ID + * @return ResultDomain 标签列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getResourceTags(String resourceID); + + /** + * @description 为资源添加标签 + * @param resourceID 资源ID + * @param tagID 标签ID + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addResourceTag(String resourceID, String tagID); + + /** + * @description 批量为资源添加标签 + * @param resourceID 资源ID + * @param tagIDs 标签ID列表 + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain batchAddResourceTags(String resourceID, List tagIDs); + + /** + * @description 移除资源标签 + * @param resourceID 资源ID + * @param tagID 标签ID + * @return ResultDomain 移除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain removeResourceTag(String resourceID, String tagID); + + /** + * @description 清空资源的所有标签 + * @param resourceID 资源ID + * @return ResultDomain 清空结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain clearResourceTags(String resourceID); + + /** + * @description 根据标签获取资源列表 + * @param tagID 标签ID + * @return ResultDomain 资源ID列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getResourcesByTag(String tagID); +} diff --git a/schoolNewsServ/api/api-study/src/main/java/org/xyzh/Main.java b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/Main.java deleted file mode 100644 index f660b7a..0000000 --- a/schoolNewsServ/api/api-study/src/main/java/org/xyzh/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.xyzh; - -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/course/CourseService.java b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/course/CourseService.java new file mode 100644 index 0000000..a7cca3a --- /dev/null +++ b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/course/CourseService.java @@ -0,0 +1,147 @@ +package org.xyzh.api.study.course; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.study.TbCourse; +import org.xyzh.common.dto.study.TbCourseChapter; + +import java.util.List; + +/** + * @description 课程服务接口 + * @filename CourseService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface CourseService { + + /** + * @description 获取课程列表 + * @param filter 过滤条件 + * @return ResultDomain 课程列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCourseList(TbCourse filter); + + /** + * @description 根据ID获取课程详情 + * @param courseID 课程ID + * @return ResultDomain 课程详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCourseById(String courseID); + + /** + * @description 创建课程 + * @param course 课程信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createCourse(TbCourse course); + + /** + * @description 更新课程 + * @param course 课程信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateCourse(TbCourse course); + + /** + * @description 删除课程 + * @param courseID 课程ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteCourse(String courseID); + + /** + * @description 更新课程状态 + * @param courseID 课程ID + * @param status 状态 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateCourseStatus(String courseID, Integer status); + + /** + * @description 增加课程浏览次数 + * @param courseID 课程ID + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain incrementViewCount(String courseID); + + /** + * @description 增加课程学习人数 + * @param courseID 课程ID + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain incrementLearnCount(String courseID); + + // ----------------课程章节相关-------------------------------- + + /** + * @description 获取课程章节列表 + * @param courseID 课程ID + * @return ResultDomain 章节列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCourseChapters(String courseID); + + /** + * @description 根据ID获取章节详情 + * @param chapterID 章节ID + * @return ResultDomain 章节详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getChapterById(String chapterID); + + /** + * @description 创建课程章节 + * @param chapter 章节信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createChapter(TbCourseChapter chapter); + + /** + * @description 更新课程章节 + * @param chapter 章节信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateChapter(TbCourseChapter chapter); + + /** + * @description 删除课程章节 + * @param chapterID 章节ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteChapter(String chapterID); + + /** + * @description 更新章节排序 + * @param chapterID 章节ID + * @param orderNum 排序号 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateChapterOrder(String chapterID, Integer orderNum); +} diff --git a/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/record/LearningRecordService.java b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/record/LearningRecordService.java new file mode 100644 index 0000000..9d6b37c --- /dev/null +++ b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/record/LearningRecordService.java @@ -0,0 +1,111 @@ +package org.xyzh.api.study.record; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.study.TbLearningRecord; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @description 学习记录服务接口 + * @filename LearningRecordService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface LearningRecordService { + + /** + * @description 获取用户学习记录 + * @param userID 用户ID + * @param resourceType 资源类型(可选) + * @param taskID 任务ID(可选) + * @return ResultDomain 学习记录列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserLearningRecords(String userID, Integer resourceType, String taskID); + + /** + * @description 获取资源学习记录 + * @param resourceType 资源类型 + * @param resourceID 资源ID + * @return ResultDomain 学习记录列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getResourceLearningRecords(Integer resourceType, String resourceID); + + /** + * @description 创建或更新学习记录 + * @param learningRecord 学习记录 + * @return ResultDomain 创建/更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain saveLearningRecord(TbLearningRecord learningRecord); + + /** + * @description 更新学习进度 + * @param userID 用户ID + * @param resourceType 资源类型 + * @param resourceID 资源ID + * @param progress 进度 + * @param duration 学习时长(秒) + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateLearningProgress(String userID, Integer resourceType, String resourceID, BigDecimal progress, Integer duration); + + /** + * @description 标记学习完成 + * @param userID 用户ID + * @param resourceType 资源类型 + * @param resourceID 资源ID + * @param taskID 任务ID(可选) + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain markLearningComplete(String userID, Integer resourceType, String resourceID, String taskID); + + /** + * @description 获取用户学习统计 + * @param userID 用户ID + * @param resourceType 资源类型(可选) + * @return ResultDomain 学习统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserLearningStatistics(String userID, Integer resourceType); + + /** + * @description 获取用户学习进度 + * @param userID 用户ID + * @param resourceType 资源类型 + * @param resourceID 资源ID + * @return ResultDomain 学习进度 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserLearningProgress(String userID, Integer resourceType, String resourceID); + + /** + * @description 删除学习记录 + * @param recordID 记录ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteLearningRecord(String recordID); + + /** + * @description 获取任务学习进度统计 + * @param taskID 任务ID + * @return ResultDomain 学习进度统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getTaskLearningStatistics(String taskID); +} diff --git a/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/statistics/LearningStatisticsService.java b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/statistics/LearningStatisticsService.java new file mode 100644 index 0000000..aa02a1f --- /dev/null +++ b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/statistics/LearningStatisticsService.java @@ -0,0 +1,101 @@ +package org.xyzh.api.study.statistics; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.study.TbLearningStatistics; + +import java.util.Date; +import java.util.List; + +/** + * @description 学习统计服务接口 + * @filename LearningStatisticsService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface LearningStatisticsService { + + /** + * @description 获取用户学习统计 + * @param userID 用户ID + * @param startDate 开始日期(可选) + * @param endDate 结束日期(可选) + * @return ResultDomain 学习统计列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserLearningStatistics(String userID, Date startDate, Date endDate); + + /** + * @description 获取指定日期的学习统计 + * @param userID 用户ID + * @param statDate 统计日期 + * @return ResultDomain 学习统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getDailyLearningStatistics(String userID, Date statDate); + + /** + * @description 创建或更新学习统计 + * @param statistics 学习统计 + * @return ResultDomain 创建/更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain saveLearningStatistics(TbLearningStatistics statistics); + + /** + * @description 更新学习统计 + * @param userID 用户ID + * @param statDate 统计日期 + * @param totalDuration 总学习时长 + * @param resourceCount 学习资源数量 + * @param courseCount 学习课程数量 + * @param completeCount 完成数量 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateLearningStatistics(String userID, Date statDate, Integer totalDuration, Integer resourceCount, Integer courseCount, Integer completeCount); + + /** + * @description 获取学习排行榜 + * @param statDate 统计日期 + * @param limit 限制数量 + * @return ResultDomain 排行榜 + * @author system + * @since 2025-10-15 + */ + ResultDomain getLearningRanking(Date statDate, Integer limit); + + /** + * @description 获取部门学习统计 + * @param deptID 部门ID + * @param startDate 开始日期 + * @param endDate 结束日期 + * @return ResultDomain 部门学习统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getDeptLearningStatistics(String deptID, Date startDate, Date endDate); + + /** + * @description 获取总体学习统计 + * @param startDate 开始日期 + * @param endDate 结束日期 + * @return ResultDomain 总体学习统计 + * @author system + * @since 2025-10-15 + */ + ResultDomain getOverallLearningStatistics(Date startDate, Date endDate); + + /** + * @description 删除学习统计 + * @param statisticsID 统计ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteLearningStatistics(String statisticsID); +} diff --git a/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/tag/CourseTagService.java b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/tag/CourseTagService.java new file mode 100644 index 0000000..5b57afc --- /dev/null +++ b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/tag/CourseTagService.java @@ -0,0 +1,98 @@ +package org.xyzh.api.study.tag; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.study.TbCourseTag; + +import java.util.List; + +/** + * @description 课程标签服务接口 + * @filename CourseTagService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface CourseTagService { + + /** + * @description 获取所有课程标签 + * @return ResultDomain 标签列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getAllCourseTags(); + + /** + * @description 根据ID获取标签详情 + * @param tagID 标签ID + * @return ResultDomain 标签详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getTagById(String tagID); + + /** + * @description 创建课程标签 + * @param courseTag 标签信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createCourseTag(TbCourseTag courseTag); + + /** + * @description 更新课程标签 + * @param courseTag 标签信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateCourseTag(TbCourseTag courseTag); + + /** + * @description 删除课程标签 + * @param tagID 标签ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteCourseTag(String tagID); + + /** + * @description 获取课程的标签 + * @param courseID 课程ID + * @return ResultDomain 标签列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCourseTags(String courseID); + + /** + * @description 为课程添加标签 + * @param courseID 课程ID + * @param tagID 标签ID + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addCourseTag(String courseID, String tagID); + + /** + * @description 移除课程标签 + * @param courseID 课程ID + * @param tagID 标签ID + * @return ResultDomain 移除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain removeCourseTag(String courseID, String tagID); + + /** + * @description 根据标签获取课程列表 + * @param tagID 标签ID + * @return ResultDomain 课程ID列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCoursesByTag(String tagID); +} diff --git a/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/task/LearningTaskService.java b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/task/LearningTaskService.java new file mode 100644 index 0000000..136ae2d --- /dev/null +++ b/schoolNewsServ/api/api-study/src/main/java/org/xyzh/api/study/task/LearningTaskService.java @@ -0,0 +1,187 @@ +package org.xyzh.api.study.task; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.study.TbLearningTask; +import org.xyzh.common.dto.study.TbTaskUser; +import org.xyzh.common.dto.study.TbTaskCourse; +import org.xyzh.common.dto.study.TbTaskResource; + +import java.util.List; + +/** + * @description 学习任务服务接口 + * @filename LearningTaskService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface LearningTaskService { + + /** + * @description 获取学习任务列表 + * @param filter 过滤条件 + * @return ResultDomain 任务列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getTaskList(TbLearningTask filter); + + /** + * @description 根据ID获取任务详情 + * @param taskID 任务ID + * @return ResultDomain 任务详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getTaskById(String taskID); + + /** + * @description 创建学习任务 + * @param task 任务信息 + * @return ResultDomain 创建结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain createTask(TbLearningTask task); + + /** + * @description 更新学习任务 + * @param task 任务信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateTask(TbLearningTask task); + + /** + * @description 删除学习任务 + * @param taskID 任务ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteTask(String taskID); + + /** + * @description 更新任务状态 + * @param taskID 任务ID + * @param status 状态 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateTaskStatus(String taskID, Integer status); + + // ----------------任务用户相关-------------------------------- + + /** + * @description 获取任务用户列表 + * @param taskID 任务ID + * @return ResultDomain 用户列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getTaskUsers(String taskID); + + /** + * @description 添加任务用户 + * @param taskUser 任务用户信息 + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addTaskUser(TbTaskUser taskUser); + + /** + * @description 批量添加任务用户 + * @param taskID 任务ID + * @param userIDs 用户ID列表 + * @param deptID 部门ID + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain batchAddTaskUsers(String taskID, List userIDs, String deptID); + + /** + * @description 移除任务用户 + * @param taskID 任务ID + * @param userID 用户ID + * @return ResultDomain 移除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain removeTaskUser(String taskID, String userID); + + /** + * @description 更新任务用户状态 + * @param taskID 任务ID + * @param userID 用户ID + * @param status 状态 + * @param progress 进度 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateTaskUserStatus(String taskID, String userID, Integer status, java.math.BigDecimal progress); + + // ----------------任务课程相关-------------------------------- + + /** + * @description 获取任务课程列表 + * @param taskID 任务ID + * @return ResultDomain 课程列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getTaskCourses(String taskID); + + /** + * @description 添加任务课程 + * @param taskCourse 任务课程信息 + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addTaskCourse(TbTaskCourse taskCourse); + + /** + * @description 移除任务课程 + * @param taskID 任务ID + * @param courseID 课程ID + * @return ResultDomain 移除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain removeTaskCourse(String taskID, String courseID); + + // ----------------任务资源相关-------------------------------- + + /** + * @description 获取任务资源列表 + * @param taskID 任务ID + * @return ResultDomain 资源列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getTaskResources(String taskID); + + /** + * @description 添加任务资源 + * @param taskResource 任务资源信息 + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addTaskResource(TbTaskResource taskResource); + + /** + * @description 移除任务资源 + * @param taskID 任务ID + * @param resourceID 资源ID + * @return ResultDomain 移除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain removeTaskResource(String taskID, String resourceID); +} diff --git a/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/achievement/UserAchievementService.java b/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/achievement/UserAchievementService.java new file mode 100644 index 0000000..389847e --- /dev/null +++ b/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/achievement/UserAchievementService.java @@ -0,0 +1,76 @@ +package org.xyzh.api.usercenter.achievement; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.usercenter.TbAchievement; +import org.xyzh.common.dto.usercenter.TbUserAchievement; + +import java.util.List; + +/** + * @description 用户成就服务接口 + * @filename UserAchievementService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface UserAchievementService { + + /** + * @description 获取所有成就列表 + * @param type 成就类型(可选) + * @param level 成就等级(可选) + * @return ResultDomain 成就列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getAllAchievements(Integer type, Integer level); + + /** + * @description 获取用户已获得的成就 + * @param userID 用户ID + * @param type 成就类型(可选) + * @return ResultDomain 用户成就列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserAchievements(String userID, Integer type); + + /** + * @description 检查用户是否已获得成就 + * @param userID 用户ID + * @param achievementID 成就ID + * @return ResultDomain 是否已获得 + * @author system + * @since 2025-10-15 + */ + ResultDomain hasAchievement(String userID, String achievementID); + + /** + * @description 授予用户成就 + * @param userID 用户ID + * @param achievementID 成就ID + * @return ResultDomain 授予结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain grantAchievement(String userID, String achievementID); + + /** + * @description 获取成就详情 + * @param achievementID 成就ID + * @return ResultDomain 成就详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getAchievementDetail(String achievementID); + + /** + * @description 检查用户是否满足成就条件 + * @param userID 用户ID + * @param achievementID 成就ID + * @return ResultDomain 是否满足条件 + * @author system + * @since 2025-10-15 + */ + ResultDomain checkAchievementCondition(String userID, String achievementID); +} diff --git a/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/browse/UserBrowseRecordService.java b/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/browse/UserBrowseRecordService.java new file mode 100644 index 0000000..c5a6750 --- /dev/null +++ b/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/browse/UserBrowseRecordService.java @@ -0,0 +1,65 @@ +package org.xyzh.api.usercenter.browse; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.usercenter.TbUserBrowseRecord; + +import java.util.List; + +/** + * @description 用户浏览记录服务接口 + * @filename UserBrowseRecordService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface UserBrowseRecordService { + + /** + * @description 添加浏览记录 + * @param browseRecord 浏览记录 + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addBrowseRecord(TbUserBrowseRecord browseRecord); + + /** + * @description 获取用户浏览记录 + * @param userID 用户ID + * @param browseType 浏览类型(可选) + * @param limit 限制数量(可选) + * @return ResultDomain 浏览记录列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserBrowseRecords(String userID, Integer browseType, Integer limit); + + /** + * @description 删除浏览记录 + * @param recordID 记录ID + * @return ResultDomain 删除结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain deleteBrowseRecord(String recordID); + + /** + * @description 清空用户浏览记录 + * @param userID 用户ID + * @param browseType 浏览类型(可选) + * @return ResultDomain 清空结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain clearUserBrowseRecords(String userID, Integer browseType); + + /** + * @description 获取浏览统计 + * @param userID 用户ID + * @param browseType 浏览类型(可选) + * @return ResultDomain 浏览次数 + * @author system + * @since 2025-10-15 + */ + ResultDomain getBrowseCount(String userID, Integer browseType); +} diff --git a/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/collection/UserCollectionService.java b/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/collection/UserCollectionService.java new file mode 100644 index 0000000..8fe31f1 --- /dev/null +++ b/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/collection/UserCollectionService.java @@ -0,0 +1,68 @@ +package org.xyzh.api.usercenter.collection; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.usercenter.TbUserCollection; + +import java.util.List; + +/** + * @description 用户收藏服务接口 + * @filename UserCollectionService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface UserCollectionService { + + /** + * @description 添加收藏 + * @param userCollection 收藏信息 + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addCollection(TbUserCollection userCollection); + + /** + * @description 取消收藏 + * @param userID 用户ID + * @param collectionType 收藏类型 + * @param collectionID 收藏对象ID + * @return ResultDomain 取消结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain removeCollection(String userID, Integer collectionType, String collectionID); + + /** + * @description 检查是否已收藏 + * @param userID 用户ID + * @param collectionType 收藏类型 + * @param collectionID 收藏对象ID + * @return ResultDomain 是否已收藏 + * @author system + * @since 2025-10-15 + */ + ResultDomain isCollected(String userID, Integer collectionType, String collectionID); + + /** + * @description 获取用户收藏列表 + * @param userID 用户ID + * @param collectionType 收藏类型(可选) + * @return ResultDomain 收藏列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserCollections(String userID, Integer collectionType); + + /** + * @description 获取收藏详情 + * @param userID 用户ID + * @param collectionType 收藏类型 + * @param collectionID 收藏对象ID + * @return ResultDomain 收藏详情 + * @author system + * @since 2025-10-15 + */ + ResultDomain getCollectionDetail(String userID, Integer collectionType, String collectionID); +} diff --git a/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/points/UserPointsService.java b/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/points/UserPointsService.java new file mode 100644 index 0000000..19aedf6 --- /dev/null +++ b/schoolNewsServ/api/api-usercenter/src/main/java/org/xyzh/api/usercenter/points/UserPointsService.java @@ -0,0 +1,81 @@ +package org.xyzh.api.usercenter.points; + +import org.xyzh.common.core.domain.ResultDomain; +import org.xyzh.common.dto.usercenter.TbUserPoints; +import org.xyzh.common.dto.usercenter.TbPointsRecord; + +import java.util.List; + +/** + * @description 用户积分服务接口 + * @filename UserPointsService.java + * @author system + * @copyright xyzh + * @since 2025-10-15 + */ +public interface UserPointsService { + + /** + * @description 获取用户积分信息 + * @param userID 用户ID + * @return ResultDomain 用户积分信息 + * @author system + * @since 2025-10-15 + */ + ResultDomain getUserPoints(String userID); + + /** + * @description 更新用户积分 + * @param userPoints 用户积分信息 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain updateUserPoints(TbUserPoints userPoints); + + /** + * @description 增加用户积分 + * @param userID 用户ID + * @param points 积分数量 + * @param sourceType 来源类型 + * @param sourceID 来源ID + * @param description 说明 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addUserPoints(String userID, Integer points, Integer sourceType, String sourceID, String description); + + /** + * @description 消费用户积分 + * @param userID 用户ID + * @param points 积分数量 + * @param sourceType 来源类型 + * @param sourceID 来源ID + * @param description 说明 + * @return ResultDomain 更新结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain consumeUserPoints(String userID, Integer points, Integer sourceType, String sourceID, String description); + + /** + * @description 获取用户积分记录 + * @param userID 用户ID + * @param type 类型(1获得 2消费) + * @param sourceType 来源类型 + * @return ResultDomain 积分记录列表 + * @author system + * @since 2025-10-15 + */ + ResultDomain getPointsRecords(String userID, Integer type, Integer sourceType); + + /** + * @description 添加积分记录 + * @param pointsRecord 积分记录 + * @return ResultDomain 添加结果 + * @author system + * @since 2025-10-15 + */ + ResultDomain addPointsRecord(TbPointsRecord pointsRecord); +} \ No newline at end of file