编辑 | blame | 历史 | 原始文档

系统消息推送功能 - 文件变更清单

新增文件

数据库脚本

  • sql/sys_message.sql - 消息表创建脚本

后端 - 实体类

  • ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMessage.java - 消息实体类

后端 - Mapper层

  • ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMessageMapper.java - Mapper接口
  • ruoyi-system/src/main/resources/mapper/system/SysMessageMapper.xml - MyBatis映射文件

后端 - Service层

  • ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMessageService.java - Service接口
  • ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMessageServiceImpl.java - Service实现类

后端 - Controller层

  • ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMessageController.java - 消息Controller

前端 - API

  • app/api/message.js - 消息API接口

文档

  • prd/系统消息推送功能实现总结.md - 完整实现文档
  • prd/系统消息推送-快速开始.md - 快速开始指南
  • prd/系统消息推送-文件变更清单.md - 本文件

修改文件

后端

  • ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
  • 导入 ISysMessageService
  • 注入 ISysMessageService 服务(required = false)
  • insertSysTask 方法中添加创建成功消息推送
  • insertSysTask 方法中添加任务分配消息推送
  • assignTask 方法中添加任务分配消息推送
  • changeTaskStatusWithLocation 方法中添加状态变更消息推送

前端

  • app/pages/message/index.vue
  • 导入 message.js API
  • 实现 loadMessages 方法加载消息列表
  • 实现 loadUnreadMessageCount 方法加载未读数量
  • 修改 viewMessageDetail 方法调用API标记已读
  • 添加 onLoad 生命周期加载数据
  • 添加 onShow 生命周期刷新数据
  • 添加 onPullDownRefresh 支持下拉刷新
  • 修改消息字段映射(type→messageType, content→messageContent等)
  • app/pages/index.vue

  • 导入 message.js API中的 getUnreadCount
  • 添加 unreadMessageCount 数据字段
  • 添加 loadUnreadMessageCount 方法
  • onLoad 中调用 loadUnreadMessageCount
  • onShow 中调用 loadUnreadMessageCount
  • 删除计算属性中的 unreadMessageCount(改为data字段)

变更统计

新增文件数量

  • 数据库脚本: 1
  • Java文件: 6
  • JavaScript文件: 1
  • Vue文件: 0(已存在,仅修改)
  • 文档文件: 3
  • 总计: 11个新增文件

修改文件数量

  • Java文件: 1
  • Vue文件: 2
  • 总计: 3个修改文件

代码行数统计

  • 新增代码行: 约1400行
  • SQL: 27行
  • Java: 约900行
  • JavaScript: 77行
  • Vue修改: 约90行
  • 文档: 约500行

功能模块

1. 数据库层(1个文件)

  • sys_message 表结构

2. 后端层(7个文件)

  • 实体类(1个)
  • Mapper接口(1个)
  • MyBatis映射(1个)
  • Service接口(1个)
  • Service实现(1个)
  • Controller(1个)
  • 任务服务集成(1个修改)

3. 前端层(3个文件)

  • API接口(1个新增)
  • 消息中心页面(1个修改)
  • 首页未读数量(1个修改)

4. 文档层(3个文件)

  • 功能实现总结
  • 快速开始指南
  • 文件变更清单

依赖关系

后端依赖

SysMessageController
    ↓ 依赖
ISysMessageService (接口)
    ↓ 实现
SysMessageServiceImpl
    ↓ 依赖
SysMessageMapper (接口)
    ↓ 配置
SysMessageMapper.xml
    ↓ 操作
sys_message (数据表)

任务服务集成

SysTaskServiceImpl
    ↓ 调用
ISysMessageService.pushTaskCreateMessage()
ISysMessageService.pushTaskAssignMessage()
ISysMessageService.pushTaskStatusChangeMessage()
    ↓ 操作
sys_message (数据表)

前端依赖

index.vue / message/index.vue
    ↓ 调用
api/message.js
    ↓ 请求
后端 SysMessageController
    ↓ 查询
sys_message (数据表)

部署检查清单

  • [ ] 1. 执行数据库脚本 sql/sys_message.sql
  • [ ] 2. 确认 sys_message 表创建成功
  • [ ] 3. 重新编译后端项目
  • [ ] 4. 重启后端服务
  • [ ] 5. 清理浏览器缓存
  • [ ] 6. 测试创建任务消息推送
  • [ ] 7. 测试任务分配消息推送
  • [ ] 8. 测试状态变更消息推送
  • [ ] 9. 测试消息列表查询
  • [ ] 10. 测试消息标记已读
  • [ ] 11. 测试未读消息数量显示

Git提交建议

# 提交数据库脚本
git add sql/sys_message.sql
git commit -m "feat: 添加系统消息表结构"

# 提交后端代码
git add ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMessage.java
git add ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMessageMapper.java
git add ruoyi-system/src/main/resources/mapper/system/SysMessageMapper.xml
git add ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMessageService.java
git add ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMessageServiceImpl.java
git add ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMessageController.java
git commit -m "feat: 实现系统消息推送后端服务"

# 提交任务服务集成
git add ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
git commit -m "feat: 在任务创建、分配、状态变更时集成消息推送"

# 提交前端代码
git add app/api/message.js
git add app/pages/message/index.vue
git add app/pages/index.vue
git commit -m "feat: 实现消息中心前端页面和未读消息计数"

# 提交文档
git add prd/系统消息推送功能实现总结.md
git add prd/系统消息推送-快速开始.md
git add prd/系统消息推送-文件变更清单.md
git commit -m "docs: 添加系统消息推送功能文档"

# 或者一次性提交
git add .
git commit -m "feat: 实现系统消息推送功能

- 创建任务时推送消息给创建人和执行人
- 任务分配时推送消息给执行人
- 状态变更时推送消息给相关人员
- 实现消息中心页面
- 实现未读消息数量显示
- 支持消息已读标记
- 完善功能文档"

回滚方案

如果需要回滚此功能:

1. 数据库回滚

DROP TABLE IF EXISTS `sys_message`;

2. 代码回滚

# 删除新增文件
git rm ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMessage.java
git rm ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMessageMapper.java
git rm ruoyi-system/src/main/resources/mapper/system/SysMessageMapper.xml
git rm ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMessageService.java
git rm ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMessageServiceImpl.java
git rm ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMessageController.java
git rm app/api/message.js

# 恢复修改的文件
git checkout ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskServiceImpl.java
git checkout app/pages/message/index.vue
git checkout app/pages/index.vue

git commit -m "revert: 回滚系统消息推送功能"

注意事项

  1. 数据库备份:执行SQL脚本前建议备份数据库
  2. 服务重启:后端修改后必须重启服务才能生效
  3. 缓存清理:前端修改后需要清理浏览器缓存
  4. 兼容性测试:部署后需要全面测试各项功能
  5. 性能监控:关注消息推送对系统性能的影响

更新时间: 2025-10-25
版本: v1.0
负责人: AI Assistant