1.审计用户消息和邮件推送

2.国网上送母线,变电站,主配网监测点统计,典型源荷统计等算法调整
3.国网上送定时任务调整
This commit is contained in:
wr
2024-03-12 14:52:35 +08:00
parent 93f86feb33
commit df07c79ac8
38 changed files with 571 additions and 73 deletions

View File

@@ -23,6 +23,7 @@ import org.springframework.web.bind.MethodArgumentNotValidException;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@@ -78,8 +79,17 @@ public class LogServiceImpl implements ILogService {
String type = ReflectCommonUtil.getOperateInfoByMethod(returnType.getMethod()).getOperateType();
String level = ReflectCommonUtil.getOperateInfoByMethod(returnType.getMethod()).getOperateLevel();
String operateType = ReflectCommonUtil.getOperateTypeByMethod(returnType.getMethod());
LogInfoDTO logInfoDTO = new LogInfoDTO(loginName, userName, ip, methodDescribe, operateType, result.equalsIgnoreCase("失败") ? 0 : 1, "", levelStringToNumber(level), type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), userIndex);
Integer severity = levelStringToNumber(level);
LogInfoDTO logInfoDTO = new LogInfoDTO(loginName, userName, ip, methodDescribe, operateType, result.equalsIgnoreCase("失败") ? 0 : 1, "", severity, type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), userIndex, LocalDateTime.now());
publisher.send("/userLog", PubUtils.obj2json(logInfoDTO), 2, false);
//推送审计消息功能
if(severity!=0){
publisher.send("/userLogPush", PubUtils.obj2json(logInfoDTO), 2, false);
//发送邮箱功能
if(severity==2&&logInfoDTO.getResult()==0){
publisher.send("/userLogEmailPush", PubUtils.obj2json(logInfoDTO), 2, false);
}
}
//如果存在设备日志注解,则记录设备日志
if(Objects.nonNull((returnType.getMethod()))&& (returnType.getMethod()).isAnnotationPresent(DeviceLog.class)){
String deviceOperate = returnType.getMethod().getAnnotation(DeviceLog.class).operateType();
@@ -120,8 +130,10 @@ public class LogServiceImpl implements ILogService {
String type = ReflectCommonUtil.getOperateInfoByMethod(method).getOperateType();
String level = ReflectCommonUtil.getOperateInfoByMethod(method).getOperateLevel();
String operateType = ReflectCommonUtil.getOperateTypeByMethod(method);
LogInfoDTO logInfoDTO = new LogInfoDTO(tempLogInfo.getLoginName(), tempLogInfo.getUserName(), tempLogInfo.getIp(), ReflectCommonUtil.getMethodDescribeByMethod(method), operateType, result.equalsIgnoreCase("失败") ? 0 : 1, message, levelStringToNumber(level), type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), userIndex);
Integer severity = levelStringToNumber(level);
LogInfoDTO logInfoDTO = new LogInfoDTO(tempLogInfo.getLoginName(), tempLogInfo.getUserName(), tempLogInfo.getIp(), ReflectCommonUtil.getMethodDescribeByMethod(method), operateType, result.equalsIgnoreCase("失败") ? 0 : 1, message, severity, type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), userIndex, LocalDateTime.now());
publisher.send("/userLog", PubUtils.obj2json(logInfoDTO), 1, false);
auditPush(severity, logInfoDTO);
}
/**
@@ -145,9 +157,22 @@ public class LogServiceImpl implements ILogService {
String ip = RequestUtil.getRealIp(request);
String type = ReflectCommonUtil.getOperateInfoByMethod(method).getOperateType();
String level = ReflectCommonUtil.getOperateInfoByMethod(method).getOperateLevel();
Integer severity = levelStringToNumber(level);
String operateType = ReflectCommonUtil.getOperateTypeByMethod(method);
LogInfoDTO logInfoDTO = new LogInfoDTO(loginName, "", ip, ReflectCommonUtil.getMethodDescribeByMethod(method), operateType, result.equalsIgnoreCase("失败") ? 0 : 1, message, levelStringToNumber(level), type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), loginName);
LogInfoDTO logInfoDTO = new LogInfoDTO(loginName, "", ip, ReflectCommonUtil.getMethodDescribeByMethod(method), operateType, result.equalsIgnoreCase("失败") ? 0 : 1, message, severity, type.equalsIgnoreCase("业务事件") ? 0 : 1, generalInfo.getMicroServiceName(), loginName, LocalDateTime.now());
publisher.send("/userLog", PubUtils.obj2json(logInfoDTO), 1, false);
auditPush(severity, logInfoDTO);
}
private void auditPush(Integer severity, LogInfoDTO logInfoDTO) {
//推送审计消息功能
if(severity !=0){
publisher.send("/userLogPush", PubUtils.obj2json(logInfoDTO), 2, false);
//发送邮箱功能
if(severity ==2&& logInfoDTO.getResult()==0){
publisher.send("/userLogEmailPush", PubUtils.obj2json(logInfoDTO), 2, false);
}
}
}
/**

View File

@@ -0,0 +1,51 @@
package com.njcn.web.utils;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.mail.MailUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author wr
* @description
* @date 2024/3/11 14:32
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class EmailUtil {
/**
* 推送单邮件信息发送
* @param to
* @param title
* @param content
* @param isHtml
*/
public void send(String to,String title,String content,Boolean isHtml) {
if(isHtml){
String s = FileUtil.readUtf8String("cs.html");
content = s.replace("#{content}", content);
}
MailUtil.send(to, title, content, isHtml);
}
/**
* 推送多个邮件信息
* @param to
* @param title
* @param content
* @param isHtml
*/
public void sendMultiple(List<String> to,String title,String content,Boolean isHtml) {
if(isHtml){
String s = FileUtil.readUtf8String("cs.html");
content = s.replace("#{content}", content);
}
MailUtil.send(to, title, content, isHtml);
}
}