From 943e5e1fc85c696593ea3b81f7f95e235477b3c0 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 10 Jul 2023 15:57:34 +0800
Subject: [PATCH] 站内信信息写入,sse连接,断开修改
---
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 93 insertions(+), 0 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
index 5eff055..67c50b5 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeHandle.java
@@ -1,6 +1,8 @@
package cn.gistack.alerts.notice.service.impl;
+import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
import cn.gistack.alerts.alarmRule.entity.AlarmRecord;
+import cn.gistack.alerts.alarmRule.entity.AlarmRecordDetail;
import cn.gistack.alerts.alarmRule.entity.AlarmRule;
import cn.gistack.alerts.alarmRule.service.AlarmRecordService;
import cn.gistack.alerts.notice.constant.ZtApiUrlConstant;
@@ -10,14 +12,19 @@
import cn.gistack.alerts.sms.entity.SmsTemplate;
import cn.gistack.alerts.sms.service.ISmsTemplateService;
import cn.gistack.alerts.sms.vo.SmsRequestTemplate;
+import cn.gistack.alerts.sse.server.SSEServer;
import cn.gistack.common.utils.SpringContextUtil;
+import cn.gistack.sm.message.entity.MessageRecord;
+import cn.gistack.sm.message.feign.IMessageClient;
import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClient;
import cn.gistack.sm.sjztmd.vo.PersonVO;
import cn.gistack.system.feign.ISysClient;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.shaded.com.google.gson.JsonObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springblade.core.secure.utils.AuthUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -47,6 +54,9 @@
@Autowired
private RestTemplate restTemplate;
+
+ @Autowired
+ private IMessageClient messageClient;
@@ -420,4 +430,87 @@
}
return null;
}
+
+ /**
+ * 保存站内信记录信息
+ * @param smsRequestTemplate
+ * @param alarmRule
+ * @return
+ */
+ public Map<String, Object> saveInStationInfo(SmsRequestTemplate smsRequestTemplate, AlarmRule alarmRule) {
+ // 取出数据
+ SMSSendRequest request = new SMSSendRequest();
+ SmsTemplate smsTemplate = smsRequestTemplate.getSmsTemplate();
+ request.setTemplateId(smsTemplate.getTemplateId());
+ List<List<String>> templateContent = smsRequestTemplate.getTemplateContent();
+ // 先保存结果记录
+ List<AlarmRecordDetail> alarmRecordDetailList = new ArrayList<>();
+ List<MessageRecord> messageRecordList = new ArrayList<>();
+ Set<String> phoneSet = new HashSet<>();
+ // 遍历处理
+ for (List<String> list : templateContent) {
+ // 设置站内信记录信息
+ MessageRecord messageRecord = new MessageRecord();
+ messageRecord.setTheme(alarmRule.getRuleName());
+ messageRecord.setSender(AuthUtil.getUserId().toString());
+ messageRecord.setSource("智能告警");
+ messageRecord.setStatus(2);
+
+ // 设置告警记录信息
+ AlarmRecordDetail alarmRecordDetail = new AlarmRecordDetail();
+ alarmRecordDetail.setReservoirNumber(list.get(0));
+ alarmRecordDetail.setAlarmRecordId(Long.parseLong(list.get(list.size() - 1)));
+ alarmRecordDetail.setAlarmMode("站内信");
+ // 未读
+ alarmRecordDetail.setStatus(1);
+ // 删除 最后一个 告警记录id
+ list.remove(list.size() - 1);
+ // 删除 0 水库编码
+ list.remove(0);
+
+ alarmRecordDetail.setPhone(list.get(0));
+ // 设置手机号
+ request.setUserNumber(list.get(0));
+ messageRecord.setRecipient(list.get(0));
+ phoneSet.add(list.get(0));
+ // 内容处理
+ String s = smsTemplate.getContent().replaceAll("\\{.+?\\}", "%s");
+ // 需要删除最前面的手机号
+ list.remove(0);
+ // 格式转换
+ String format = String.format(s, list.toArray());
+ // 设置内容
+ request.setMessageContent(format);
+ messageRecord.setContent(format);
+ // 保存记录
+ alarmRecordDetail.setAlarmContent(format);
+ alarmRecordDetail.setCreateTime(new Date());
+ // 放入集合
+ alarmRecordDetailList.add(alarmRecordDetail);
+ messageRecordList.add(messageRecord);
+ }
+ // 保存告警记录详情信息
+ saveMessageRecord(messageRecordList);
+ Map<String, Object> map = new HashMap<>(2);
+ // 返回
+ return map;
+ }
+
+ /**
+ * 保存站内信记录信息
+ * @param messageRecordList
+ */
+ public void saveMessageRecord(List<MessageRecord> messageRecordList) {
+ // 保存记录
+ messageClient.saveMessageRecord(messageRecordList);
+ // 发起通知
+ // 遍历
+ for (MessageRecord messageRecord : messageRecordList) {
+ Map<String, Object> map = new HashMap<>(2);
+ // 查询当前用户未读消息个数
+ map.put("count",messageClient.getNotReadNumber(messageRecord.getRecipient()));
+ map.put("record",messageRecord);
+ SSEServer.sendMessage("web:"+messageRecord.getRecipient(),new JSONObject(map).toJSONString());
+ }
+ }
}
--
Gitblit v1.9.3