日期: 2026-04-02 作者: AI Assistant 状态: 待审核
完善现有的消息管理模块,增加消息发送测试功能,增强消息监控能力,方便管理员测试消息发送配置和监控消息发送状态。
当前消息管理模块存在以下问题:
消息发送测试功能:
消息监控功能:
采用职责分离的设计方案,创建独立的消息管理页面:
页面划分:
/system/messageConfig/index - 消息配置页面(保持不变)
/message/manage - 新建消息管理页面(管理员专用)
/message/message-list - 用户消息页面(保持不变)
职责划分:
/message/manage上半部分:消息发送测试面板
包含以下字段:
下半部分:消息监控列表
搜索筛选:
消息列表表格列:
消息详情弹窗:
创建 MessageManageController,路径:/api/message/manage
1. 查询所有消息列表
POST /api/message/manage/page?pageNum=1&pageSize=10
请求参数:MessageManageQueryDTO
{
"type": "SYSTEM/SMS/EMAIL/CUSTOM",
"channel": "WEB/SMS/EMAIL/PUSH",
"status": "1/2", // 1-成功,2-失败
"startTime": "2024-01-01",
"endTime": "2024-12-31",
"keyword": ""
}
响应:IPage<MessageManageVO>
{
"records": [...],
"total": 100
}
2. 查询消息详细信息
GET /api/message/manage/{messageId}/detail
响应:MessageDetailVO
{
"message": SysMessage,
"sendRecord": SysMessageSendRecord,
"receivers": List<ReceiverVO>
}
3. 发送测试消息(复用现有接口)
POST /api/message/send
(已存在,无需新增)
请求参数:MessageSendRequestDTO
响应:SysMessage
MessageManageQueryDTO
public class MessageManageQueryDTO {
private String type; // 消息类型
private String channel; // 发送渠道
private Integer status; // 发送状态:1-成功,2-失败
private String startTime; // 开始时间
private String endTime; // 结束时间
private String keyword; // 关键词
}
MessageManageVO
public class MessageManageVO {
private Long id;
private String title;
private String type;
private String channel;
private Integer status; // 发送状态
private Integer receiverCount; // 接收人总数
private Integer readCount; // 已读数
private Integer unreadCount; // 未读数
private LocalDateTime createTime; // 发送时间
private String senderName; // 发送人姓名
}
MessageDetailVO
public class MessageDetailVO {
private SysMessage message; // 消息基础信息
private SysMessageSendRecord sendRecord; // 发送记录
private List<ReceiverVO> receivers; // 接收人列表
}
ReceiverVO
public class ReceiverVO {
private Long userId;
private String userName; // 用户名
private String orgName; // 组织名
private Integer readFlag; // 阅读状态:0-未读,1-已读
private LocalDateTime readTime; // 阅读时间
}
/api/message/send 接口MessageService.send() 方法:
/api/message/manage/page 接口MessageManageService.pageMessages() 方法:
/api/message/manage/{messageId}/detail 接口MessageManageService.getMessageDetail() 方法:
/api/message/manage/* 接口需要管理员权限/api/message/send 接口需要管理员权限(测试功能)/api/message/* 其他接口保持现有权限(用户可查看自己的消息)现有数据表已满足需求,无需新增表:
sys_message - 消息主表
sys_message_send_record - 发送记录表
sys_message_receiver - 接收人表
创建 /message/manage 页面
添加前端路由配置
在 message.js 中新增 API 调用方法
创建 MessageManageController
创建 Service 实现:
MessageManageService 接口MessageManageServiceImpl 实现类
创建 DTO 和 VO 类:
实现查询逻辑:
配置权限控制
大量接收人时,查询接收人列表可能性能较慢
权限配置需要谨慎,避免普通用户访问管理功能
前端文件:
forge-admin-ui/src/views/message/manage.vue (新建)forge-admin-ui/src/api/message.js (修改)后端文件:
forge-plugin-message/controller/MessageManageController.java (新建)forge-plugin-message/service/MessageManageService.java (新建)forge-plugin-message/service/impl/MessageManageServiceImpl.java (新建)forge-plugin-message/domain/dto/MessageManageQueryDTO.java (新建)forge-plugin-message/domain/vo/MessageManageVO.java (新建)forge-plugin-message/domain/vo/MessageDetailVO.java (新建)forge-plugin-message/domain/vo/ReceiverVO.java (新建)sys_message
sys_message_send_record
sys_message_receiver