From 4371080df058a549cdaf31dddeca6c5fee58e23b Mon Sep 17 00:00:00 2001
From: Houjie <714924425@qq.com>
Date: 星期二, 10 六月 2025 15:31:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementServiceImpl.java | 74 +++++++++++++++++++++++++++++++++++++
1 files changed, 74 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..427d0b4 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,62 @@
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());
+ }
+
+ }
+
+ /**
+ * 鏍规嵁娑堟伅鍐呭鏌ヨ娑堟伅閫氱煡
+ */
+ @Override
+ public SysAnnouncement findLastMessage(String messageContent) {
+ return sysAnnouncementSendMapper.findLastMessage(messageContent);
+ }
+
}
--
Gitblit v1.9.3