5.2 KiB
5.2 KiB
消息通知模块 - 集成说明
模块概述
消息通知模块已经完成开发,包含完整的前后端功能。该模块支持系统消息、邮件和短信通知,具有定时发送、重试机制、权限控制等特性。
已完成的文件
后端(Java)
- 24个Java文件(DTO、Mapper、Service、Controller、Scheduler、配置类)
- 位置:
schoolNewsServ/message/和schoolNewsServ/api/api-message/ - SQL文件:
schoolNewsServ/.bin/mysql/sql/createTableMessage.sql和initMenuData.sql
前端(Vue)
-
类型定义
schoolNewsWeb/src/types/message/index.ts
-
API接口
schoolNewsWeb/src/apis/message/message.tsschoolNewsWeb/src/apis/message/index.ts
-
通用组件(4个)
schoolNewsWeb/src/components/message/MessagePriorityBadge.vueschoolNewsWeb/src/components/message/MessageStatusBadge.vueschoolNewsWeb/src/components/message/MessageSendMethodSelector.vueschoolNewsWeb/src/components/message/MessageTargetSelector.vue(已删除,功能集成到列表页)schoolNewsWeb/src/components/message/index.ts
-
管理端页面(2个)
schoolNewsWeb/src/views/admin/manage/message/MessageListView.vue(集成创建功能)schoolNewsWeb/src/views/admin/manage/message/MessageDetailView.vueschoolNewsWeb/src/views/admin/manage/message/index.ts
-
用户端页面(2个)
schoolNewsWeb/src/views/user/message/MyMessageListView.vueschoolNewsWeb/src/views/user/message/MyMessageDetailView.vueschoolNewsWeb/src/views/user/message/index.ts
需要配置的内容
1. 前端路由配置
在 Vue Router 配置文件中添加以下路由:
// 管理端路由
{
path: '/admin/manage/message',
component: AdminLayout, // 或您的布局组件
children: [
{
path: 'list',
name: 'MessageManagement',
component: () => import('@/views/admin/manage/message/MessageListView.vue'),
meta: { title: '消息管理', requiresAuth: true, permission: 'message:manage' }
},
{
path: 'detail/:id',
name: 'MessageDetail',
component: () => import('@/views/admin/manage/message/MessageDetailView.vue'),
meta: { title: '消息详情', requiresAuth: true, permission: 'message:manage' }
}
]
}
// 用户端路由
{
path: '/user/message',
component: UserLayout, // 或您的用户布局组件
children: [
{
path: 'list',
name: 'MyMessages',
component: () => import('@/views/user/message/MyMessageListView.vue'),
meta: { title: '我的消息', requiresAuth: true }
},
{
path: 'detail/:id',
name: 'MyMessageDetail',
component: () => import('@/views/user/message/MyMessageDetailView.vue'),
meta: { title: '消息详情', requiresAuth: true }
}
]
}
2. 后端配置
确保以下配置已添加到 application.yml:
spring:
task:
scheduling:
enabled: true
execution:
pool:
core-size: 10
max-size: 20
3. 数据库初始化
执行以下SQL文件:
schoolNewsServ/.bin/mysql/sql/createTableMessage.sql- 创建表结构schoolNewsServ/.bin/mysql/sql/initMenuData.sql- 初始化菜单和权限数据
4. Maven依赖
确保父pom.xml中的modules包含:
<modules>
<module>message</module>
</modules>
确保api/pom.xml中的modules包含:
<modules>
<module>api-message</module>
</modules>
功能说明
管理端功能
-
消息列表
- 筛选(标题、类型、状态、优先级)
- 分页展示
- 创建消息(对话框模式)
- 立即发送、重试、改期、取消、删除
-
消息详情
- 完整信息展示
- 发送统计(进度、成功率、已读率)
- 接收对象列表
- 用户接收详情
用户端功能
-
我的消息
- 卡片式列表
- 未读标识
- 批量标记已读
- 筛选功能
-
消息详情
- 自动标记已读
- 精美展示
- 响应式设计
权限说明
数据库中已配置以下权限:
message:manage- 消息管理权限(管理端)message:send- 消息发送权限message:view- 消息查看权限(用户端)
默认绑定到:
- superadmin - 所有权限
- admin - 管理和发送权限
- freedom - 查看权限
注意事项
- EmailUtils和SmsUtils:确保这两个工具类在common模块中存在且可用
- 定时任务:消息定时发送由
MessageScheduler处理,每分钟扫描一次 - 权限控制:用户只能向当前部门及子部门发送消息
- 重试机制:发送失败后会自动重试,默认最多3次,间隔5分钟
测试建议
- 先测试立即发送功能
- 测试定时发送功能(设置1-2分钟后的时间)
- 测试权限控制(不同角色的访问)
- 测试用户端的消息查看和已读标记
已知问题
- MessageDetailView中的用户接收详情列表需要后端补充接口:
GET /message/users/{messageID} - 如果EmailUtils或SmsUtils不存在,需要先实现这两个工具类
后续优化建议
- 添加富文本编辑器支持
- 添加消息模板功能
- 添加消息统计报表
- 添加消息分类功能
- 支持附件上传