• 基于若依ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(七)


    更多ruoyi-nbcio功能请看演示系统

    gitee源代码地址

    前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

    演示地址:RuoYi-Nbcio后台管理系统

    接下来需要进行点击消息进行操作的动作。

    1、首先先导入这个更新用户消息的一些菜单与权限,以便后面进行配置

    insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
    values(1704735607761620993, '用户公告阅读标记', '3', '1', 'noticeSend', 'system/noticeSend/index', 1, 0, 'C', '0', '0', 'system:noticeSend:list', '#', 'admin', sysdate(), '', null, '用户公告阅读标记菜单');

    -- 按钮 SQL
    insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
    values(1704735607761620994, '用户公告阅读标记查询', 1704735607761620993, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:noticeSend:query',        '#', 'admin', sysdate(), '', null, '');

    insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
    values(1704735607761620995, '用户公告阅读标记新增', 1704735607761620993, '2',  '#', '', 1, 0, 'F', '0', '0', 'system:noticeSend:add',          '#', 'admin', sysdate(), '', null, '');

    insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
    values(1704735607761620996, '用户公告阅读标记修改', 1704735607761620993, '3',  '#', '', 1, 0, 'F', '0', '0', 'system:noticeSend:edit',         '#', 'admin', sysdate(), '', null, '');

    insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
    values(1704735607761620997, '用户公告阅读标记删除', 1704735607761620993, '4',  '#', '', 1, 0, 'F', '0', '0', 'system:noticeSend:remove',       '#', 'admin', sysdate(), '', null, '');

    insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
    values(1704735607761620998, '用户公告阅读标记导出', 1704735607761620993, '5',  '#', '', 1, 0, 'F', '0', '0', 'system:noticeSend:export',       '#', 'admin', sysdate(), '', null, '');

    2、因为要点击进行流程的处理,所以需要进行yml配置,所以下面的flowable配置移到dev与prod里了

    1. flowable:
    2. # 关闭定时任务 job
    3. async-executor-activate: false
    4. # 库与数据库表结构不一致时,会自动将数据库表结构升级至新版本。
    5. database-schema-update: true
    6. idm:
    7. # 关闭idm引擎 数据库不会创建act_id_*表,流程流转不会使用act_id_*相关的表
    8. enabled: false
    9. # 关闭流程定义文件自动检查
    10. check-process-definitions: false
    11. # 关闭历史任务定时任务job
    12. async-history-executor-activate: false
    13. #消息链接基地址
    14. message-base-url: http://localhost:9666/workflow/process/detail/

    3、更新用户公告阅读状态标记,后端代码如下:

    1. /**
    2. * 更新用户公告阅读状态标记
    3. */
    4. @SaCheckPermission("system:noticeSend:edit")
    5. @Log(title = "更新用户公告阅读状态标记", businessType = BusinessType.UPDATE)
    6. @RepeatSubmit()
    7. @PutMapping(value = "/updateUserIdAndNotice")
    8. public R updateUserIdAndNotice(@RequestBody JSONObject json) {
    9. Long noticeId = json.getLong("noticeId");
    10. LoginUser loginUser = commonService.getLoginUser();
    11. Long userId = loginUser.getUserId();
    12. LambdaUpdateWrapper updateWrapper = new UpdateWrapper().lambda();
    13. updateWrapper.set(SysNoticeSend::getReadFlag, Constants.HAS_READ_FLAG);
    14. updateWrapper.set(SysNoticeSend::getReadTime, new Date());
    15. updateWrapper.last("where notice_id ="+noticeId+" and user_id ="+userId);
    16. SysNoticeSend noticeSend = new SysNoticeSend();
    17. iSysNoticeSendService.update(noticeSend, updateWrapper);
    18. return R.ok("更新用户公告阅读状态标记成功");
    19. }

    4、前端主要调用更新标记同时显示详细动作信息

    1. showNotice(record) {
    2. updateUserIdAndNotice({
    3. noticeId: record.noticeId
    4. }).then((res) => {
    5. if (res.code == 200) {
    6. this.loadData();
    7. }
    8. });
    9. this.hovered = false;
    10. if (record.openType === 'component') {
    11. this.openPath = record.openPage;
    12. this.formData = {
    13. id: record.busId
    14. };
    15. this.$refs.showDynamNotice.detail(record.openPage);
    16. } else {
    17. this.$refs.ShowNotice.detail(record);
    18. }
    19. },

    5、效果图如下:

  • 相关阅读:
    STM32合并烧录IAP+APP
    数据库备份
    多态(个人学习笔记黑马学习)
    Linux应用层例程4 串口应用编程
    echarts静态横向柱状图
    在URP管线中添加ShaderMaterial自定义GUI的方法
    Java 如何借助InputStream读取网络图片呢?
    三、RestClient操作索引库与文档
    基于Nodejs的知识信息分享平台的设计和实现
    Java编程练习题Demo41-Demo50
  • 原文地址:https://blog.csdn.net/qq_40032778/article/details/133202368