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