消息模块、爬虫

This commit is contained in:
2025-11-13 19:00:27 +08:00
parent 2982d53800
commit e20a7755f8
85 changed files with 8637 additions and 201 deletions

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.xyzh</groupId>
<artifactId>api</artifactId>
<version>1.0.0</version>
</parent>
<groupId>org.xyzh</groupId>
<artifactId>api-message</artifactId>
<version>1.0.0</version>
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.xyzh</groupId>
<artifactId>common-core</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.xyzh</groupId>
<artifactId>common-dto</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,207 @@
package org.xyzh.api.message;
import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.core.page.PageParam;
import org.xyzh.common.dto.message.*;
import java.util.List;
import java.util.Map;
/**
* 消息服务接口
*
* @description 消息通知模块的服务接口定义
* @filename MessageService.java
* @author Claude
* @copyright xyzh
* @since 2025-11-13
*/
public interface MessageService {
// ================== 消息管理 ==================
/**
* 创建消息
*
* @param message 消息对象
* @return ResultDomain<TbSysMessage> 创建结果
* @author Claude
* @since 2025-11-13
*/
ResultDomain<TbSysMessage> createMessage(TbSysMessage message);
/**
* 更新消息(仅允许更新草稿状态的消息)
*
* @param message 消息对象
* @return ResultDomain<TbSysMessage> 更新结果
* @author Claude
* @since 2025-11-13
*/
ResultDomain<TbSysMessage> updateMessage(TbSysMessage message);
/**
* 删除消息(逻辑删除)
*
* @param messageID 消息ID
* @return ResultDomain<TbSysMessage> 删除结果
* @author Claude
* @since 2025-11-13
*/
ResultDomain<TbSysMessage> deleteMessage(String messageID);
/**
* 根据ID查询消息详情
*
* @param messageID 消息ID
* @return ResultDomain<MessageVO> 消息详情
* @author Claude
* @since 2025-11-13
*/
ResultDomain<MessageVO> getMessageById(String messageID);
/**
* 分页查询消息列表(管理端)
*
* @param filter 过滤条件
* @param pageParam 分页参数
* @return ResultDomain<MessageVO> 消息列表
* @author Claude
* @since 2025-11-13
*/
ResultDomain<MessageVO> getMessagePage(TbSysMessage filter, PageParam pageParam);
// ================== 消息发送 ==================
/**
* 发送消息(立即发送或定时发送)
*
* @param messageID 消息ID
* @return ResultDomain<TbSysMessage> 发送结果
* @author Claude
* @since 2025-11-13
*/
ResultDomain<TbSysMessage> sendMessage(String messageID);
/**
* 立即发送(将定时消息改为立即发送)
*
* @param messageID 消息ID
* @return ResultDomain<TbSysMessage> 发送结果
* @author Claude
* @since 2025-11-13
*/
ResultDomain<TbSysMessage> sendNow(String messageID);
/**
* 取消定时消息
*
* @param messageID 消息ID
* @return ResultDomain<TbSysMessage> 取消结果
* @author Claude
* @since 2025-11-13
*/
ResultDomain<TbSysMessage> cancelMessage(String messageID);
/**
* 修改定时发送时间
*
* @param messageID 消息ID
* @param scheduledTime 新的发送时间
* @return ResultDomain<TbSysMessage> 修改结果
* @author Claude
* @since 2025-11-13
*/
ResultDomain<TbSysMessage> rescheduleMessage(String messageID, java.util.Date scheduledTime);
/**
* 重试失败消息
*
* @param messageID 消息ID
* @return ResultDomain<TbSysMessage> 重试结果
* @author Claude
* @since 2025-11-13
*/
ResultDomain<TbSysMessage> retryMessage(String messageID);
// ================== 用户消息 ==================
/**
* 分页查询我的消息列表(用户端)
*
* @param filter 过滤条件
* @param pageParam 分页参数
* @return ResultDomain<MessageUserVO> 我的消息列表
* @author Claude
* @since 2025-11-13
*/
ResultDomain<MessageUserVO> getMyMessagesPage(MessageUserVO filter, PageParam pageParam);
/**
* 查询我的消息详情(用户端)
*
* @param messageID 消息ID
* @return ResultDomain<MessageUserVO> 消息详情
* @author Claude
* @since 2025-11-13
*/
ResultDomain<MessageUserVO> getMyMessageDetail(String messageID);
/**
* 标记消息为已读
*
* @param messageID 消息ID
* @return ResultDomain<TbSysMessageUser> 标记结果
* @author Claude
* @since 2025-11-13
*/
ResultDomain<TbSysMessageUser> markAsRead(String messageID);
/**
* 批量标记消息为已读
*
* @param messageIDs 消息ID列表
* @return ResultDomain<Integer> 标记成功的数量
* @author Claude
* @since 2025-11-13
*/
ResultDomain<Integer> batchMarkAsRead(List<String> messageIDs);
/**
* 获取未读消息数量
*
* @return ResultDomain<Integer> 未读消息数量
* @author Claude
* @since 2025-11-13
*/
ResultDomain<Integer> getUnreadCount();
// ================== 辅助接口 ==================
/**
* 获取可选的部门树(当前部门及子部门)
*
* @return ResultDomain<Map> 部门树数据
* @author Claude
* @since 2025-11-13
*/
ResultDomain<Map<String, Object>> getTargetDepts();
/**
* 获取可选的角色列表(当前部门及子部门的角色)
*
* @return ResultDomain<Map> 角色列表数据
* @author Claude
* @since 2025-11-13
*/
ResultDomain<Map<String, Object>> getTargetRoles();
/**
* 获取可选的用户列表(当前部门及子部门的用户)
*
* @return ResultDomain<Map> 用户列表数据
* @author Claude
* @since 2025-11-13
*/
ResultDomain<Map<String, Object>> getTargetUsers();
}