1.审计日志处理2

This commit is contained in:
cdf
2024-08-29 15:54:32 +08:00
parent 0a121a3cf5
commit 14b072b5e7
6 changed files with 81 additions and 1 deletions

View File

@@ -84,6 +84,9 @@ public class UserLog {
@ExcelProperty(value = "事件类型")
private Integer type;
@ExcelProperty(value = "日志类型")
private Integer roleType;
/**
* 模块名
*/

View File

@@ -3,23 +3,30 @@ package com.njcn.system.handler;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.github.tocrhz.mqtt.annotation.MqttSubscribe;
import com.github.tocrhz.mqtt.annotation.Payload;
import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.common.pojo.dto.LogInfoDTO;
import com.njcn.common.utils.PubUtils;
import com.njcn.redis.pojo.enums.RedisKeyEnum;
import com.njcn.redis.utils.RedisUtil;
import com.njcn.system.service.IUserLogService;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.po.User;
import com.njcn.web.utils.EmailUtil;
import io.swagger.models.auth.In;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.data.redis.core.BoundHashOperations;
import org.springframework.stereotype.Component;
import java.nio.charset.StandardCharsets;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -37,12 +44,33 @@ public class MqttMessageHandler {
private final UserFeignClient userFeignClient;
private final EmailUtil emailUtil;
private final RedisUtil redisUtil;
private JSONObject jsonObject = null;
/**
* 订阅审计日志的记录,并进行入库操作
*/
@MqttSubscribe(value = "/userLog")
public void subUserLog(String topic, MqttMessage message, @Payload String payload) {
if(Objects.isNull(jsonObject)){
jsonObject = (JSONObject) redisUtil.getObjectByKey(RedisKeyEnum.USER_ROLE_TYPE_KEY.getKey());
if(Objects.isNull(jsonObject)){
userFeignClient.userRoleList();
}
}
LogInfoDTO logInfoDTO = PubUtils.json2obj(new String(message.getPayload(), StandardCharsets.UTF_8),LogInfoDTO.class);
String loginName = logInfoDTO.getLoginName();
if(StrUtil.isNotBlank(loginName) && jsonObject.containsKey(loginName)){
if((Integer) jsonObject.get(loginName)==2){
logInfoDTO.setRoleType(0);
}else {
logInfoDTO.setRoleType(1);
};
}else {
logInfoDTO.setRoleType(1);
}
userLogService.addUserLog(logInfoDTO);
}