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

View File

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