Files
schoolNews/消息通知模块集成说明.md
2025-11-13 19:00:27 +08:00

189 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 消息通知模块 - 集成说明
## 模块概述
消息通知模块已经完成开发,包含完整的前后端功能。该模块支持系统消息、邮件和短信通知,具有定时发送、重试机制、权限控制等特性。
## 已完成的文件
### 后端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
<modules>
<module>message</module>
</modules>
```
确保api/pom.xml中的modules包含
```xml
<modules>
<module>api-message</module>
</modules>
```
## 功能说明
### 管理端功能
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. 支持附件上传