fix:优化

This commit is contained in:
nieziyan 2023-12-22 18:29:11 +08:00
parent 200698ff03
commit df03eb9257
5 changed files with 53 additions and 16 deletions

View File

@ -60,7 +60,6 @@ public class JDBCUtil {
try (Connection connection = dataSource.getConnection()) { try (Connection connection = dataSource.getConnection()) {
return new ConnR().setConn(true); return new ConnR().setConn(true);
} catch (SQLException e) { } catch (SQLException e) {
// String message = String.format("[xxx数据源]连接失败: %s", e.getMessage());
return new ConnR().setInfo(e.getMessage()); return new ConnR().setInfo(e.getMessage());
} }
} }

View File

@ -0,0 +1,19 @@
package org.jeecg.common.util;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import java.util.HashMap;
import java.util.Map;
public class ParamUtil {
public static Map<String, Object> set(Object... value){
Map<String, Object> data = MapUtil.newHashMap();
if (ArrayUtil.isEmpty(value))
return data;
for (int i = 0; i < value.length; i++) {
data.put("param" + (i + 1), value[i]);
}
return data;
}
}

View File

@ -0,0 +1,13 @@
package org.jeecg.modules.base.enums;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum Template {
IDC_DATASOURCE_STATUS("IDC_Datasource_Status");
private final String code;
}

View File

@ -1,5 +1,6 @@
package org.jeecg.modules.idc; package org.jeecg.modules.idc;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -7,6 +8,7 @@ import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.config.mqtoken.UserTokenContext; import org.jeecg.common.config.mqtoken.UserTokenContext;
import org.jeecg.common.constant.enums.MessageTypeEnum; import org.jeecg.common.constant.enums.MessageTypeEnum;
import org.jeecg.common.util.JDBCUtil; import org.jeecg.common.util.JDBCUtil;
import org.jeecg.common.util.ParamUtil;
import org.jeecg.modules.base.dto.ConnR; import org.jeecg.modules.base.dto.ConnR;
import org.jeecg.modules.feignclient.SystemClient; import org.jeecg.modules.feignclient.SystemClient;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -22,6 +24,7 @@ import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static org.jeecg.common.util.TokenUtils.getTempToken; import static org.jeecg.common.util.TokenUtils.getTempToken;
import static org.jeecg.modules.base.enums.Template.IDC_DATASOURCE_STATUS;
@Component @Component
@Slf4j @Slf4j
@ -52,7 +55,7 @@ public class IDCDataFetch {
@Scheduled(fixedDelayString = "${request-interval}", timeUnit = TimeUnit.SECONDS) @Scheduled(fixedDelayString = "${request-interval}", timeUnit = TimeUnit.SECONDS)
public void fetch() { public void fetch() {
JdbcTemplate template; JdbcTemplate template;
MessageDTO messageDTO = new MessageDTO("IDC数据源异常", "IDC_Datasource_Status", "admin"); MessageDTO messageDTO = new MessageDTO(null, IDC_DATASOURCE_STATUS.getCode(), "admin");
messageDTO.setType(MessageTypeEnum.XT.getType()); messageDTO.setType(MessageTypeEnum.XT.getType());
ConnR connR = JDBCUtil.isConnection(urlM, usernameM, passwordM); ConnR connR = JDBCUtil.isConnection(urlM, usernameM, passwordM);
if (connR.isConn()) { if (connR.isConn()) {
@ -69,11 +72,9 @@ public class IDCDataFetch {
// 对发送警告消息时可能出现的异常进行捕获(503) 防止影响后续代码执行 // 对发送警告消息时可能出现的异常进行捕获(503) 防止影响后续代码执行
try { try {
// 给管理员发送预警信息 // 给管理员发送预警信息
/*String message = StrUtil.replace(connR.getInfo(), "xxx", "inland");
messageDTO.setContent(message);*/
Map<String, Object> data = new HashMap<>(); Map<String, Object> data = new HashMap<>();
data.put("datasource", "inland(测试)"); data.put("param1", "inland");
data.put("info", connR.getInfo()); data.put("param2", connR.getInfo());
messageDTO.setData(data); messageDTO.setData(data);
systemClient.sendTo(messageDTO); systemClient.sendTo(messageDTO);
}catch (Exception e){ }catch (Exception e){
@ -93,8 +94,8 @@ public class IDCDataFetch {
} }
try { try {
// 给管理员发送预警信息 // 给管理员发送预警信息
String message = StrUtil.replace(connR.getInfo(), "xxx", "oversea"); Map<String, Object> data = ParamUtil.set("oversea", connR.getInfo());
messageDTO.setContent(message); messageDTO.setData(data);
systemClient.sendTo(messageDTO); systemClient.sendTo(messageDTO);
}catch (Exception e){ }catch (Exception e){
log.error("发送oversea数据源异常信息失败: {}", e.getMessage()); log.error("发送oversea数据源异常信息失败: {}", e.getMessage());

View File

@ -1234,18 +1234,23 @@ public class SysBaseApiImpl implements ISysBaseAPI {
public void sendTemplateMessage(MessageDTO message) { public void sendTemplateMessage(MessageDTO message) {
String type = message.getType(); String type = message.getType();
String title = message.getTitle();
String code = message.getTemplateCode(); String code = message.getTemplateCode();
if(StrUtil.isNotBlank(code)){ if(StrUtil.isNotBlank(code)){
SysMessageTemplate template = getTemplateEntity(code); SysMessageTemplate template = getTemplateEntity(code);
String content = template.getTemplateContent(); if(ObjectUtil.isNotNull(template)){
Map<String, Object> data = message.getData(); String name = template.getTemplateName();
boolean notBlank = StrUtil.isNotBlank(content); String content = template.getTemplateContent();
boolean notEmpty = ObjectUtil.isNotEmpty(data); title = StrUtil.isNotBlank(title) ? title : name;
if(notBlank && notEmpty){ Map<String, Object> data = message.getData();
content = FreemarkerParseFactory boolean notBlank = StrUtil.isNotBlank(content);
.parseTemplateContent(content, data, false); boolean notEmpty = ObjectUtil.isNotEmpty(data);
if(notBlank && notEmpty){
content = FreemarkerParseFactory
.parseTemplateContent(content, data, false);
}
message.setTitle(title).setContent(content);
} }
message.setContent(content);
} }
if(XT.getType().equals(type)){ // 站内消息 if(XT.getType().equals(type)){ // 站内消息
systemSendMsgHandle.sendMessage(message); systemSendMsgHandle.sendMessage(message);