From 2578d8ab90ee81344437e0720931d7af3a3a8e7c Mon Sep 17 00:00:00 2001 From: lius <Lius2225@163.com> Date: 星期三, 16 八月 2023 16:16:38 +0800 Subject: [PATCH] 定时任务执行失败发送系统消息 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java | 66 +++++++++++++++++++++++++++++++++ 1 files changed, 66 insertions(+), 0 deletions(-) diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java index 0934d2e..783aa0c 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java @@ -1,18 +1,25 @@ package org.jeecg.modules.system.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.CommonSendStatus; +import org.jeecg.common.constant.WebsocketConst; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.message.websocket.WebSocket; import org.jeecg.modules.system.entity.SysAnnouncement; import org.jeecg.modules.system.entity.SysAnnouncementSend; import org.jeecg.modules.system.mapper.SysAnnouncementMapper; import org.jeecg.modules.system.mapper.SysAnnouncementSendMapper; import org.jeecg.modules.system.service.ISysAnnouncementService; +import org.jeecg.modules.system.service.ISysDictService; +import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.system.util.XssUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +44,15 @@ @Resource private SysAnnouncementSendMapper sysAnnouncementSendMapper; + + @Resource + private ISysDictService sysDictService; + + @Resource + private ISysUserService sysUserService; + + @Resource + private WebSocket webSocket; @Transactional(rollbackFor = Exception.class) @Override @@ -185,4 +201,54 @@ sysAnnouncementSendMapper.updateReaded(sysUser.getId(), annoceIdList); } + @Override + public void jobSendMessage(String jobDescription, String exceptionDetail) { + SysAnnouncement sysAnnouncement = new SysAnnouncement(); + String title = XssUtils.scriptXss(jobDescription + "澶辫触锛�"); + // 鏍囬 + sysAnnouncement.setTitile(title); + // 娑堟伅绫诲瀷 + sysAnnouncement.setMsgCategory(CommonConstant.MSG_CATEGORY_2); + // 浼樺厛绾� + sysAnnouncement.setPriority(CommonConstant.PRIORITY_H); + // 閫氬憡瀵硅薄绫诲瀷 + sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR); + // 鍒犻櫎鐘舵�� + sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); + // 鍙戝竷鐘舵�� + sysAnnouncement.setSendStatus(CommonSendStatus.PUBLISHED_STATUS_1); + // 鍙戝竷鏃堕棿 + sysAnnouncement.setSendTime(new Date()); + // 鍙戝竷浜� + sysAnnouncement.setSender("admin"); + // 娑堟伅鍐呭 + sysAnnouncement.setMsgContent(exceptionDetail); + // 鑾峰彇鐢ㄦ埛 + // step1. 浠庡瓧鍏告暟鎹腑鏌ヨ闇�瑕佸彂閫佺殑瑙掕壊缂栫爜 + String roleCode = sysDictService.queryDictTextByKey(CommonConstant.JOB_SEND_MSG, CommonConstant.STATUS_NORMAL.toString()); + // step2. 鏍规嵁瑙掕壊缂栫爜鏌ヨ鐢ㄦ埛id闆嗗悎 + List<String> userIds = sysUserService.getUserByRoleCode(roleCode); + if (userIds != null && !userIds.isEmpty()) { + sysAnnouncement.setUserIds(String.join(",", userIds)); + sysAnnouncementMapper.insert(sysAnnouncement); + String anntId = sysAnnouncement.getId(); + Date refDate = new Date(); + for (String userId : userIds) { + SysAnnouncementSend announcementSend = new SysAnnouncementSend(); + announcementSend.setAnntId(anntId); + announcementSend.setUserId(userId); + announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG); + announcementSend.setReadTime(refDate); + sysAnnouncementSendMapper.insert(announcementSend); + } + // 鍙戦�佹秷鎭� + JSONObject obj = new JSONObject(); + obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER); + obj.put(WebsocketConst.MSG_ID, sysAnnouncement.getId()); + obj.put(WebsocketConst.MSG_TXT, sysAnnouncement.getTitile()); + webSocket.sendMessage(sysAnnouncement.getUserIds().split(","), obj.toJSONString()); + } + + } + } -- Gitblit v1.9.3